PostgreSQL的Rsyslog可以正常工作,但并非所有列都已填满

问题描述 投票:1回答:1

我已正确配置为将syslog消息存储在PostgreSQL中,如下图所示,但是ntseverity,重要性,eventsource等为空:

PostgreSQL and rsyslog message

这是到目前为止的配置:

## Configuration file for rsyslog-pgsql
### Changes are preserved

module (load="ompgsql")
*.* action(type="ompgsql" server="localhost" db="syslog" uid="rsyslogu" pwd="*********")

似乎必须创建一个模板,如下所示:https://www.rsyslog.com/doc/v8-stable/configuration/modules/ompgsql.html

我如何为这些多余的列设置模板?有人在模板中有剩余的列吗?

template(name="sql-syslog" type="list" option.sql="on") {
  constant(value="INSERT INTO SystemEvents (message, timereported) values ('")
  property(name="msg")
  constant(value="','")
  property(name="timereported" dateformat="pgsql" date.inUTC="on")
  constant(value="')")
}
postgresql rsyslog
1个回答
0
投票

您的字段为空,因为在插入语句中,您仅发送两个字段。

尝试类似的东西:

$template SQLWithProcessID,"insert into SystemEvents (Message, Facility, FromHost, Priority, DeviceReportedTime, ReceivedAt, InfoUnitID, SysLogTag) values ('%msg:R,ERE,1,FIELD:([a-zA-Z\/]+)(\[[0-9]{1,5}\])*:--end%', %syslogfacility%, '%HOSTNAME%', %syslogpriority%, '%timereported:::date-pgsql%', '%timegenerated:::date-pgsql%', %iut%, '%syslogtag:R,ERE,1,FIELD:([a-zA-Z\/]+)(\[[0-9]{1,5}\])*:--end%')",sql

module(load="ompgsql")
*.* :ompgsql:10.40.30.10,rsyslog,rsyslog,rsyslog;SQLWithProcessID 
© www.soinside.com 2019 - 2024. All rights reserved.