使用rsyslog将syslog消息解析为单独的MySQL表
开箱即用,rsyslog会将所有内容转储到SystemEventsSyslog数据库内的表中(如果使用提供的默认模式)。我想使用正则表达式将入站消息过滤到单独的数据库表中。 我已经玩过这个游戏了,但是我很难找出最好的方法来做到这一点(甚至是起作用的方法)。 在我的rsyslog.conf中: $template wireless, \ "insert into RogueAPs \ (ReceivedAt, DeviceReportedTime, Facility, Priority, FromHost, Message) \ VALUES('%timegenerated%', '%timereported%', '%syslogfacility%', '%syslogpriority%', '%fromhost-ip%', '%msg%');", \ stdsql if $msg contains 'subtype=wireless' then :ommysql:127.0.0.1,Syslog,dbusername,dbpassword;wireless *.* :ommysql:127.0.0.1,Syslog,dbusername,dbpassword 这是我的最新尝试,但我遇到了麻烦。 (RogueAPs表只是rsyslog附带的默认SystemEvents表的克隆) 版本信息: shell# /usr/local/sbin/rsyslogd -v rsyslogd 5.5.5, compiled with: FEATURE_REGEXP: Yes FEATURE_LARGEFILE: No FEATURE_NETZIP (message compression): …