本节主要内容:
nginx日志管理。
1、创建日志目录
nginx 的默认日志目录所在硬盘空间,有时不能满足日益增长的日志需求。
因此,可以根据硬盘的空间状况创建日志目录。
例如:
2、修改nginx日志配置文件
配置 nginx 的日志目录,指向(1)中创建的目录。
在配置文件中,添加内容:
根据实际情况写在 server 或 http 或 location 块 , 本例写在 server 块中。
上面的combined为 nginx 的默认日志格式,如果不这样,则需要重新定义。
本例中直接写了combined,这种格式 awstats 也认。
3、使用logrotate管理nginx日志,进行nginx日志分割操作。
logrotate 系统自带,并且会自动定时在凌晨 4:02 份启动
配置文件:
每次 rotate 之前,会先调用 awstats 产生统计数据, rotate 之后会给 nginx 发信号将日志写人新的空白日志文件
logrotate 会用到/etc/logrotate.conf配置文件和/etc/logrotate.d中所有的配置文件,所以无需改动 logrotate 配置,只需往/etc/logrotate.d加入上面的配置文件即可
编写配置文件时,请务必小心,否则 debug 很麻烦 , 比如把配置文件中的nocompress去掉,以为会默认使用/etc/logrotate.conf中的 compress, 实际上不是这样的。
如果/etc/logrotate.d中的配置文件错误, logrotate 不会用/etc/logrotate.conf替代,而且 /var/log/messages 和系统的发的 mail 中毫无出错信息,除非配置文件有明显的错误,才会 /var/log/messages 和系统的发的 mail 反应出来。
二,如何logrotate进行nginx日志切割,并指定文件名格式呢?
这里以我的一个案例来分析下。
创建一个logrotate的管理脚本,来分割nginx的日志,日志的名字希望是access20130423.log,即access%Y%m%d.log。
本来默认不设置的话,会生成access%Y%m%d,可单位的日志分析系统,必须要.log后缀。
以下shell/ target=_blank class=infotextkey>shell脚本有些问题,最终会生成这样一些文件:
第三个文件是怎么回事,为什么会生成这样一个文件?
是不是 /var/log/nginx/*.log这里,应该明确的指定access.log?
有高手路过,欢迎指点迷津。
您可能感兴趣的文章:
Nginx 日志分割的小脚本
分享:Logrotate分割nginx日志的脚本
nginx日志配置、Nginx日志分割
Nginx日志按天分割的方法分享(图文)
一个分割ngnix网站日志的Shell脚本
每天自动分割Nginx日志文件的Shell脚本