利用logrotate对阿里云ECS nginx服务器日志进行分割


利用logrotate对阿里云ECS nginx服务器日志进行分割
作为SEO工程师我们要关注网站的一项重要指标就是网站的收录情况,而要分析网站收录是否异常查看分析搜索引擎蜘蛛的对网页的抓取日志是必须的工作。服务器日志记录的不仅仅是蜘蛛的来访数据,也记录了用户的来访数据,如果网站大了,用户多了,每天能产生几百兆甚至上G的服务器日志,而默认的服务器日志都是存储在一个文件当中,这样日积月累就会越来越大,那么打开就会非常卡非常慢,对此需要对服务器日志进行按照每天分割存储即可,本篇文章介绍利用logrotate对阿里云ECS nginx服务器日志进行分割。
利用logrotate对阿里云ECS_nginx服务器日志进行分割.png

logrotate是一个日志文件管理工具。用来把旧文件轮转、压缩、删除,并且创建新的日志文件。我们可以根据日志文件的大小、天数等来转储,便于对日志文件管理,一般都是通过cron计划任务来完成的。

具体操作步骤:

第一步:创建一个叫nginx的文件,命令如下

[root@*** logrotate.d]# vi /etc/logrotate.d/nginx (logrotate.d文件夹在etc下)

第二步:用vim命令打开nginx文件,并把添加如下代码保存并退出
/somedir1/*.log {
daily
rotate 5
missingok
dateext
compress
notifempty
sharedscripts
postrotate
  kill -USR1 `cat /somedir2/nginx.pid` ]
endscript
}


参考案例:
案例.png

注意:其中somedir1需要替换成存放nginx日志的目录,somedir2需要替换成系统存放nginx.pid文件的目录。nginx.pid的文件所在的位置要到nginx.conf配置文件里面去查找一下。

注释:

/somedir1/*.log:需要轮询日志路径
daily:每天轮询
rotate 5:保留最多5次滚动的日志
missingok:如果日志丢失,不报错继续滚动下一个日志
dateext:使用日期作为命名格式
compress:通过gzip压缩转储以后的日志
notifempty:当日志为空时不进行滚动
/somedir2/nginx.pid: nginx pid位置,请查看nginx.conf
postrotate/endscript:在截断转储以后需要执行的命令

第三步:手动执行看效果如何,命令如下

[root@*** ] logrotate -f /etc/logrotate.d/nginx

补充:
配置完毕,需要重启一下nginx,重启命令:service nginx restart

补充:
首先要把默认日志修改到alidata的www的log文件夹下面,方便FTP下载。在vhost的conf文件里面修改路径,修改结果:access_log /alidata/www/log/default.log;
已邀请:

要回复问题请先登录注册