Kibana Alertについて
ご存知のようにElastic StackはObservabilityやSecurityというユースケースで広く利用されています。これらのユースケースでは、システムの異常を検知した際にアラートを発報する必要があることがほとんどです。
Elasticsearchでは古くはWatcherというアラート機能が提供されていました。Watcherは極めて柔軟性が高く、また各所でPainlessによるスクリプティングをサポートしていて、事実上のワークフローエンジンのようにも利用できました。しかしその反面、設定が複雑であったり、Painlessスクリプトの作成が難しいなどの課題もありました。
現在のKibana AlertはKibana上で動作するモダンなアラート機能であり、よりユーザーフレンドリーなUIでアラートの設定が可能となっています。
Elastic Stackの通知機能関連のドキュメントは以下にまとまっています。
ただアラートに関連する機能は非常に多岐にわたるため、全体像を把握するのが難しいかもしれません。そこでここでは、連続した一連の記事でKibana Alertの基本的な概念や構成要素について、少し掘り下げて説明していきます。
Kibana Alertの基本概念
Kibana Alertを理解する上で、いくつかの基本的な概念を押さえておく必要があります。
- Rule: アラートをトリガーする条件を定義するルール。
- Alert: ルールによって生成される実際のアラートのインスタンス。特定の条件が満たされたときに発生します。
- Action: アラートが発生したときに実行されるアクション。特に通知によく利用され、例えばメールを送信したり、Webhookを呼び出したりすることができます。
- Connector: 外部システム(Integration)との接続を定義する設定。例えば、メールアクションのためのSMTPサーバーの設定などが含まれます。
- Integration: 外部システムとの統合を表す概念。例えばSlackやPagerDutyなど。
まず、一定間隔でルールが評価され、条件が満たされたときにアラートが生成されます。アラートが発生すると、関連付けられたアクションが実行されます。アクションはコネクタを通じて外部の統合と連携することができます。
以下のドキュメントも参照してください。
以下、それぞれの要素について詳しく説明した記事へのリンクを記載します。
Rule
アラートをトリガーする条件・スケジュール・アクションを定義したオブジェクトです。Rule Typeのカテゴリ、保存形式、スケジューラーの仕組みについては以下の記事で解説します。
Alert
Ruleの条件が満たされたときに生成されるインスタンスです。
(今後記事を追加予定)
Action
Alertが発生したときに実行される処理です。メール送信やWebhook呼び出しなどの通知に利用されます。
(今後記事を追加予定)
Connector / Integration
外部システムとの接続設定です。ActionはConnectorを経由して外部のIntegration(Slack、PagerDutyなど)と連携します。
(今後記事を追加予定)