AlertHub で受信したメッセージの文中から取り出した値をアクションで利用できるようになりました。

先日のアップデートによって、メッセージの内容から文字列を取り出してルールで利用できる機能が追加されました。 今回のアップデートでは、同様にメッセージから取り出した文字列をアクションで利用できる機能追加を行いました。 この機能によってメールで受信したメッセージの一部をアクション内容として送信することなどが可能となります。

設定例

以下の様な文面の異常通知メールを受信したことでスコープの深刻度が変化し、アクションが実行された場合に、異常が発生した hostname や異常が検知された trigger をメール送信アクションの文面に指定する設定例を紹介します。

異常通知メールの例

異常を検知しました。
------------
hostname: someone.example.com
address: 192.168.0.1
trigger: ping
status: error
------------

トリガーのパラメーター処理フロー

まず、アクションで利用したい値をメッセージから取り出す設定を行います。 これはトリガーのパラメーター処理フローで行います。

f:id:k_ito-fixpoint:20210701140511p:plain:w600

アクション

パラメーター処理フローで保存した値を、メール送信アクションの本文で変数として指定します。 f:id:ueno-fixpoint:20210629220346p:plain:w600

このアクションによって以下の様なメールが送信されることになります。

以下の異常を検知しました。

hostname: someone.example.com
trigger: ping

仕様に関する補足事項

取り出される値の指定について

正規表現においては () によるキャプチャグループが利用できます。 キャプチャグループが含まれる正規表現を記述した場合には、キャプチャグループ内のパターンにマッチした値が取得されます。 また、キャプチャグループを含めない場合には、記述した正規表現全体に最初にマッチした値が取得されます。

取り出した値の型について

正規表現で取り出した値は全て文字列として扱われます。

取り出した値の保存先の名称について

保存先には任意の名称を付けることが可能ですが、message.content.text などは既定のプロパティとして利用されているため使用できません。 message から始まる名称を避けて指定してください。

正規表現の書式について

AlertHub で利用可能な正規表現の書式の詳細仕様は以下のドキュメントに記載された仕様に準拠しています。 https://github.com/google/re2/wiki/Syntax

AlertHub で受信したメッセージの文中から取り出した値をルールで利用できるようになりました。

これまで AlertHub では、メールで受信したメッセージについて、本文の中に特定の文字列が含まれていることや、 正規表現にマッチするかの判定は行えていました。
ただし、ルールによって発生させるイベントでのスコープ指定の条件や、深刻度名の指定においてはメールの文面を活用するのが困難でした。

そこで、正規表現によって、メッセージの内容から文字列を取り出してルールで利用できるよう機能追加を行いました。

設定例

以下の様な文面の異常通知メールを受信した場合に、 hostname を元に深刻度を増加させるスコープを指定し、 trigger を元に増加させる深刻度名を指定する設定例を紹介します。

異常通知メールの例

異常を検知しました。
------------
hostname: someone.example.com
address: 192.168.0.1
trigger: ping
status: error
------------

処理フロー

まず、処理フローでメール本文 (message.content.text) から hostnametriggerstatus を取り出し、 status については「error」と比較して異常通知であることを判断します。 f:id:ueno-fixpoint:20210609181027p:plain:w800

イベント

そして、イベント (対象スコープを条件指定) では、スコープ属性名「hostname」の属性値がメッセージから取り出した hostname と一致する条件を指定し、 深刻度を増加させる対象の深刻度名をメッセージから取り出した trigger で指定しています。

上記の異常通知メールを受信した場合は、属性名「hostname」の属性値が「someone.example.com」であるスコープにおいて、 深刻度名「ping」の深刻度が「1」増加することになります。 f:id:ueno-fixpoint:20210609181532p:plain

仕様に関する補足事項

取り出される値の指定について

正規表現においては () によるキャプチャグループが利用できます。 キャプチャグループが含まれる正規表現を記述した場合には、キャプチャグループ内のパターンにマッチした値が取得されます。 また、キャプチャグループを含めない場合には、記述した正規表現全体に最初にマッチした値が取得されます。

