我创建了一个数据库,如下所述:
https://github.com/rsyslog/rsyslog/blob/master/plugins/ompgsql/createDB.sql
我在数据库中创建了一个“root”用户并授予插入权限:
Syslog=# create user "root";
Syslog=# grant insert on table SystemEvents to "root";
Syslog=# grant insert on table SystemEventsProperties to "root";
连接工作正常:
# psql Syslog -c '\conninfo'
You are connected to database "Syslog" as user "root" via socket in "/var/run/postgresql" at port "5432".
然后我尝试了几种不同的方法来在“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="")
什么都不起作用。我总是收到错误:
数据库错误(1):没有连接到服务器[v8.2102.0]
如何解决这个问题?
答案1
操作server
参数应该是主机名或 IP 地址,因此请尝试server="localhost"
第一个操作。请参阅配置页
例子。
您还可以尝试将所有参数替换为conninfo
使用标准的PostgreSQL URI格式,例如:
action(type="ompgsql" conninfo="postgresql://root:@localhost/Syslog")
您不需要指定 Unix 域套接字,但 URI 文档显示了如何执行此操作,例如:
postgresql://root/Syslog?host=/var/run/postgresql