日志配置和及切割

通过访问日志,你可以得到用户地域来源、跳转来源、使用终端、某个URL访问量等相关信息;通过错误日志,你可以得到系统某个服务或server的性能瓶颈等。


至于如何配置日志,我们在nginx.conf 配置文件中也介绍过了,以及介绍了设置其日志格式的各个参数的含义。


我们只需要将nginx.conf配置文件中的注释删除即可,也可以自定义字日志的格式,然后我们重启下Nginx即可
日志配置和及切割

然后我们就可以去nginx目录下的logs文件夹下进行查看
日志配置和及切割



但是随着Nginx运行的时候越长,access.log和error.log日志可能就会越来越大,这样就会让我们查找日志就会非常的麻烦,所以一般我们会按照日期对日志进行切割,这样我们哪一天出现了问题,只需要去找对应的日志文件即可。


日志切割这里我们就需要用到shell脚本了,首先我们准备将其放到sbin目录下,都是可执行文件嘛,我们首先切换至sbin文件夹下,然后使用vim新建一个logsplit.sh文件并进行编译
日志配置和及切割
日志配置和及切割
完成后,按 : 键即可进入末行模式,然后输入wq或者x进行保存


logspilt.sh中最后一句,是向Nginx主进程发信号重新打开日志,这个我们之前nginx.conf 配置文件简介也说过kill -USR1的用法

至于其中的 cat ${LOG_HOME}/nginx.pid 是查询Nginx的进程号,如果我们直接通过 ps -ef|grep nginx 这样查询也是可以得到Nginx的进程号的,但是Nginx启动后,我们可以直接在 nginx/logs/ 下可以直接查询
日志配置和及切割


完成了日志切割的shell脚本后,我们发现该文件没有执行权限
日志配置和及切割

这里我们使用 chmod +x logsplit.sh 给其赋予执行权限,也可以执行 chmod 777 logsplit 之类的数字组合赋予权限


然后我们就可以将其进行设置定时执行了,crontab -e
日志配置和及切割
日志配置和及切割

然后进行保存,然后我们查看一下定时任务的状态 /etc/init.d/crond status,如果发现没有这个命令,我们可以使用 systemctl status crond
日志配置和及切割
日志配置和及切割

然后我们将其开始/ect/init.d/crond start ,如果发现没有这个命令,我们可以使用 systemctl start crond ,开启之后,我们在查询一下状态
日志配置和及切割

另外我们还需要将系统的日志给启动,使用 /etc/init.d/rsyslog start 进行启动,同样的如果失败了,可以使用 systemctl start rsyslog 即可。


然后就可以了,我们如果需要查看其定时任务的日志,可以使用 tail -f /var/log/cron 进行查看,然后需要关闭也是很简单的,把我们上述的命令中start改为stop即可。


ps:在测试时,我们可以先使用一分钟执行一次来查看其效果。