Monitoring/ja
原文最終更新日:28 June 2016
PostgreSQLビルトインツールとcontribツール
統計情報コレクタ
PostgreSQLは多数のデータを自身で収集しており、pg_stat(io)_システムビューを使って見ることができます。
- オフィシャルマニュアルの統計情報コレクタ
- pg_statビューの説明(訳注:英語サイト)
contrib拡張ツール
以下の拡張ツールはPostgresの関心がある内部へのアクセスもしくは追加情報の収集を提供します。これらの多くはPostgresと共にリリースされ(-contribパッケージをインストールする必要があるかもしれません)、拡張インタフェースを利用してアクティベートできます。
pg_stat_statements
pg_stat_statementsはサーバで実行しているすべてのクエリを追跡し、クエリの"種類"ごとの平均実行時間を他のパラメータと一緒に記録します。
pg_stat_plans
pg_stat_plansはpg_stat_statementsを拡張し、すべてのクエリのクエリ実行計画を記録します。これはパラメータやテーブルサイズを変更するための役に立たないクエリ実行計画のために性能退行を経験した時に非常に役に立ちます。
pgstattuple
pgstattupleはテーブルとインデックスの統計情報を生成でき、それぞれのテーブルとインデックスにおいて生存しているタプルにより消費されている領域を表示し、削除されたタプルもそれぞれのリレーションにてどの程度の未使用領域が利用可能であるかを表示します。
pg_buffercache
pg_buffercacheは、Postgresの共有メモリバッファにおける状況を確認でき、キャッシュ内でリレーションが現在掴んでいるページの数量を表示します。
外部ツールプロジェクト
CLIツール
pg_view
pg_viewは素早く実行中のデータベースとそれらによって使用されているリソースだけでなく実行中のクエリとそれらが遅い可能性がある理由の情報を得るためのPythonベースのツールです。
pg_activity
pg_activityはPythonで記述されたPostgreSQLサーバの状態を監視するhtopライクなアプリケーションです。
pgstats
pgstatsは様々なPostgreSQL情報をサンプリング可能なCで記述されたコマンドラインツールです。
チェックツール
check_postgres
check_postgresはIcinga、MRTGのようなソフトウェアから、もしくはスタンドアローンツールとして実行されるように設計されたコマンドラインツールです。データベースの多くの見地を監視可能で、閾値を超えたときに警告を発することができます。
インタフェースと情報収集ツール
これらのツールはPostgreSQLの監視に関連したデータのインタフェースを提供もしくは集計と他システムのためにそれらを準備することができます。
pgsnmpd
pgsnmpdはスタンドアローンのSNMPサーバとして実行可能で、一般的なRDBMSのMIBであるRFC 1697 MIBの実装がされています。
これはSNMPプロトコルに制限されたネットワーク管理システムで有用です。
pganalyze-collector
pganalyze-collectorはpg_stat_plansクエリの情報と様々な性能に関連したデータベースのパラメータを収集し、他システムで容易に取得するためにJSON構造に変換するツールです。
プラグインを使った一般的な監視ソリューション
Okmeter
Okmeter.ioは、とてもたくさんのPostgreSQLの状態と操作データ - 接続、トランザクション、テーブルのCRUD操作、ロック、bgwriter、インデックスの使用状況と操作、レプリケーション、autovacuumといった50種類を超える測定値を収集する商用SaaSです。クエリタイミング、pg_stat_statementsからクエリによるディスクとCPUの使用状況、システムの測定値 - CPU、メモリ、プロセスごとのファイルディスクリプタとディスク使用状況、ポートごとのソケット接続数とtcp状態もまた収集可能です。
OkmeterはすべてのPGインスタンスを自動的に検知の上で監視を開始し、これらの状態すべてを図を使って可視的なダッシュボードを自動的に作成します。ほかのシステムとアプリケーションの測定値に並んでこれらの測定値のアラートを確認することができます。
OKmeterは一般的な監視サービスですが、OKmeter PostgreSQL監視はPostgreSQL-Consultingの専門家による指導とフィードバックによって開発されています。そして、それはPostgreSQL測定値をとても詳細に考慮しており、Postgres中心の監視ソリューションとしてほぼ可能な限り詳細なものです。
Datadog
Datadogは、接続、トランザクション、行のCRUD操作、ロック、一時ファイル、bgwriter、インデックス使用状況、レプリケーション状態、メモリ、ディスク、CPUのpostgres測定値を収集し、ほかのシステムとアプリケーションの測定値に並んでこれらの測定値のアラートと可視的な情報を表示できる商用SaaSです。
Munin
Perlによって開発されたPostgreSQLプラグインが中心的なMunin配布物に含まれています。以下のプラグインは標準で含まれています:postgres_bgwriter, postgres_locks_, postgres_tuples_, postgres_cache_, postgres_querylength_, postgres_users, postgres_checkpoints, postgres_scans_, postgres_xlog, postgres_connections_, postgres_size_, postgres_connections_db, postgres_transactions_
PyMuninは以下のグラフを実装したPythonで記述された複数グラフのMuninプラグインが含まれています:pg_connections, pg_diskspace, pg_blockreads, pg_xact, pg_tup_read, pg_tup_write, pg_blockreads_detail, pg_xact_commit_detail, pg_xact_rollback_detail, pg_tup_return_detail, pg_tup_fetch_detail, pg_tup_delete_detail, pg_tup_update_detail, pg_tup_insert_detail
一般のLinuxプラットフォームでのセットアップ手順の詳細はhighperfpostgres.com(訳注:リンク切れしているようです。Muniのwikiページにもセットアップ情報があります)にて確認できます。
Zabbix
pg_monzはPostgreSQL用のZabbix監視テンプレートです。
libzbxpgsqlはPostgreSQL用のZabbix監視テンプレートとネイティブエージェントモジュールです。
NewRelic
NewRelicは、EnterpriseDB社によって維持管理されているPostgreSQLプラグインを提供する商用のSaaSアプリケーション監視ソリューションです。
Cacti
CactiのためのPostgresテンプレートの構築が完了しており、詳細がCactiページにて確認できます。
Postgres中心の監視ソリューション
EnterpriseDB Postgres Enterprise Manager
Postgres Enterprise Manager監視、アラート、管理と単一のグラフィカルコンソールからのローカルとリモートの大規模Postgresデプロイが可能。枠外の機能としていかが含まれます:サーバ自動検知、データベースオブジェクトのポイントとクリック管理、SMTP/SNMPによる225以上の事前設定されたデータベースアラート、カスタムアラート、全体的な一目でわかる監視ダッシュボード、性能監視ダッシュボード、カスタムダッシュボード、監査管理、Postgres専門家のベストプラクティス設定提案、ログマネージャ、ログ解析エキスパート、SQLプロファイラ、インデックスアドバイザ。
pganalyze
pganalyzeは、性能監視と自動的なチューニングを提案することにフォーカスしたものを提供する商用SaaSです。
pgwatch
pgwatchは、様々なPostgresデータのインタラクティブなグラフを提供するPHPウェブアプリケーションです。
pg_statsinfo & pg_stats_reporter
pg_statsinfoは、pg_stats_reporterインスタンスにより集計されたPostgresサーバ内部の多くの性能関連情報を収集し、収集データをウェブインタフェースで提供するPostgreSQLの拡張機能です。共にNTTにより維持管理されているFOSSソフトウエアです。
PGObserver
PGObserverは、Zalando氏によって開発されたPythonとJavaベースのPostgres監視ソリューションです。ストアドプロシージャ性能にフォーカスして開発されていましたが、より良く拡張されました。
pgCluu
pgCluuは、Postgresサーバについての情報の収集と包括的な性能状態を表示するためにpsqlとsarを利用したPerlベースの監視ソリューションです。
PoWA
PoWAは、PostgreSQLサーバの監視とチューニングの手助けをするために性能状態の収集とリアルタイムチャートとグラフを提供するPostgreSQLワークロードアナライザです。pg_stat_statements、pg_qualstats、pg_stat_kcache、pg_track_settings、HypoPGといった拡張機能に依存しており、データベースを簡単に最適化する助けとなります。
OPM: Open PostgreSQL Monitoring
Open PostgreSQL Monitoring (OPM)は、PostgreSQLサーバの管理を手助けするために設計されたフリーソフトウェアスイートです。それぞれのインスタンスの活動状態を追従する柔軟なツールです。状態を収集し、ダッシュボードへの表示と何かが悪化した時の警告を送信することができます。プロジェクトの長期的なゴールは、Oracle Grid ControlまたはSQL Server Management Studioの類似機能の提供です。
pgAnalytics
pgAnalyticsはDextra社によって開発された商用SaaSです。pgAnalyticsはPostgreSQLの統計情報、ログファイル、バックアップからスナップショットを収集します。LinuxとWindowsの統計情報は、PostgreSQL環境全体についてのより良い理解の提供のために収集されます。バッチプロセスは、エラーもしくは何かの値の上昇を探す、アラートメールを送るための切っ掛けとして起動されます。デモを試してみてください。