取り出した値の型について

正規表現で取り出した値は全て文字列として扱われます。 処理フローで「フィールドを数値比較する」などを使用した場合、その文字列は数値としての解釈を試みた上で比較されるので数値比較を行うことも可能です。

取り出した値の保存先の名称について

保存先には任意の名称を付けることが可能ですが、message.content.text などは既定のプロパティとして利用されているため使用できません。 message から始まる名称を避けて指定してください。

正規表現の書式について

AlertHub で利用可能な正規表現の書式の詳細仕様は以下のドキュメントに記載された仕様に準拠しています。 https://github.com/google/re2/wiki/Syntax

AlertHub のスコープに複数の深刻度を持たせることが出来るようになりました

これまで深刻度については、一つのスコープに一つの深刻度のみでしたが、一つのスコープに複数の深刻度を持てるようになりました。 これによって、一つの機器をスコープとした場合に、その機器の状態を監視項目ごとに管理することなどが出来ます。

尚、今回の機能改善によってスコープと深刻度の構造を変更していますが、これまでに作成した設定は互換性を保って同様の動作を行います。

スコープ概要画面の変更点

深刻度の一覧が追加され、それぞれの深刻度の状態が分かるようになりました。 画面上部の深刻度表示は、スコープが持つ深刻度の中での最大値が表示されるようになっています。

f:id:ueno-fixpoint:20210511151618p:plain

深刻度リセットについては、これまではスコープに対して操作が行えましたが、 今回の改善に伴って、深刻度名単位にリセットを行うよう変更しています。 スコープが持つ全ての深刻度をリセットする機能は追って提供する予定となっています。

深刻度の追加方法

スコープに深刻度を追加する方法は以下の2通りの方法があります。

  • スコープ概要画面から手動で追加する
  • ルールでの設定を行い、イベント発生時に自動で追加する

ルールでの設定による深刻度の追加

ルールでの設定は、イベント設定箇所において深刻度名を指定することで、 イベントが発生した場合に、指定した深刻度名が存在しなければ新たな深刻度が作成され、 深刻度名が存在する場合は、その深刻度がイベントによって増減する動作になります。

f:id:ueno-fixpoint:20210511152414p:plain f:id:ueno-fixpoint:20210511152433p:plain

深刻度名の指定は、固定値とメッセージ内の値のどちらも使うことができます。

尚、これまでに作成済みのルールについては、 深刻度名「main」の深刻度が増減するイベントが設定されている扱いとなり、 既存のスコープは「main」という名称の深刻度を持っている状態となっています。

トリガーでの判定

トリガーが動作する起因となるのはイベントの発生ですが、 イベントにおける深刻度の増減に関するトリガーの条件については、 深刻度名を指定することと、これまで通り深刻度名を問わずに条件指定することの両方が可能です。

選択肢の文言変更

今回の機能改善に伴って、ルールとトリガーの設定における選択肢の文言を変更しています。 f:id:ueno-fixpoint:20210511152608p:plain

AlertHub でアクション実行に異常があった場合、通知を受け取れるようになりました

AlertHub ではアクション実行時に異常があった場合には、まずリトライが行われます。 30秒間隔で3回リトライされますが、最終の実行においても異常があった場合に通知先を登録したアドレスにメールで通知を行う機能が実装されました。

AlertHub のメニューから「設定」をクリックすることで通知先を設定する画面に遷移することができます。 ここで指定されたメールアドレスには、全てのアクションを対象として異常が発生した場合の通知が行われます。 f:id:ueno-fixpoint:20210330213021p:plain

アクションの失敗時には以下の様なメールが送信されます。

2021-03-29 12:43:56 に実行開始したアクション実行に失敗しました
下記のリンクから、スコープの「アクション」一覧にて、該当アクション実行の詳細を確認してください。
https://example.com/apps/alerthub/scopes/ca4af115-0990-4640-b02f-392fea5c7a71/overview

■ 関連情報
・対象スペース
https://example.com/

