以下のようにデータベースを作成しました。
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