我正在尝试追踪在我的 CentOS 机器上终止 mysql 服务器的进程。
我有以下设置/etc/syslog.conf
:
*.*;mail.none;authpriv.none;cron.none /var/log/messages
我认为这会导致所有消息(包括内核消息)都被记录到/var/log/messages
,除了authpriv
和mail
消息cron
。
然而,当我查看时/var/log/messages
,我没有看到任何似乎正在终止服务器的内核消息。
以下是该文件的全部内容/etc/syslog.conf
:
# Log anything (except mail)
# Don't log private authentication messages!
*.*;mail.none;authpriv.none;cron.none /var/log/messages
# The authpriv file has restricted access.
authpriv.* /var/log/secure
# Log all the mail messages in one place.
mail.* -/var/log/maillog
# Log cron stuff
cron.* /var/log/cron
# Everybody gets emergency messages
*.emerg *
# Save news errors of level crit and higher in a special file.
uucp,news.crit /var/log/spooler
# Save boot messages also to boot.log
local7.* /var/log/boot.log
我已经重新启动了 syslog,但没有什么变化。
有任何想法吗?
答案1
无需猜测您的崩溃原因,我可以通过系统日志提供帮助。
*.*;mail.none;authpriv.none;cron.none /var/log/messages
如果使用星号,则无需列出任何设施或优先级。这纯粹是迂腐之举,仅供参考。如果您确实希望所有消息都发送到 /var/log/messages,则可以使用:
*.* /var/log/messages
确保您实际运行的是“syslog”而不是“rsyslog”。您引用的配置基于 CentOS 5 及更早版本中默认的旧“syslog”的使用。您没有提到您使用的是哪个版本的 CentOS,但如果恰好是 CentOS 6,那么您可能正在运行 rsyslog。Rsyslog 使用 /etc/rsyslog.conf 和 /etc/rsyslog.d/*.conf 这两个不能同时运行,否则您可能看不到消息。第一个绑定到 syslog 端口的将获胜。
要测试系统日志中的内核消息,请使用以下命令:
logger -i -p kern.crit "This is a syslog test"
如果您看到测试消息,则表明 syslog 正在运行,而 mysqld 正在自行崩溃,正如 lsmooth 所提到的。