・アクション実行開始日時
2021-03-29 12:43:56

・アクション実行失敗日時
2021-03-29 12:54:56

・失敗理由
something wrong

・アクション発生元スコープ
https://example.com/apps/alerthub/scopes/ca4af115-0990-4640-b02f-392fea5c7a71/overview

・失敗したアクション
https://example.com/apps/alerthub/actions/dd07a858-2d55-489e-83ea-c412085704c8

※このメールは自動で送信されています。返信はできませんのでご注意ください。
※このメールにお心当たりのない方は、恐れ入りますが破棄して頂けますようお願いいたします。
------------------------------------------------------
Kompira cloudサポート
お問い合わせ https://kompira.zendesk.com/hc/ja/community/topics
------------------------------------------------------

AlertHub で受信したメッセージの情報を確認できるようになりました

監視ツールなどから AlertHub へ送られたアラートメッセージについて、 AlertHub の画面上で確認ができるようになりました。 直近30日間に受信したメッセージが確認できるようになっています。

メッセージ一覧

メッセージ一覧では、メッセージを受信したスロットやルール実行の有無、イベント発生の有無が確認できるようになっており、 受信日時に加えてそれぞれの状態を条件とした絞り込みが行えます。 f:id:ueno-fixpoint:20210330213700p:plain:w800

メッセージ詳細

メッセージ詳細では、メッセージ内容やヘッダ情報などが確認できます。 また、そのメッセージが処理されたルールの実行履歴と、 ルール処理の結果発生したイベントが確認できるようになっています。 f:id:ueno-fixpoint:20210330213821p:plain:w600

AlertHub で1つのルールで複数のスコープを条件指定できるようになりました

AlertHub では受信したアラートメッセージをルールの設定に基づいて条件判断し、 スコープの深刻度を増減させることで後続のアクションの発生に繋げています。

2/28 に適用したアップデートでは、ルールで設定する深刻度を増減させる対象のスコープの指定について、 これまでは直接指定のみだったものを、条件指定できるような機能追加を行っています。

アップデート内容

  • スコープにおいて、任意の名称と値の組み合わせを「属性」として追加できるようにしました
  • ルールにおいて、「属性」の値を条件としてスコープを指定できるようにしました

スコープの属性設定イメージ

スコープの属性は、対象となる機器や監視観点の固有の情報や、種別や分類などの情報を持たせることができます。 以下は、機器の IP アドレスと機器が配置されている拠点を設定するイメージです。

属性の設定はスコープの「設定」から行います。

f:id:ueno-fixpoint:20210302221102p:plain:w800 f:id:ueno-fixpoint:20210302221213p:plain:w800

ルールのスコープ指定イメージ

これまではルールでは以下の様に、メッセージ内容から機器を判別して対象のスコープを直接指定することしかできませんでした。 この場合、ルールは機器の数と同じ数以上作成しなくてはいけません。 f:id:ueno-fixpoint:20210302222327p:plain:w600

スコープの条件指定では、属性の値とメッセージ内容の一部が一致するスコープを指定することができます。 このような指定ができることで、同種の監視を行っている機器についてはルールを共通化することが可能になります。 f:id:ueno-fixpoint:20210302223117p:plain:w600

また、スコープの条件指定では、属性の値を固定値で指定することも可能です。 下記は、拠点Aのコアスイッチがダウンしたアラートを受信した場合に、拠点Aに属する機器を全て警戒状態にするイメージです。 f:id:ueno-fixpoint:20210302224359p:plain:w600

AlertHub の設定補助ツールを公開しました

AlertHub を利用するための設定を行うにあたって、 大量に設定登録する必要がある場合に利用できる設定補助ツールを公開しました。 それぞれ、READMEなどで利用方法を確認の上ご利用ください。

  • ルール/トリガー の一括登録ツール(Windows 用 exe ファイル)
    ダウンロード

  • スコープ/アクション/静観スケジュール の一括登録スクリプト(PowerShell スクリプト)
    GitHub ページ