使用 syslog-ng 解析结构化 syslog
Posted
技术标签:
【中文标题】使用 syslog-ng 解析结构化 syslog【英文标题】:Parsing structured syslog with syslog-ng 【发布时间】:2012-10-06 18:43:15 【问题描述】:我正在尝试利用 syslog-ng
中的结构化数据解析功能。从我的防火墙,我转发以下消息:
1 2012-10-06T11:03:56.493 SRX100 RT_FLOW - RT_FLOW_SESSION_CLOSE [junos@2636.1.1.1.2.36 reason="TCP FIN" source-address="192.168.199.207" source-port="59292"目标地址="184.73.190.157" 目标端口="80" 服务名称="junos-http" nat-source-address="50.193.12.149" nat-source-port="19230" nat-目标地址="184.73.190.157" nat-destination-port="80" src-nat-rule-name="source-nat-rule" dst-nat-rule-name="None" protocol-id="6" policy- name="trust-to-untrust" source-zone-name="trust" destination-zone-name="untrust" session-id-32="9375" packet-from-client="9" bytes-from-client ="4342" 来自服务器的数据包="7" 来自服务器的字节="1507" 已用时间="1" 应用程序="未知" 嵌套应用程序="未知" 用户名="N/A" 角色= "N/A" packet-incoming-interface="vlan.0"]
根据 IETF 日志的格式,它似乎是正确的,但由于某种原因,结构化数据实际上被解析为日志的消息部分,而不是被解析为结构化数据。
【问题讨论】:
【参考方案1】:在 syslog-ng 方面,您需要使用 syslog() 源或设置了 flags(syslog-proto) 的 tcp() 源,然后这些东西最终会出现在 $.SDATA 这样的变量中.junos@2636.1.1.1.2.36.reason 等等,然后你可以根据需要使用它。
【讨论】:
以上是关于使用 syslog-ng 解析结构化 syslog的主要内容,如果未能解决你的问题,请参考以下文章
syslog-ng+loganalyzer(非常详细配置文件)部署收集操作日志