我正在运行 Ubuntu 和 Postgresql 9。
我已经启用 postgresql 来记录到 syslog,并将以下指令添加到配置文件中:
syslog_facility = 'local0'".
我尝试配置 syslog 以将它们记录到单独的文件中,但该文件已归档。我更新了 /etc/syslog.conf,使其包含(请参阅最后一行的 postgresql 指令)
auth,authpriv.* /var/log/auth.log
*.*;auth,authpriv.none -/var/log/syslog
daemon.* -/var/log/daemon.log
kern.* -/var/log/kern.log
lpr.* -/var/log/lpr.log
mail.* -/var/log/mail.log
user.* -/var/log/user.log
mail.info -/var/log/mail.info
mail.warn -/var/log/mail.warn
mail.err /var/log/mail.err
news.crit /var/log/news/news.crit
news.err /var/log/news/news.err
news.notice -/var/log/news/news.notice
*.=debug;\
auth,authpriv.none;\
news.none;mail.none -/var/log/debug
*.=info;*.=notice;*.=warn;\
auth,authpriv.none;\
cron,daemon.none;\
mail,news.none -/var/log/messages
*.emerg *
daemon.*;mail.*;\
news.err;\
*.=debug;*.=info;\
*.=notice;*.=warn |/dev/xconsole
local0.* -/var/log/pgsql
我已经使用“/etc/init.d/sysklogd restart”和“restart rsyslog”重新启动了 syslog。
当重新加载 postgresql 时,消息将附加到 /var/log/messages 和 /var/log/syslog ...而不是我配置 syslog 使用的正确文件......
在另一台装有相同版本 Postgresql 的 Debian 机器上也可以正常工作......
有任何想法吗?
- 我的 syslog 配置文件有问题吗?
- 我应该在 postgresql.conf 中添加其他内容吗?
- 我可以检查 syslog 是否确实使用我更改的配置文件吗?
答案1
我觉得你的postgresql.conf
文件中有一个拼写错误。请确保你确实使用了
syslog_facility = 'local0'
此外,旧的 syslogd 要求在配置文件中使用硬制表符而不是空格,因此请确保您实际上没有使用空格,或者您的编辑器没有将制表符转换为空格(例如 vim 中的 expandtab 选项)。
您还提到了旧的 syslogd和rsyslog,所以请检查你实际使用的是哪一个。rsyslog 的配置文件设计为向后兼容 syslogd,但是做使用不同的文件。因此,如果您使用 rsylog,则请添加您的日志记录行/etc/rsyslog.conf
。
为了防止这些消息也出现在您的设备中,/var/log/messages
您需要明确过滤掉该功能。为此,请将您的消息配置修改为:
*.=info;*.=notice;*.=warn;\
auth,authpriv.none;\
cron,daemon.none;\
mail,news.none;\
local0.none -/var/log/messages
这句话的意思是,“不要将任何严重性级别从 local0 设施写入此文件。”或者,实际上排除任何内容local0.*
。