我有一对指向 rsyslog(v4.6.2)实例的 sonicwall 设备,它们的消息格式显然不符合 mysql 插件的要求。
rsyslog 实例可以毫无问题地记录其他设备(Linux 服务器和一些交换机),但 sonicwall 设备的消息部分返回为
$消息无效的属性名称
消息的其余部分已正确记录(时间、来源、设施等)
查看 rsyslog 调试日志,我在收到消息时看到了这一点
时间戳:调用操作,记录到 ommysql.so
时间戳:无效属性 ID:“0”
如果我还登录到推荐的“调试”模板(基于文件),结果类似于以下内容:
FROMHOST:'XXXX',HOSTNAME:'真实主机名',PRI:129,syslogtag'id = firewall',programname:'id = firewall',APP-NAME:'id = firewall',PROCID:' - ',MSGID:' - ',
时间戳:'1 月 31 日 14:10:12',结构化数据:'-',
消息:' sn=0017C5272ED0 时间=“2012-01-31 14:10:13” fw=XXXX pri=1 c=32 m=608 消息=“IPS
检测警报:INFO SNMP 访问(UDP)”sid=748 ipscat=INFO ipspri=3 n=0 src=XXXX:LAN:DNS_NAME dst=XXXX:161:PRINTERS:'
rawmsg:'<129>id=firewall sn=0017C5272ED0 time="2012-01-31 14:10:13" fw=XXXX pri=1 c=32 m=608 msg="IPS 检测警报:INFO SNMP (UDP)" sid=748 ipscat=INFO ipspri=3 n=0 src=XXXX:1052:LAN:DNS_NAME dst=XXXX:161:PRINTERS:'
rsyslog 现在已经更新到 6.3.3 版本,但我找不到任何确认我的问题是在更高版本中得到纠正的。
如果可能的话,我希望坚持使用 centos 的官方 rpm,但是“调试模板”看起来不错,这让我相信这是 mysql 插件的问题,升级可能是我唯一的选择。
在我走这条路之前,你知道我是否可以通过改变我正在使用的模板或我错过的其他设置来纠正这个问题吗?
答案1
SQL 模板中有一个拼写错误,$msg% 而不是 %msg%;rsyslog 试图告诉我这一点,我甚至在我的原始问题中引用了这一点。