Syslog-ng:如何记录严重性/设施?

Syslog-ng:如何记录严重性/设施?

系统如下:

  • 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您想要的格式发送到该套接字。

您只需要设置一些东西来监听该套接字并写入文件。

相关内容