rsyslog $ programname动态拆分

时间:2013-11-06 10:43:07

标签: config rsyslog

我想设置一个rsyslog来登录数据库。程序名称将具有特定结构:

东西。{主机名}。{DBNAME}。{表}

有没有机会把它拆分成我以后可以使用的变量?我的意思是当我指定INSERT时我需要知道表名。

所以我的问题是我该怎么做?这就是我到目前为止:):

# Only if we sent the log
if ($syslogfacility-text == 'local7' and $programname startswith 'something.') then {
    #############
    # Templates #
    #############

    # I need something like this but with variables
    # $template gw1,"insert into gateway (Message, Facility, FromHost, Priority, DeviceReportedTime, ReceivedAt, InfoUnitID, SysLogTag) values (\'%msg%\', %syslogfacility%, \'%HOSTNAME%\', %syslogpriority%, \'%timereported:::date-mysql%\', \'%timegenerated:::date-mysql%\', %iut%, \'%syslogtag%\')",SQL

    # *.* :ommysql:127.0.0.1,Syslog,rsyslog,passwordhere;gw1
}

另一个问题是,如果完成上述操作,那么如何将$ msg拆分为动态SQL?我的意思是如果我不想在SQL脚本中指定列名,只需要指定值。不同日志中的值的数量可能不同。

感谢您的帮助!

0 个答案:

没有答案