統合監視ソフトウェア Zabbix で PostgreSQL を監視しよう (1)
SRA OSS, Inc. 日本支社
盛 宣陽
(1) はじめに
本記事では、OSS 統合監視ソフトウェア Zabbix を利用した PostgreSQL の監視方法を紹介します。
(2) 統合監視ソフトウェアとは
システム監視は、ハードウェアの稼働監視、CPU などのリソース監視や アプリケーション監視など多岐にわたります。 監視や監視データの保存、障害が発生したときの通知設定を一元的に行って システム監視を自動化するソフトウェアを、統合監視ソフトウェアと呼びます。
統合監視ソフトウェアを用いると、内部状態が刻々と変化するデータベースの稼働状況と OS の状態を容易に蓄積できるので、障害発生時の通知だけでなく、障害が発生する前に データベース状態を把握することで対策を取ることもできるようになります。 また過去取得したデータを元に障害発生後に原因を追究したり将来を予想するなどに 役立てることができます。
オープンソースで利用できる統合監視ソフトウェアとして Zabbix、Hinemos、Nagios、Hobbit などがあります。
どのソフトウェアもメリット・デメリットがあります。監視設定を行うためには、 経験やノウハウが必要となり、細かい監視を行うためにはコストがかかってしまいます。 しかし Zabbixは、他の統合監視ソフトウェアと比べると監視設定を 効率良く設定できる機能が備わっていることが特徴となります。
(3) Zabbixについて
Zabbix は Zabbix SIA によって開発されている統合監視ソフトウェアで オープンソースとして公開されています。
Zabbix サーバは監視対象ホストやネットワーク機器に対して 定期的に監視を行って取得したデータを RDBMS に保存します。 収集したデータに閾値を設定し、閾値を超えたらユーザにメール通知を行ったり、 ブラウザを通して収集データをグラフ表示することもできます。
監視対象ホストには Zabbix エージェントを導入することで、 リソース監視やログ監視を容易に行うことができます。 また、独自のアプリケーションを監視するためにスクリプトによる監視も可能です。
また効率良く監視設定できるように次のような機能もあります。
- 監視設定のテンプレート化
- 監視設定をテンプレートとして定義し、同じ設定が必要なホストに監視設定を再利用できる機能。 テンプレートを xml ファイルでエクスポートしたりインポートすることが可能です。
- 監視対象ホストの自動登録
- 特定の IPアドレスレンジを定期的に探索して、新規に増設されたサーバ、 ネットワーク機器を自動登録、監視設定(テンプレートの自動適用)ができる機能 (ディスカバリ機能)。
- サーバの固有情報の自動取得、設定
- サーバの内部情報(NIC の数やマウントポイント)を自動取得して、 サーバの固有情報に合わせた設定を行う機能(ローレベルディスカバリ機能)。
(4) pg_monz について
pg_monz は Zabbix 用の PostgreSQL 監視テンプレートとなります。 pg_monz では、Zabbix のローレベルディスバリの機能を用いることで、 システム毎に異なるデータベース名やテーブル名を取得し、 PostgreSQL の稼働統計情報に定期的にアクセスを行い情報を収集します。
pg_monz は GitHub にて ライセンス Apache License Version 2.0 で配布されており、非商用・商用を問わず利用できます。
pg_monz を利用するためには、次のソフトウェアが必要になります。
ソフトウェア名 | バージョン |
---|---|
Zabbix | 2.0 以上 |
PostgreSQL | 9.2 以上 |
(注) PostgreSQL のバージョンは監視対象の PostgreSQL のバージョンを意味します。 Zabbix のデータベースとしての制限ではありません。
PostgreSQL の情報取得をするために、PostgreSQL を導入しているホスト上に Zabbix エージェントの導入が必要となります。
代表的な監視項目
- PostgreSQL サーバーの死活監視
- PostgreSQL サーバーのプロセス稼働確認、PostgreSQL サーバーの SQL 応答確認
- PostgreSQL のログ監視
- サーバーログで PANIC, FATAL, ERROR を含むメッセージ
- データベースサイズの監視
- バックエンドプロセスの監視
- バックエンドプロセス数(合計、SQL 処理中、idle、idle in transaction、lock 待ち)
- DB 内部状態の監視
- checkpoint_segments 超過・checkpoint_timeout 時間超過によるチェックポイント実行回数、 対象データベースのキャッシュヒット率、COMMIT 回数/s、一時ファイルに書き込んだデータのバイト数、 一定時間経過したバックエンドプロセス数(処理中)
など
→ 「(5) インストール・設定方法」に続く
(2014 年 4 月 10 日公開)