pg_monzテンプレートを使用してPostgreSQLの監視を使ってみて本番環境投入の検討をしています。
テンプレートにあるログ監視を使用して、slackへの通知を設定したいのですが
トリガーの設定からつまずいております。
Zabbixは2.4を使用しています。
pg_monzのログ監視設定は以下のようになっています。
logrt["{$PGLOGDIR}/postgres.*","PANIC|FATAL|ERROR|[Ee]rror"]
トリガーの条件式はこのようにしています。
(({db1:logrt["{$PGLOGDIR}/postgres.*","PANIC|FATAL|ERROR|[Ee]rror"].iregexp(error)})=0)
この状態にして、echo "error" >> postgres.20180420
のようにテストを行うのですがトリガーが起動しません。
logrtに対しての条件式が間違っていると思うのですが、ご指摘お願いいたします。
04/26追記
上手くいかないため、内容追記しなおします。
SQLの失敗がロギングされるよう設定し、以下のようなシェルスクリプトでPostgreSQLにエラーを出力しています。
while true do export PGPASSWORD=password psql -U postgres -d mydb -h hostname -c "SELET error"; sleep 10; done
ディレクトリ・ファイルの権限などはこのようになっています。
-bash-4.2$ ll /usr/local/pgsql/data/pg_log/postgres -d drwxr-xr-x 2 zabbix zabbix 4096 Apr 25 16:01 /usr/local/pgsql/data/pg_log/postgres -bash-4.2$ ll /usr/local/pgsql/data/pg_log/postgres -l total 416 -rw-r--r-- 1 zabbix zabbix 378537 Apr 25 16:00 postgresql.log.2018-04-25-15 -rw-r--r-- 1 zabbix zabbix 35091 Apr 25 16:06 postgresql.log.2018-04-25-16
/var/log/zabbix/zabbix_agent.logおよび/var/log/zabbix/zabbix_server.logにエラーメッセージは何も出力はありません。
ランタイムコンフィギュレーションを利用して、zabbix_agentd -R log_level_increase="active check"
を行ったりしましたが
エラーメッセージは確認されませんでした。
pg_monzのデフォルトにあるすべてのアイテムは有効されており、それらの値は最新データにて正しく確認できています。
RDS PostgreSQLのログをboto3のdownload_db_log_file_portionを使用してサーバーにダウンロードしています。
そのためエンコードもチェックしたのですが、問題なさそうです。
[root@ip-10-10-1-132 ~]# file -i /usr/local/pgsql/data/pg_log/postgres/postgresql.log.2018-04-25-16 /usr/local/pgsql/data/pg_log/postgres/postgresql.log.2018-04-25-16: text/plain; charset=us-ascii

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/04/25 11:13