Nginx-日志切割
日志功能配置
访问日志:/var/log/nginx/access.log ngx_http_log_module
log_format main ' $remote_addr - $remote_user [$time_local] "$request" '
' $status $body_bytes_sent "$http_referer" '
' "$http_user_agent" "$http_x_forwarded_for" ';
access_log /var/log/nginx/access.log main;
$remote_addr 显示用户访问源IP地址信息
$remote_user 显示认证的用户名信息
[$time_local] 显示访问网站时间
“$request” 请求报文的请求行信息
$status 用户访问网站状态码信息
$body_bytes_sent 显示响应的数据尺寸信息
$http_referer 记录调用网站资源的连接地址信息(防止用户盗链)
$http_user_agent 记录用户使用什么客户端软件进行访问页面的 (谷歌 火狐 IE 安卓 iphone)
$http_x_forwarded_for 负载均衡
错误日志级别
错误日志:/var/log/nginx/error.log — core functionality
Syntax: error_log file [level]; 指定错误日志路径以及错误日志记录的级别
Default: error_log log/error.log error;
Context: main, http, mail, stream, server, location
error_log /var/log/nginx/error.log warn;
错误级别:
debug :调试级别: 服务运行的状态信息和错误信息详细显示 信息越多
info :信息级别: 只显示重要的运行信息和错误信息
notice :通知级别: 更加重要的的信息进行通知说明
warn :警告级别: 可能出现了一些错误信息,但不影响服务运行
error :错误级别: 服务运行已经出现了错误,需要进行纠正 推荐选择
crit :严重级别:必须进行修改调整
alert :严重警告级别:即警告,而且必须进行错误修改
emerg :灾难级别:服务已经不能正常运行 信息越少
实现nginx日志文件定时切割处理
/etc/logrotate.d/
日志切割方法一:利用脚本实现切割
#!/bin/bash
mv /var/log/nginx/access.log /var/log/nginx/access_$(date +%F).log
systemctl restart nginx
日志切割方法二:利用专用的文件切割程序–logrotate
# rotate log files weekly
weekly # 定义默认日志切割的周期
# keep 4 weeks worth of backlogs
rotate 4 # 定义只保留几个切割后的文件
# create new (empty) log files after rotating old ones
create # 创建出一个相同的源文件
# use date as a suffix of the rotated file
dateext # 定义角标(扩展名称信息)
# uncomment this if you want your log files compressed
# compress # 是否是切割后的文件进行压缩处理
# RPM packages drop log rotation information into this directory
include /etc/logrotate.d # 加载包含/etc/logrotate.d/目录中文件配置
# no packages own wtmp and btmp — we’ll rotate them here
/var/log/wtmp { # 单独对某个文件进行切割配置
monthly
create 0664 root utmp
minsize 1M # 最小大小为1M,小于1M不进行切割
rotate 1
}
/var/log/btmp {
missingok
monthly
create 0600 root utmp
rotate 1
}