rsyslog-pgsql を使ってみた(1)

以前Nagiosでプロセス数監視を行った際、合わせてログ監視が行えるかを調べていたのだが、Nagiosには、check_logs というプラグインも付属しており、エラーログなどが出力されているかどうかを確認することが出来ることがわかった。ただ、check_logs 内では以前のチェックからの差分を取り出してログを確認するのだが、OS付属のdiff コマンドを使っており、パフォーマンス面から問題がありそうに見えた。。


このため、 rsyslog-pgsql を使って、ログを直接PostgreSQLに投げ込み、かつ、時刻の部分にインデックスを貼っておくことで、パフォーマンスアップを目指せるかどうかを確認することにした。

rsyslog-pgsql の設定は以下のリンクに従った。
http://www.rsyslog.com/module-Static_Docs-view-f-rsyslog_mysql.html.phtml

設定はFedora 11 で実施したのだが、基本的には

yum install rsyslog-pgsql

を実施した後、postgresユーザーでRPMに付属の create.sql を実行し、rsyslog.conf 内に、

$ModLoad ompgsql.so  
 *.* :ompgsql:127.0.0.1,Syslog,postgres,aaa

などの設定を付け加えることになる。

この方法で、PostgreSQLのSyslog DBにSyslog の内容が反映されていることを確認した。

※ 後に、postgres ユーザーの使用を止め、

 *.* :ompgsql:127.0.0.1,Syslog,rsyslogusr1,aaa

とした。