Zabbix で PostgreSQL を監視! pg_monz のご紹介 Zabbix Conference Japan 2015 2015 年 11 月 20 日 SRA OSS, Inc. 日本支社マーケティング部 http://www.sraoss.co.jp/
会社概要 社名 : SRA OSS, Inc. 日本支社設立 : 2005 年 7 月支社長 : 石井達夫資本金 :100 万米国ドル事業内容 Linux, PostgreSQLを中心としたオープンソースソフトウェアのサポート オープンソースソフトウェアを用いたシステム開発のコンサルティング PowerGres の開発 販売 その他オープンソースソフトウェア関連プロダクト販売加盟団体 オープンソースビジネス推進協議会 日本データベース学会 日本 PostgreSQLユーザ会 PostgreSQL エンタープライズコンソーシアム OpenAM コンソーシアム COPYRIGHT(c) SRA OSS, Inc. Japan All Rights Reserved. 2
SRA OSS の OSS 関連サポートサービス PostgreSQL/PowerGres サポート & 保守サービス ヘルプデスク 障害対応 OSS プロフェッショナルサポートサービス 33 種類以上の幅広い OSS をまとめてワンストップでサポート インシデント制 Zabbix 関連サービス Zabbix サポートサービス ( ヘルプデスク 障害対応 ) 導入支援コンサルティング / 構築支援サポート Hinemos 関連サービス Hinemos サポートサービス ( ヘルプデスク 障害対応 ) 導入支援コンサルティング / 構築支援サポート Fluentd エンタープライズサポートサービス (2015/10/14~) TRESURE DATA 社様との協業 OSS サポートサービス サーバ ソフトウェア単位の個別サポート COPYRIGHT(c) SRA OSS, Inc. Japan All Rights Reserved. 3
pg_monz( ぴーじもんず ) PostgreSQL monitoring template for Zabbix Zabbix で PostgreSQL の監視を行うためのテンプレート http://pg-monz.github.io/pg_monz/ 2013/11/05 バージョン 1.0 リリース 2015/03/31 バージョン 2.0 リリース 開発 TIS 株式会社様 SRA OSS,Inc. 日本支社共同 ライセンス Apache License Version 2.0 COPYRIGHT(c) SRA OSS, Inc. Japan All Rights Reserved. 4
pg_monz v1.0 機能 監視機能 PostgreSQL サーバーの死活監視 PostgreSQL のログ監視 データベースサイズの監視 トランザクション処理状況の監視 滞留クエリ処理の監視 など Zabbix のディスカバリ機能を利用し データベースやテーブルを自動検出し 自動で監視を開始する COPYRIGHT(c) SRA OSS, Inc. Japan All Rights Reserved. 5
pg_monz v1.0 反省点 PostgreSQL 単体の監視 クラスタリング構成に未対応だった 監視項目 1 個に対して 1 個のクエリ発行 PostgreSQL サーバで SQL 発行が多発してしまった 同時刻の関連がある値が見れなかった 取得した値を列挙しただけ 関連があるデータをグルーピングして表示していなかった COPYRIGHT(c) SRA OSS, Inc. Japan All Rights Reserved. 6
pg_monz v 2.0 では PostgreSQL クラスタリング構成対応 1 回のクエリで複数個の監視データを取得 表示の改善 COPYRIGHT(c) SRA OSS, Inc. Japan All Rights Reserved. 7
PostgreSQL クラスタリング構成 pgpool-ii 機能 負荷分散 フェイルオーバ クエリキャッシュ PostgreSQL Streaming Replication 機能 同期 / 非同期レプリケーション COPYRIGHT(c) SRA OSS, Inc. Japan All Rights Reserved. 8
Streaming Replication 監視機能 ü Primary-Standby 状態監視 1 号機に障害が発生 2 号機を Primary に昇格させた場合のイベント COPYRIGHT(c) SRA OSS, Inc. Japan All Rights Reserved. 9
ü 同期状況監視 LLD でスタンバイ固有情報を自動取得 COPYRIGHT(c) SRA OSS, Inc. Japan All Rights Reserved. 10
ü Write query block 監視 Ø 同期レプリケーションで Standby が 1 台もいない場合に Primary サーバで書き込みクエリが止まってしまう Ø 書き込みクエリではなく参照クエリで監視 ü split-brain 監視 Ø Primary サーバが複数立ち上がっていないことを監視 ü コンフリクト監視 ü Streaming Replication 固有のプロセス監視 COPYRIGHT(c) SRA OSS, Inc. Japan All Rights Reserved. 11
pgpool-ii 監視機能 ü pgpool-ii 死活監視 ü クライアント利用状況 Ø 利用可能接続数 使用中接続数 ü コネクションプール利用状況 ü クエリキャッシュ状況監視 COPYRIGHT(c) SRA OSS, Inc. Japan All Rights Reserved. 12
ü バックエンド監視 Ø pgpool-ii が接続している PostgreSQL の状態 Ø ロール 負荷分散ウエイト ステータス pgpool-ii が PostgreSQL を切り離したときのイベント COPYRIGHT(c) SRA OSS, Inc. Japan All Rights Reserved. 13
ü pgpool-ii watchdog 機能の監視 ü pgpool-ii の切り替え ü delegate_ip( 仮想 IP) の監視 ü split-brain 監視 仮想 IP 仮想 IP watchdog pgpool-ii COPYRIGHT(c) SRA OSS, Inc. Japan All Rights Reserved. 14
その他細かい改善 ü 不要領域の状況監視 Ø 不要領域の推測値をデータベースサイズと一緒にグラフ化 COPYRIGHT(c) SRA OSS, Inc. Japan All Rights Reserved. 15
ü 取得不可 Ø 原因が分かるように COPYRIGHT(c) SRA OSS, Inc. Japan All Rights Reserved. 16
性能改善ディスカッション Zabbix のモジュールを作成してはどうか? PostgreSQL のバックグランドプロセスを作成してはどうか? 簡単に使えるようにしたい COPYRIGHT(c) SRA OSS, Inc. Japan All Rights Reserved. 17
性能改善 ü 1 度のクエリで 複数の監視データを取得 Ø zabbix_sender を利用 Zabbix サーバ get 命令 PostgreSQL サーバ SQL 発行 zabbix_sender まとめて返却 COPYRIGHT(c) SRA OSS, Inc. Japan All Rights Reserved. 18
表示の改善 ü アプリケーション名を監視種類ごとに整理 Ø PostgreSQL ユーザが分かり易い用語で表記 COPYRIGHT(c) SRA OSS, Inc. Japan All Rights Reserved. 19
pg_monz 提供テンプレート 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. 20
使い分け Template App PostgreSQL Streaming Replication を使用していない PostgreSQL 向けのテンプレート PostgreSQL 1 台運用 Streaming Replication を使用していない PostgreSQL 複数台運用 COPYRIGHT(c) SRA OSS, Inc. Japan All Rights Reserved. 21
Template App PostgreSQL SR Streaming Replication を利用している PostgreSQL 向けテンプレート Template App PostgreSQL も自動的にリンクされる Primary サーバからレプリケーションしている場合 カスケード接続 Standby Primary Primary Standby Standby Standby COPYRIGHT(c) SRA OSS, Inc. Japan All Rights Reserved. 22
Template App PostgreSQL SR Cluster 物理サーバに当てるテンプレートではなく 論理的なクラスタを 1 台のサーバをして捉えてリンクさせるテンプレート Zabbix では適当なノードを作成する ( しかない ) 同じグループに PostgreSQL サーバを配置 グループ内で整合性が保たれているかどうか評価 ホスト名 :PostgreSQL Cluster Standby グループ内に Primary サーバが複数存在すれば通知 Primary PostgreSQL グループ Standby COPYRIGHT(c) SRA OSS, Inc. Japan All Rights Reserved. 23
Template App pgpool-ii 全てのモード向けテンプレート SR,native, コネクションプール ロードバランス モードに依存しない作りとなっている オンメモリクエリキャッシュの監視はデフォルト無効 pgpool-ii COPYRIGHT(c) SRA OSS, Inc. Japan All Rights Reserved. 24
Template App pgpool-ii watchdog 適当なホストに当てるテンプレート 同じグループに pgpool-ii サーバを配置 グループ内で整合性を確認 ホスト名 :PostgreSQL Cluster 仮想 IP pgpool グループ watchdog グループ内に仮想 IP が複数存在すれば通知 COPYRIGHT(c) SRA OSS, Inc. Japan All Rights Reserved. 25
pg_monz の想定環境 対象バージョン Zabbix 2.0 以降 PostgreSQL 9.2 以降 pgpool-ii 3.4 以降 URL https://github.com/pg-monz/pg_monz COPYRIGHT(c) SRA OSS, Inc. Japan All Rights Reserved. 26
ご清聴ありがとうございました COPYRIGHT(c) SRA OSS, Inc. Japan All Rights Reserved. 27