Zabbixで PostgreSQL を監視pg_monz v2.0 のご紹介
2015年2月27日
SRA OSS, Inc. 日本支社
マーケティング部
http://www.sraoss.co.jp/ pg_monz（ぴーじもんず）
PostgreSQL monitoring template for Zabbix
ZabbixでPostgreSQL の監視を行うためのテンプレート
http://pg-monz.github.io/pg_monz/ 2013/11/05 バージョン 1.0リリース
 開発
TIS株式会社様 SRA OSS,Inc.日本支社 共同 ライセンス
Apache License Version 2.0
COPYRIGHT(c) SRA OSS, Inc. Japan All Rights Reserved.

2

pg_monz v1.0 機能
 監視機能 PostgreSQLサーバーの死活監視 PostgreSQLのログ監視
 データベースサイズの監視 トランザクション処理状況の監視
 滞留クエリ処理の監視など

 Zabbix のディスカバリ機能を利用し、データベースやテーブルを自動検出し、自動で監視を開始する
COPYRIGHT(c) SRA OSS, Inc. Japan All Rights Reserved.

3

pg_monz v1.0 反省点
 PostgreSQL単体の監視 クラスタリング構成に未対応だった

 監視項目1個に対して１個のクエリ発行
 PostgreSQLサーバでSQL発行が多発してしまった 同時刻の関連がある値が見れなかった

 取得した値を列挙しただけ
 関連があるデータをグルーピングして表示していなかった
COPYRIGHT(c) SRA OSS, Inc. Japan All Rights Reserved.

4

pg_monz v 2.0では
 機能追加 PostgreSQLクラスタリング構成対応
 性能改善１回のクエリで複数個の監視データを取得
 表示の改善COPYRIGHT(c) SRA OSS, Inc. Japan All Rights Reserved.

5

PostgreSQLクラスタリング構成pgpool-II機能• 負荷分散• フェイルオーバ
PostgreSQLStreaming Replication機能• 同期/非同期
レプリケーションCOPYRIGHT(c) SRA OSS, Inc. Japan All Rights Reserved.

6

Streaming Replication 監視機能
 Primary-Standby状態監視
1号機に障害が発生2号機をPrimaryに昇格させた場合のイベント

COPYRIGHT(c) SRA OSS, Inc. Japan All Rights Reserved.

7 同期状況監視
 LLDでスタンバイ固有情報を自動取得

COPYRIGHT(c) SRA OSS, Inc. Japan All Rights Reserved.

8

 Write query block監視 同期レプリケーションでStandbyが１台もいない場合に、Primaryサーバで書き込みクエリが止まってしまう 書き込みクエリではなく参照クエリで監視 split-brain監視 Primaryサーバが複数立ち上がっていないことを監視 コンフリクト発生状況
 Streaming Replication固有のプロセス監視
COPYRIGHT(c) SRA OSS, Inc. Japan All Rights Reserved.

9

pgpool-II 監視機能
 pgpool-II 死活監視 クライアント利用状況
 利用可能接続数、使用中接続数

 コネクションプール利用状況
 メモリキャッシュ状況
COPYRIGHT(c) SRA OSS, Inc. Japan All Rights Reserved.

10 バックエンド監視 pgpool-IIが接続しているPostgreSQLの状態
 ロール、負荷分散ウエイト、ステータス
pgpool-IIがPostgreSQLを切り離したときのイベント

COPYRIGHT(c) SRA OSS, Inc. Japan All Rights Reserved.

11

 pgpool-II watchdog機能の監視
 pgpool-IIの切り替え
 delegate_ip(仮想IP)の監視 split-brain監視
仮想IP

仮想IPwatchdog

COPYRIGHT(c) SRA OSS, Inc. Japan All Rights Reserved.

pgpool-II

12その他 細かい改善
 不要領域の状況監視
 不要領域の推測値をデータベースサイズと一緒にグラフ化

COPYRIGHT(c) SRA OSS, Inc. Japan All Rights Reserved.

13 取得不可 原因が分かるように

COPYRIGHT(c) SRA OSS, Inc. Japan All Rights Reserved.

14性能改善 ディスカッション
Zabbixのモジュールを作成してはどうか？

PostgreSQLのバックグランドプロセスを作成してはどうか？

簡単に使えるようにしたい
COPYRIGHT(c) SRA OSS, Inc. Japan All Rights Reserved.

15

性能改善
 1度のクエリで、複数の監視データを取得
 zabbix_senderを利用
Zabbixサーバ

PostgreSQLサーバ
get命令

