Rsyslog на PostgreSQL работает нормально, но не все столбцы заполнены - PullRequest
1 голос
/ 22 января 2020

Я правильно настроил хранение сообщений системного журнала в PostgreSQL, как показано на этом изображении, но ntseverity, важность, источник событий и т. Д. c равны нулю:

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="')")
}

1 Ответ

0 голосов
/ 19 февраля 2020

ваши поля пусты, потому что в операторе вставки вы отправляете только два поля.

Попробуйте что-то вроде:

$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 
...