AutoOps の Notification を使った Elasticsearch の異常検知および通知

BLOG

はじめに

[前回]は、AutoOps を使ってオンプレミスの Elasticsearch のインデックス情報やメトリクスを可視化する方法を解説しました。

今回は一歩進んで、AutoOps の通知(Notification)機能を活用し、異常検知から通知までを自動化する設定例を紹介します。管理画面を常時監視することなく、トラブルの予兆に素早く気づくための設定をマスターしましょう。

1. AutoOps の通知機能とは?

AutoOps の通知機能を利用すると、新しいイベントの発生時や問題の解決(クローズ)時に、外部ツールへリアルタイムでアラートを飛ばすことができます。

これにより、管理画面に張り付く「監視」から、通知を受けて動く「アクション」主体の運用へとシフトでき、MTTR(平均復旧時間)の短縮にも貢献します。

2. 通知の設定ステップ

設定は大きく分けて

  • 「どこに送るか(Connector)」
  • 「何を・いつ送るか(Notification Filter)」

の 2 つのステップで行います。

ステップ 1:コネクタ(Connector)の作成

まず、通知をどこに送るかを設定します。AutoOps では以下の組み込みコネクタが利用可能です。

  • Email: 指定したアドレスへのメール通知。
  • Webhook: カスタム HTTP エンドポイントへの通知。
  • Slack: チャンネルへの投稿。
  • PagerDuty / Opsgenie: 障害管理ツールとの連携。

など。

※詳細は、公式ドキュメント https://www.elastic.co/docs/deploy-manage/monitor/autoops/ec-autoops-notifications-settings#ec-built-in-connectors を参照してください。

今回は、基本となる Email での設定例を紹介します。

1.1 コネクタ作成画面への移動

Elastic Cloud の AutoOps のメニューから Settings > Notifications Settings をクリックします。

1.2 コネクタの追加

Connector Settings タブをクリックし [ Add ] をクリックします。

1.3 送信先情報の入力

以下の項目を設定し、[ Save ] で保存します。

  • Connector Type を Email にします。
  • Connector 名を入力します。
  • 送信先の Email アドレスを入力します。
  • イベントがクローズした際にも Email を送信するよう設定しておきます。

ステップ 2:通知フィルター(Notification Filters)の設定

すべてのイベントを通知すると「アラート疲れ(Alert Fatigue)」を招きます。フィルター機能を使い、「本番環境のクリティカルな問題のみ」といった絞り込みを行うことが可能です。

※今回は、サンプルなので、すべてのイベントを通知します。

2.1 通知フィルターの設定

Notifications Settings の Filter Settings タブをクリックし [ Add ] をクリックします。

2.2 通知条件とコネクタの紐づけ

通知したいイベントと、先ほど作成したコネクタを選択し、[ Save ] をクリックします。

  • Name : 通知名を入力します。
  • Clusters: 今回の監視対象のクラスタを選択します。
  • Connectors : 先ほど設定した Email 送信用のコネクタを選択します。
  • Delay : No Delay としておきます。
  • Events : 通知対象とするイベントを選択します。
    • 画面左側にあるイベントが「通知対象」です。今回は、動作確認のため、すべてのイベントを左側に配置します。

3. 動作確認 : 異常検知から復旧検知まで

実際に異常を発生させて、通知の流れを確認してみます。

3.1 異常の発生(データノードの停止)

前回の Docker コンテナ環境で、わざと Elasticsearch の データノード es02 のコンテナを停止させてみます。

しばらく待つと、AutoOps が異常(The cluster status is yellow)を検知し、以下のような Email が送信されてきます(日時は UTC 表記)。

3.2 復旧の確認

再度、es02 のコンテナを開始します。しばらく待つと、問題が解消されたことを示す「No longer detected」通知が届きます。

このように「異常発生」と「障害からの復旧」の両方を把握できるのが AutoOps 通知の強みです。

4. レポート機能

Reports > Notifications 画面では、過去に送信された通知履歴を一覧で確認できます。「特定の時間帯にアラートが頻発していないか」「通知が多すぎていないか」といった運用状況の振り返りや、キャパシティプランニングの材料として役立ちます。

※参考URL https://www.elastic.co/docs/deploy-manage/monitor/autoops/ec-autoops-notifications-settings#ec-notification-report

5. さらに踏み込んだカスタマイズ : イベント設定

AutoOps では、通知のトリガーとなるイベントの「重大性」や「閾値」が詳細に定義されています。

  • 重大性:大 (Critical)
    • No master node was discovered(master node不在)など
  • 重大性:中 (Major)
    • The memory usage is too high(メモリ高負荷)
    • Long running index task(インデックス処理の遅延)など
  • 重大性:小 (Warning)
    • Some data nodes do not contain any shards(シャード未割り当て)など

これらの詳細設定は、Settings > Events Settings 画面で確認・カスタマイズが可能です。例えば「Long running index task」の検知時間を変更することで、自社のワークロードに合わせた最適なアラート運用を構築できます。

まとめ

Elastic Cloud AutoOps の通知設定を適切に行うことで、リアクティブな(起きてから対処する)運用から、プロアクティブな(予兆を掴んで対処する)運用へと進化させることができます。

「通知が多すぎて無視してしまう」状態にならないよう、フィルター機能を活用して本当に必要なアラートを厳選することから始めてみてください。あなたのクラスタの安定稼働のために、ぜひこの機会に通知設定を見直してみましょう!