Eu criei um banco de dados conforme explicado aqui:
https://github.com/rsyslog/rsyslog/blob/master/plugins/ompgsql/createDB.sql
Criei um usuário "root" no banco de dados e concedi permissões de inserção:
Syslog=# create user "root";
Syslog=# grant insert on table SystemEvents to "root";
Syslog=# grant insert on table SystemEventsProperties to "root";
As conexões funcionam bem:
# psql Syslog -c '\conninfo'
You are connected to database "Syslog" as user "root" via socket in "/var/run/postgresql" at port "5432".
Então tentei várias maneiras diferentes de especificar o host no "rsyslog.conf":
*.* action(type="ompgsql" server="" db="Syslog" uid="root" pwd="")
*.* action(type="ompgsql" server="/run/postgresql" db="Syslog" uid="root" pwd="")
*.* action(type="ompgsql" server="/run/postgresql/.s.PGSQL.5432" db="Syslog" uid="root" pwd="")
Nada funciona. Recebo sempre o erro:
erro db (1): sem conexão com o servidor [v8.2102.0]
Como consertar isto?
O
server
parâmetro de ação deve ser um nome de host ou endereço IP, então tenteserver="localhost"
na primeira ação. Veja os exemplos da página de configuração .Você também pode tentar substituir todos os parâmetros por um
conninfo
que usa um formato URI padrão do PostgreSQL , por exemplo:Você não precisa especificar o soquete do domínio Unix, mas a documentação do URI mostra como você pode fazer isso, por exemplo: