CentOS7下Nginx日志无法输出至journal问题排查求助
解决CentOS 7下Nginx 1.23.3日志无法通过journalctl查看的问题
1. 检查rsyslog的journal转发配置
rsyslog 8.2212.0版本默认可能未开启omjournal模块,也没有配置local1日志转发到journal,需要手动添加:
- 编辑
/etc/rsyslog.conf,在开头添加模块加载指令:module(load="omjournal") - 在配置文件末尾添加local1日志的转发规则,如果需要将日志关联到nginx服务单元,加上
Unit参数:local1.* action(type="omjournal" template="RSYSLOG_TraditionalFileFormat" Unit="nginx.service") - 重启rsyslog服务:
systemctl restart rsyslog
2. 验证Nginx的syslog配置有效性
- 确认Nginx配置中的syslog路径正确,CentOS 7下
unix:/dev/log是rsyslog默认监听的unix socket,无需修改。 - 测试Nginx是否发送日志:重启Nginx后,访问一个页面,然后查看rsyslog的运行日志排查是否接收失败:
journalctl -u rsyslog -f
3. 调整journalctl的查询方式
- 如果未配置rsyslog的
Unit参数,syslog日志不会关联到nginx服务单元,此时需要通过tag查询:journalctl -t MY_NGINX -f - 若已配置
Unit参数,即可用原命令journalctl -u nginx -f查看。
4. 排查rsyslog日志过滤问题
- 检查
/etc/rsyslog.conf中是否包含$IncludeConfig /etc/rsyslog.d/*.conf,确保自定义配置文件被加载。 - 临时开启rsyslog调试模式排查:在
/etc/rsyslog.conf中添加:
重启rsyslog后,查看$DebugFile /var/log/rsyslog.debug $DebugLevel 2/var/log/rsyslog.debug是否有local1日志的接收记录。
内容的提问来源于stack exchange,提问作者Nakos Kotsanis
相关产品推荐
相关产品推荐

