直接使用Nginx记录日志,在多台服务器的情况下日志会过于分散不容易管理,不过nginx在1.7.1版本以后,可以使用Rsyslog来记录日志。
Rsyslog可以作为集中日志服务器。使用Ryslog了解两个关键术语。
facility:设施,收束日志数据流为有限几个;我们使用的一般是local0-local7自定义收集数据auth, authpriv, cron, daemon, kern, lpr, mail, mark, news, security, user, uucp, syslog, local0-local7
proirity:优先级,在记录日志是我们选择一个级别,只要报错信息超过该级别就都会记录debug, info, notice, warn(warning), err(error), crit(critical), alert, emerg(panic)
配置
Nginx相关配置
nginx的access_log使用语法
Syntax: access_log path [format [buffer=size] [gzip[=level]] [flush=time] [if=condition]]; access_log off; Default: access_log logs/access.log combined; Context: http, server, location, if in location, limit_except
aceess_log记录到syslog案例
error_log syslog:server=192.168.1.1 debug; access_log syslog:server=unix:/var/log/nginx.sock,nohostname; access_log syslog:server=[2001:db8::1]:12345,facility=local7,tag=nginx,severity=info combined;
案例
Nginx我们使用如下Nginx配置
access_log syslog:server=127.0.0.1,facility=local6 main;
修改Ryslog的配置
vim /etc/rsyslog.conf ### 开启rsyslog端口 $ModLoad imudp $UDPServerRun 514 # Provides TCP syslog reception $ModLoad imtcp $InputTCPServerRun 514 ### 配置nginx日志的路径,上面我们nginx的facility为 local6,所以对应local6的位置local6.* /var/log/nginx
重启服务
nginx -s reload systemctrl restart rsyslog
查看结果
tail -f /var/log/nginx
查看结果
总结
简单的演示了如何配置Nginx与Rsyslog的结合,Rsyslog作为集中式日志服务器,在日志数量多的情况下会显示出它的优势。