Nginx默认情况下会把日志生成到一个指定的访问日志文件access.log里面,时间长了会导致日志文件很大,不利于日志文件的分析和处理。因此要对Nginx日志文件按天或小时进行切割。
具体切割脚本:
cut_nginx_logs.sh
[root@bigdata logs]# cat cut_nginx_logs.sh
#!/bin/sh
#定义时间格式 年-月-天
Dateformat=`date +%Y%m%d`
#Nginx应用安装目录
Basedir="/home/web/nginx-1.11.1"
#Nginx应用日志存储目录
Nginxlogdir="$Basedir/logs"
#日志文件名
Logname="access"
#判断是否是目录,并且进入此目录
[ -d $Nginxlogdir ] && cd $Nginxlogdir||exit 1
#判断是否是文件
[ -f ${Logname}.log ]||exit 1
#重命名文件格式为【时间格式+日志名】
/bin/mv ${Logname}.log ${Dateformat}_${Logname}.log
#启动应用程序
$Basedir/sbin/nginx
++++++++++++++++++++++++++++++++++++++++++++++++++
设置定时任务:
每天的00点整进行执行脚本:cut_nginx_logs.sh
[root@bigdata logs]# crontab -e #进行编辑定时任务
00 00 * * * /bin/sh ../../cut_nginx_logs.sh >/dev/null 2>&1
查看定时任务:[root@bigdata logs]# crontab -l
++++++++++++++++++++++++++++++++++++++++++++++++++++++
Nginx常用的日志收集及分析工具有:
rsyslog、awstats、flume、ELK[ Elasticsearch logstash Kibana ]、storm等。