아래와 같이 데이터베이스를 만들었습니다.
https://github.com/rsyslog/rsyslog/blob/master/plugins/ompgsql/createDB.sql
데이터베이스에 "루트" 사용자를 생성하고 삽입 권한을 부여했습니다.
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