这个让我有点疯狂 如何根据程序名来路由syslog-ng收到的nxlog消息? 它应该是自我解释,但它不能正常工作。 这些消息被放到syslog-ng的通用日志文件中,而没有应用过滤。
我使用nxlog发送这样的IIS日志:
<Input W3SVC> Module im_file ... Exec $SourceName = 'IIS'; ... </Input> <Route W3SVC> Path W3SVC => IIS_Syslog </Route> <Output IIS_Syslog> Module om_udp Host xxx Port xxx Exec to_syslog_ietf(); </Output>
这发送到一个syslog-ng服务器应该赶上下面的filter。
filter f_iis { source ('IIS'); };
或者我试过以下
filter f_iis { program ('IIS'); };
如果你将它作为纯系统日志(即在nxlog.conf使用to_syslog_bsd() ),那么$ SourceName(= IIS )的值将在RFC3164调用TAG的部分的消息中:
The value in the TAG field will be the name of the program or process that generated the message.
Syslog-ng调用这个program ,所以我相信第二个应该做你需要的:
filter f_iis { program ('IIS'); };