SQL発行

zabbix_sender
まとめて返却COPYRIGHT(c) SRA OSS, Inc. Japan All Rights Reserved.

16

表示の改善 アプリケーション名を監視種類ごとに整理
 PostgreSQLユーザが分かり易い用語で表記

COPYRIGHT(c) SRA OSS, Inc. Japan All Rights Reserved.

17pg_monz v2.0 提供テンプレート(予定) Template App PostgreSQL Template App PostgreSQL SR
 Template App PostgreSQL SR Cluster Template App pgpool-II Template App pgpool-II watchdog

COPYRIGHT(c) SRA OSS, Inc. Japan All Rights Reserved.

18

使い分け
 Template App PostgreSQL Streaming Replication を使用していない
PostgreSQL向けのテンプレート
PostgreSQL １台運用

Streaming Replicationを使用していない
PostgreSQL 複数台運用

COPYRIGHT(c) SRA OSS, Inc. Japan All Rights Reserved.

19

 Template App PostgreSQL SR
 Streaming Replicationを利用している
PostgreSQL向けテンプレート
 Template App PostgreSQLも自動的にリンクされる
Primaryサーバからレプリケーションしている場合

カスケード接続

StandbyPrimary

PrimaryStandbyStandby
COPYRIGHT(c) SRA OSS, Inc. Japan All Rights Reserved.

20Standby Template App PostgreSQL SR Cluster 物理サーバに当てるテンプレートではなく、論理的なクラスタを１台のサーバをして捉えてリンクさせるテンプレート
 Zabbixでは適当なノードを作成する(しかない) 同じグループにPostgreSQLサーバを配置
 グループ内で整合性が保たれているかどうか評価
ホスト名:PostgreSQL Cluster

StandbyPrimary
グループ内にPrimary
サーバが複数存在すれば通知

PostgreSQLグループ

COPYRIGHT(c) SRA OSS, Inc. Japan All Rights Reserved.

Standby21 Template App pgpool-II 全てのモード向けテンプレート
 SR,native,コネクションプール、ロードバランス
 モードに依存しない作りとなっている
 オンメモリクエリキャッシュの監視はデフォルト無効
pgpool-II

COPYRIGHT(c) SRA OSS, Inc. Japan All Rights Reserved.

22 Template App pgpool-II watchdog
 適当なホストに当てるテンプレート
 同じグループにpgpool-IIサーバを配置
 グループ内で整合性を確認

ホスト名:PostgreSQL Cluster
仮想IP

pgpoolグループ
watchdog

グループ内に仮想IPが複数存在すれば通知
COPYRIGHT(c) SRA OSS, Inc. Japan All Rights Reserved.

23

テンプレートの補足事項
 デフォルトでは細かい統計情報は取得しません 一般的な監視項目（デフォルト有効)
死活監視、コネクション状況、データベースサイズ情報等

 高度な情報（デフォルト無効)
DB単位稼働状況、テーブル単位稼働状況

COPYRIGHT(c) SRA OSS, Inc. Japan All Rights Reserved.

24pg_monz v2.0で見送った機能
 ログ監視の強化• Zabbixだけの機能では難しく、他のツール(fluendなど)と組み合わせる方が良いという結論• 他のツールを入れると、導入の敷居が高くなってしまう
将来的には、構成管理ツールを使って簡単に導入できる仕組みを作って提供したいと考えております

COPYRIGHT(c) SRA OSS, Inc. Japan All Rights Reserved.

25

pg_monz v2.0
 リリース予定
2015年3月末
 対象バージョン
 Zabbix 2.0以降
 PostgreSQL 9.2以降
 pgpool-II 3.4以降

 現在のステータス
 ベータ
 テスト中 Zabbixバージョン x PostgreSQLバージョン
COPYRIGHT(c) SRA OSS, Inc. Japan All Rights Reserved.

26

pg_monz v 2.0 ベータ版
 URL
https://github.com/pg-monz/pg_monz/tree/2_0_DEV

COPYRIGHT(c) SRA OSS, Inc. Japan All Rights Reserved.

27

おまけ テスト環境 構築用 Ansible playbook
 URL
https://github.com/pg-monz/ansible-pgool-pgsql-cluster

COPYRIGHT(c) SRA OSS, Inc. Japan All Rights Reserved.

28

本日のお話はpg_monz v2.0ベータ版での機能紹介です
本リリースまでに機能変更が行われる可能性がございます

ご清聴ありがとうございました

COPYRIGHT(c) SRA OSS, Inc. Japan All Rights Reserved.

29