組織は、エンタープライズ監視システムの一部として、高可用性を実現し、その結果として停止コストを削減するための最初の防衛線として、アラートと通知に依存しています。
アラートと通知は同じ意味で使用されることがあります。たとえば、「高負荷のシステムアラートを受信しました」と言うことができます。「アラート」を「通知」に置き換えても、メッセージの意味は変わりません。ただし、管理システムの世界では、違いに注意することが重要です。アラートはシステムのトラブルの結果として生成されるイベントであり、通知はトラブルを含むシステムのステータスに関する情報を配信するために使用されます。例として、Severeninesのブログ「ClusterControlアラート統合の紹介」では、ClusterControlの統合機能の1つである、電子メール、チャットサービス、およびインシデント管理システムを介してアラートを配信できる通知システムについて説明しています。 PostgreSQL Wiki —アラートとステータス通知も参照してください。
PostgreSQLデータベースアクティビティを正確に監視するために、管理システムはデータベースアクティビティメトリック、カスタム機能または監視アドバイザ、および監視ログファイルに依存しています。
この記事では、PostgreSQL Wiki、監視、およびPostgreSQL GUIセクションにリストされているツールを確認し、アクティブに保守されていないツール、または製品内または無料の試用アカウントでアラートと通知を提供しないツールをスキップします。徹底的なレビューではありませんが、各ツールは、アラートと通知の機能を理解できるところまでインストールおよび構成されていました。
Nagios
Nagiosは、幅広いプラグインを提供する、人気のあるオンプレミスの汎用監視システムです。 Nagios Coreはオープンソースですが、PostgreSQLを監視するための推奨ソリューションはNagiosXIです。
通知設定はユーザーごとであり、それらを変更するには、管理者はユーザーとして「ログイン」する必要があります—Nagiosは仮面舞踏会という用語を使用します 。アカウント設定ページが表示されると、ユーザーは通知方法を有効にするか無効にするかを選択できます。
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214444136.png)
通知の種類を設定するには、「通知方法」ページにアクセスしてください。
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214444259.png)
詳細については、NagiosXIユーザーガイドを参照してください。
アラートを構成するには、管理者としてログインし、データベース構成ウィザードを選択します。
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214444255.png)
構成が完了すると、デフォルトのビュー、ダッシュボードのいずれかを選択してアラートを表示したり、カスタムビューを構成したりできます。箱から出して、NagiosXIは次のPostgreSQLモニターを提供します:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214444382.png)
Nagios XIは、すぐにPostgreSQL Statistics Collectorに基づくメトリックを提供しないことに注意してください。代わりに、各メトリックは「PostgresQuery」構成ウィザードを使用して定義する必要があります。
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214444341.jpg)
Datadog
Datadogは、さまざまなサービスとの非常に多くの統合を特徴とする汎用SaaS監視ツールです。監視を開始するには、PostgreSQL統合を選択してから、電子メール、チャット(Slackなど)などの通知統合、またはPagerDutyなどのインシデント対応システムを選択します。
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214444449.png)
以前に構成された統合チャネルを介して通知を受信するには、PostgreSQLが「統合」モニタータイプを監視する場合、少なくとも1つのDatadogモニターを作成する必要があります。
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214444410.png)
モニターを構成する最初のステップは、アラートタイプを選択することです:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214444582.png)
次に、1つ以上のメトリックを構成します。
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214444517.png)
アラートをトリガーするための条件を構成します:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214444654.png)
通知は、テンプレート変数を使用してカスタマイズできます:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214444724.jpg)
最後に、通知を受け取る受信者のリストを提供します:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214444796.png)
Datadogが監視できるイベントは、PostgreSQL統合の「メトリクス」セクションにリストされており、PostgreSQLStatisticsCollectorの事前定義されたビューに基づいています。
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214444836.png)
デフォルトの統合では提供されないイベントを監視するために、Datadogは、Datadogプランに限定されたカスタムメトリックを作成するオプションを顧客に提供します。
オクメーター
OkmeterもSaaS汎用監視ファミリーの一部であり、他のSaaSツールと同様に、監視対象ホストにエージェントが必要です。エージェントがインストールされると、PostgreSQL接続チェックを含む一連のデフォルトイベントトリガーが有効になります:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214444802.png)
より多くのPostgreSQLメトリックを取得するには、PostgreSQL「サーバー」を追加する必要があります:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214444957.png)
NagiosやDatadogと同様に、PostgreSQL統計を監視するには、Okmeterドキュメント—カスタムメトリックの送信で説明されているようにカスタムメトリックを構成する必要があります。または、上記の「PostgreSQLサーバー」メトリックを編集して、「okmeter.pg_stats」関数のビューに含めます。
Okmeterクエリ統計のドキュメントページでは、SQLステートメントの実行統計の追跡を有効にする方法について説明しています。 「pg_stat_statements」ビューの使用にはいくつかの制限があることに注意してください。モジュールで記録できる個別のステートメントの最大数—詳細については、pg_stat_statementsのPostgreSQLドキュメントを参照してください。
通知の連絡先ページでは、ユーザーごとに通知を構成します。
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214445068.jpg)
通知メッセージは、テンプレートを使用してさらにカスタマイズできます:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214445117.png)
サーコナス
別のSaaS一般監視製品であるCirconusは、PostgreSQLの「チェック」機能を備えており、個別に有効にすることも、ワンステップインストールの一部として追加することもできます。
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214445175.jpg)
Circonus PostgreSQLのドキュメントによると、チェックはリモートの場所から直接SQLステートメントを介して実行されます。 Circonusブローカーからの接続を受け入れるようにPostgreSQLホストを構成した後、ウィザードは使用可能なメトリックのリストを表示します。
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214445287.png)
アラートを構成するために、各メトリックは一連のルールと通知される連絡先のリストに関連付けられています。
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214445297.png)
アラートは重大度レベルに基づいて分類されます:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214445349.png)
通知チャネルには、SMS、OpsGenie、Slack、VictorOps、およびPagerDuty(電子メールなし)が含まれます。以下のスクリーンショットは、Slack統合を示しています:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214445408.png)
通知を構成するには、チェックの各メトリックにルールと連絡先を割り当てる必要があります。指標を編集する前に連絡先を作成する必要があることに注意してください:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214445434.png)
New Relic
New Relicは、もう1つのSaaS一般監視システムです。 PostgreSQLに関しては、(この記事の執筆時点で)3つの利用可能なプラグインがあります。最新のものはBlueMedoraプラグインです:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214445595.png)
プラグインが機能すると、プラグインページに表示され、アラートを構成する準備が整います。
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214445536.png)
New Relicは、アラートポリシーの概念を使用して、アラートをインシデントにグループ化します。ポリシーを構成する前に、通知チャネルを設定する必要があります。箱から出してすぐに、New Relicはすべての一般的なインシデント対応システムおよび電子メールと統合されます:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214445655.jpg)
統合は、通知アプリケーションで最初に有効にする必要があることに注意してください。たとえば、チャネルタイプのリストからSlackを選択します。
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214445770.png)
次に、「アラートポリシー」を作成します:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214445722.png)
アラートポリシーには「アラート条件」が必要です。次のスクリーンショットのセットは、まさにそれを達成するための手順を示しています。
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214445884.png)
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214445882.png)
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214445936.png)
最後に、デフォルトを変更するために[通知チャネル]タブを選択します。
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214445942.png)
必要に応じて、アラート条件をNew Relic Insightsに追加します(追加のサブスクリプションが必要です):
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214450043.png)
Postgres Enterprise Manager
PEMまたはPostgresEnterpriseManagerは、PostgreSQLを管理、調整、および監視するためのツールです。
事前定義されたメトリックの非常に豊富なセットが付属しています:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214450062.jpg)
デフォルトのアラートを変更したり、カスタムアラートを作成したりするには、アラートテンプレートを使用します。
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214450195.jpg)
PEMは通知を電子メールとSNMPに依存しているため、Nagiosなどの監視システムと簡単に統合できますが、一般的なインシデント管理システム(PagerDuty、VictorOps、OpsGenie)やチャットサービス(Slack)との統合はありません。他の製品。
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214450287.jpg)
pgwatch2
pgwatch2は、別のPostgreSQL中心の監視ツールであるセルフホストソリューションです。
アラートを定義するには、最初にカスタムダッシュボードを作成し、指標を定義する必要があります。
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214450297.jpg)
次に、アラートを構成します:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214450320.png)
設定が完了すると、アラートは[アラートリスト]ページに表示されます:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214450364.jpg)
pgwatch2は、一般的なすべての通知システムと統合されています。 Slackチャネルを追加する例を次に示します。
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214450484.jpg)
システムで構成されている通知チャネルを表示するには、「通知チャネル」ページを開きます。
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214450490.jpg)
pgwatch2の機能セクションに記載されているように、追加のメトリックを追加できます。
ClusterControl
ClusterControlは、PostgreSQL、MySQL、MariaDB、およびMongoDBをサポートするオンプレミスのデータベース指向の管理システムです。
最初のステップは、通知統合を追加することです。利用可能な統合の詳細については、ClusterControlアラート統合の紹介をご覧ください:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214450579.png)
このデモの目的で、Slackを構成しました:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214450587.png)
ClusterControlには、電子メールで通知するオプションもあります:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214450633.png)
通知が配置されたら、特定の基準に基づいてアラートをトリガーするためのカスタムアドバイザを作成します。
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214450737.png)
結論
この記事は、各ツールの機能を深く掘り下げることを目的としたものではなく、特にPostgreSQLのアラートと通知に関連する重要な機能と思われるものの概要を説明しようとしました。
学んだ教訓の1つは、選択プロセスではいくつかの要素を考慮に入れる必要があるということです。
- オンプレミスまたはSaaS
- エージェントベースまたはリモートチェック
- インシデント管理システムおよびチャットサービスとの統合
- 監視対象のメトリック、すぐに使用できる、プラグインの可用性
- カスタムメトリックを追加する機能
- アラート管理機能(グループ化など)
- ユーザーインターフェースの複雑さと粒度
- 追加機能(管理、チューニング、APIなど)
また、1つのソリューションですべてのビジネス要件や技術要件を満たしていない場合でも、サービスを組み合わせて使用することは常に可能です。