我需要收集CEF日志并使用rsyslog将它们写入MySQL数据库。 在rsyslog.conf中注册了以下规则:
module(load="ommysql") module(load="imtcp") module(load="imudp") module(load="mmfields") template(name="ceflogs" type="string" option.sql="on" string="insert into idslogs (`DeviceVendor`, `DeviceProduct`, `DeviceVersion`, `SignatureID`, `Name`, `Severity`, `Extensions_cat`, `Extensions_dmac`, `Extensions_cnt`, `Extensions_cs2Label`, `Extensions_cs2`, `Extensions_cs3Label`, `Extensions_cs3`, `Extensions_cs1Label`, `Extensions_cs1`, `Extensions_dst`, `Extensions_spt`, `Extensions_dpt`, `Extensions_proto`, `Extensions_deviceExternalId`, `Extensions_smac`, `Extensions_rt`, `Extensions_src`) values ('%$!cef!DeviceVendor%', '%$!cef!DeviceProduct%', '%$!cef!DeviceVersion%', '%$!cef!SignatureID%', '%$!cef!Name%', %$!cef!Severity%, %$!cef!Extensions!cat%, '%$!cef!Extensions!dmac%', %$!cef!Extensions!cnt%, '%$!cef!Extensions!cs2Label%', '%$!cef!Extensions!cs2%', '%$!cef!Extensions!cs3Label%', '%$!cef!Extensions!cs3%', '%$!cef!Extensions!cs1Label%', %$!cef!Extensions!cs1%, '%$!cef!Extensions!dst%', %$!cef!Extensions!spt%, %$!cef!Extensions!dpt%, '%$!cef!Extensions!proto%', %$!cef!Extensions!deviceExternalId%, '%$!cef!Extensions!smac%', %$!cef!Extensions!rt:::date-mysql%, '%$!cef!Extensions!src%')") ruleset(name="remote") {action(type="mmfields") action(type="ommysql" server="localhost" db="dbname" uid="username" pwd="password")} input(type="imtcp" port="514" ruleset="remote") input(type="imudp" port="514" ruleset="remote")
命令“nc -l -u 514”显示CEF格式的传入日志, 但是日志不会写入MySQL数据库。 谁知道rsyslog.conf中需要更改什么。提前感谢您的帮助。