スマートスタイル TECH BLOG

データベース&クラウド技術情報

Percona Monitoring and ManagementのIntegrated Alerting機能の紹介

はじめに

Percona Monitoring and Management(以下PMM)ではGrafanaのアラート機能かAlertmanagerを使用することでアラートを通知することができます。さらに現在、Integrated Alertingというアラート機能が開発中となっています。
これまではPMMとしてのアラート機能はなく、アラートを設定するには必要に応じて自身でGrafanaの設定ファイルを編集したり、別途Alertmanagerをセットアップする必要がありました。
Integrated AlertingはPMMに統合されたアラート機能で、アラートの作成や管理、通知設定などをすべてPMMの機能として使用することができるようになりました。また、一連の設定作業を全てGUIから可能となっています。

今回はこのIntegrated Alertingの紹介をします。

なお、Integrated AlertingはTechnical Previewであるため、本番環境では利用しないようにご注意ください。
また、Integrated Alertingは、Grafanaのアラート機能とAlertmanagerに代わるアラート機能として導入されました。Technical PreviewからGeneral Availabilityになるまでは引き続きこれらのアラート機能を使用することができますが、GA後はIntegrated Alertingを使用することが推奨されます。

事前準備

PMM ServerとPMM Clientの設定

PMMは最新リリース2.28.0を使用します。

PMMが監視するMySQLのservice_nameはdb-1とします。

有効化

Integrated Alertingはデフォルトでは無効となっています。そのため、まずはPMM SettingsからIntegrated Alertingを有効化します。
左側のメニューからSettingsを開きます。

Advanced Settingsタブを開き、下部のIntegrated Alertingを有効化し、Apply changesを押します。

アラートの通知方法の設定

Integrated Alertingはemail, Slack, PagerDuty, Webhookによる通知がサポートされています。今回はGmailを介してメール通知を設定する方法について説明します。
まずはGoogleアカウントでアプリ パスワードを生成します。なお、これには2段階認証プロセスを有効にしておく必要があります。

Googleアカウントの左側のメニューからセキュリティを選択し、[Googleへのログイン]のアプリ パスワードを選択します。

[アプリを選択]でメール、[デバイスを選択]でWindowsパソコンとし、生成を選択します。

するとアプリパスワードが表示されるので、これをメモしておきます。

アプリパスワード作成の詳しい手順はこちらのヘルプをご参照ください。

続いてPMM SettingsのCommunication tab から必要設定を行います。
今回の設定は以下の通りです。

  • Server Address: サーバーアドレスを入力する。今回はsmtp.gmail.com:465とします。
  • Hello: SMTP サーバーと SMTP 通信を行うホスト名。今回はpmmとします。
  • From: 送信者のメールアドレス。今回はGoogleアカウントのメールアドレスとします。
  • Auth Type: 認証タイプ。今回はLoginを選択し、以下の認証情報を入力します。
  • Username: Googleアカウントのメールアドレス
  • Password: 上で作成したアプリパスワードを入力します

Test Emailに任意のメールアドレスを入力してTestボタンを押すと、そのアドレスにテストメールを送ることができます。

設定が完了したら、Apply changesを押します。

アラートの作成

Integrated Alertingを有効化するとメニューバーにIntegrated Alertingが追加されます。

Notification Channels

Notification Channelsタブから通知設定を行います。

  • 先ほどEmail通知の設定を行ったため、TypeはEmailとします。
  • Nameは任意の通知チャンネル名を設定できます。
  • Addressesには通知したいアドレスを記載します。

Alert Rule Templates

続いて、Alert Rule Templatesタブからアラートのテンプレートを確認します。PMMには予めアラート用のテンプレートがいくつか用意されています。今回はこのテンプレートを使用してアラートを設定します。なお、右上のaddボタンから、自分で作成したアラートテンプレートを追加することもできます。

MySQL用には以下のテンプレートが準備されています。

  • MySQL down
  • MySQL replication running IO
  • MySQL replication running SQL
  • MySQL restarted
  • MySQL connections in use

また、OS用のテンプレートも用意されています。

  • Node high CPU load
  • Memory available less than a threshold
  • Node high swap filling up

Alert Rules

Alert Rulesタブには作成したアラートの一覧が表示されます。右上のaddボタンからアラートの追加ができます。
以下のようなアラートの編集画面が表示されます。

最初の項目のTemplateから使用するテンプレートを選択します。今回はMySQL connections in useを使用します。テンプレートを選択すると一番下のAdvanced detailsにこのテンプレートの詳細が表示されます。
Template Expressionには以下が記載されています。

簡単にこの式について説明すると、
max_over_time(mysql_global_status_threads_connected[5m])がMySQLステータス変数であるthreads_connectedの5分間の最大値を意味します。
それをMySQLシステム変数であるmax_connectionsで割って100を掛けた値が閾値(threshold)を上回るかを評価しています。
ignoring(job) については、異なるlabelを持つメトリックの計算を行うための記載です。詳しくはOne-to-one vector matchesをご確認ください。

これを念頭に各項目を記載していきます。

  • Nameにはこのアラートの任意の名前を設定できます。今回はDB1 Connectionsとします。
  • Thresholdには閾値を設定します。今回は80%に達したらアラートを通知するようにします。
  • Durationは継続時間を設定します。今回は60秒アラートの状態が継続した場合アラートを通知します。
  • Severityは重大度のレベルです。Critical,High,Warning,Noticeが選択可能です。
  • Filtersはnode_nameやservice_nameのラベルを使用してアラートの対象を設定できます。ここではservice_name=db1とします。

ADDを押すと設定は完了です。

Alerts

Alertsタブにはアラート状態となっているアラートが一覧表示されます。作成したアラートをアラート状態にしてみます。
本来このアラートは、接続数の上限(max_connections)に現在の接続数(threads_connected)が到達しそうな際に通知するためのアラートです。しかし、今回は検証のため、接続数の上限(max_connections)を10に変更しています。つまり、接続数(threads_connected)が8を超えるとアラートとなります。

接続数を9まで増やして、アラート状態とします。アラート状態になると、Alertsタブで表示されます。

また、次のようなアラートメールが送られます。

まとめ

PMMのIntegrated Alerting機能の紹介をしました。これまでのGrafanaのアラート機能かAlertmanagerとは異なり、全ての設定をGUIから行えるため、設定の難易度が下がっている気がします。
また、今回は触れませんでしたが、アラートのテンプレートは自分で追加することも可能なため、柔軟にアラートを設定することができます。
今後もIntegrated AlertingはGAに向けて機能の追加などが行われると思うので、注目していきたいと思います。

Return Top