系统如下:
- SUSE Linux Enterprise Server 10
- 带有预定义 syslog-ng.conf 的 syslog-ng
- /var/log/messages 中的消息如下所示:
2 月 8 日 09:29:53 sles1 sshd[17529]: 已接受来自 10.30.34.64 端口 4855 ssh2 的 root 键盘交互/pam
我需要的:
- 记录事件严重性/设施。例如,添加<优先>在邮件开头:
<15>2 月 8 日 09:29:53 sles1 sshd[17529]: 已接受来自 10.30.34.64 端口 4855 ssh2 的 root 键盘交互/pam
我的问题是:
如何改变 syslog-ng.conf 来启用这种类型的日志记录?
谢谢。
答案1
听起来你想以特定格式重写日志文件。该链接详细介绍了如何告诉 syslog-ng 执行此操作 :)
答案2
根据一些快速阅读,我认为您想要使用 syslog() 驱动程序,该驱动程序在 Syslog-ng 管理员指南的第 8.1.6 节中进行了描述。 http://www.balabit.com/support/documentation/?product=syslog-ng
我希望这会有所帮助,如果我发现更多信息,我会告诉你。
我认为 syslog() 驱动程序应该与源声明一起使用。所以我有source external { udp(); };
你可能会使用source external { syslog(transport("udp")); };
我没有合适的测试环境来尝试这个,但如果我正确理解你的问题的话,我认为这就是你想要做的。
我回去看了看,发现有一个可以在目的地使用的宏,叫做 TAG,例如
destination d_all {
file("/log/$FACILITY.log" group("users")
template_escape(no)
template("$TAG $PRIORITY $S_DATE $HOST $MSG\n"));
};
这些宏是在管理指南的第 218 页左右定义的。
答案3
如果您的目的地配置如下:
destination syslog-consumer { unix-stream("/var/run/syslog-output"); };
系统日志消息将以syslog-consumer
您想要的格式发送到该套接字。
您只需要设置一些东西来监听该套接字并写入文件。