我的系统日志设置已经顺利运行多年,突然间我根本无法记录任何内容。
随着默认配置我通过运行 PHP 脚本来测试日志记录:
php -r "syslog(LOG_NOTICE,'Test message');"
另外,使用 logger 命令:
/usr/bin/logger -s "Test message"
在相同的健康服务器上,两个命令都写入行/var/log/messages
。在坏服务器上,我什么也得不到:
rsyslogd
服务正在运行/var/log/messages
除了 systemd 重启消息外,没有记录任何内容rsyslogd -nd
在前台运行时,运行上述命令时我根本没有得到任何调试输出。- 运行
rsyslogd -N1
检查语法,没有收到配置错误
我在 CentOS 7 上运行 rsyslogd 8.24.0-34.el7
什么原因会阻止系统接收消息?
更新:重新启动机器后,问题就自行解决了。
它还清除了前几天重复出现的一系列错误,如下所示:
rsyslogd: sd_journal_get_cursor() failed: 'Cannot assign requested address' [v8.24.0-34.el7]
rsyslogd: imjournal: journal reloaded... [v8.24.0-34.el7 try http://www.rsyslog.com/e/0 ]
答案1
什么原因会阻止系统接收消息?可能是没有可用的磁盘空间
rsyslogd:sd_journal_get_cursor()失败:“无法分配请求的地址”[v8.24.0-34.el7] rsyslogd:imjournal:日志已重新加载... [v8.24.0-34.el7 尝试 http://www.rsyslog.com/e/0 ]
当日志轮换时出现错误。
这是 rsyslog v8.24.0-34.el7 中的一个错误 - 请更新至最新的当前版本。
或者,你可以在 /etc/rsyslog.conf 文件中将其注释掉
$ModLoad imjournal
$IMJournalStateFile imjournal.state
添加
module (load= "imjournal" StateFile= "imjournal.state" WorkAroundJournalBug= " on")
并重启服务 rsyslog