Kompira AlertHub 基本マニュアル 目次
Kompira AlertHub 基本マニュアル
株式会社フィックスポイント の Kompira AlertHub マニュアルです。
最終更新日: 2024/09/25
AlertHub とは
Kompira AlertHub(以下 AlertHub)は、監視アラートの判断業務を簡単に自動化するサービスです。
監視アラートの判断業務は煩雑であり、下記のような課題が発生します。
- 一日の間に大量にアラートを受信するにもかかわらず、実際に確認が必要なのはほんの数件
- メールのフィルターだと限界があるため、他のシステムでも通知が欲しい 等
AlertHub は、Zabbix、Nagios、Mackerel といった監視システムの結果を複合して判断する、アラートのフィルターのような機能をするサービスです。
AlertHub で実現可能な集約例
詳細な設定方法は「サービス活用方法」を参照ください。
用語
AlertHub および本マニュアルで登場する用語について説明します。
用語 | 説明 |
---|---|
アクション | メールや Webhook の送信、Pigeon で架電する動作 |
アラート | サーバ監視システムが異常状態や障害を検知した際に発する通知 |
トリガー | アクションの実行条件判断を行うための設定 |
フィールド | 受信したメッセージ情報を指定する設定項目 |
ルール | メッセージ内容を元にスコープへの振り分けとイベント動作の指定を行う設定 |
ステータス | スコープの状態を、数値に応じて「正常」「警戒」「障害」といった項目で表したもの |
スコープ | メッセージの振り分けや集約を行う単位となる要素 |
イベント | スコープの深刻度が変化する動作 |
ランブック | より詳細かつ複雑な条件判断やアクション実行を行うための機能 |
閾値 | 条件分岐の境目となる数値の区切り |
受信スロット | 監視システムからメールや Webhook で通知を受信するための受け口 |
深刻度 | スコープに複数持つことができるスコープの状態を示す数値 |
静観スケジュール | スコープ単位に設定可能な、アクションを実行しない時間間隔を設定する機能 |
正規表現 | 文字列内で文字の組み合わせを照合するために用いられるパターン |
API | 「Application Programming Interface」の略で、異なるプログラム同士が情報のやりとりを行う仕組み |
JSON | 「JavaScript Object Notation」の略で、JavaScript の中でデータを簡単に表現するための書式 文字列・数値・配列・オブジェクトなどを表現できる |
JSONパース | JSON形式を扱えるように分析し変換する処理のこと |
mustache 記法 | さまざまな言語で使えるテンプレートエンジン mustache に対応した記法 AlertHub では、アクションの通知内容に「{{}}」内のパラメーターを展開可能 記法の詳細は「設定の流れ > アクションの作成 > 値を埋め込む記法」を参照してください |
Pigeon | 電話自動化サービス、正式名称「Kompira Pigeon」(株式会社フィックスポイント(自社)運営) |
Webhook | Webアプリケーションでイベントが実行された際、外部サービスにHTTP で通知する仕組み JSON形式を利用する |
各機能とはたらき
AlertHub の各機能について解説をします。
各機能へは、以下の方法にてアクセスを行うことが可能です。
- トップページ内オレンジ色の「AlertHub」領域内の各リンクをクリック
- 左側メニュー領域にて「AlertHub」をドリルダウンし各リンクをクリック
前者はトップページでしか利用できませんが、後者はどのページからでも利用可能です。
※設定の手順については、「設定の流れ」を参照してください。
スコープ
スコープとは、監視対象の範囲を任意の単位に分け、その状況を深刻度で管理する要素です。
深刻度は監視項目ごとなどの単位で複数持たせることができます。
深刻度の最大値の変化によって「正常」「警戒」「障害」といったステータスを変化させたり、アラートの発生回数を観測できます。
スコープ内の各メニュー
スコープ内の詳細な項目について説明します。
スコープを作成後、表示名をクリックすると、選択したスコープの詳細設定画面に遷移します。
概要(スコープメニュー)
概要は、設定をしたスコープの現況を確認できる機能です。
スコープの深刻度やイベント、アクションの発生状況の確認が行えます。
ルール(スコープメニュー)
ルールは、選択したスコープに対して設定したルールの確認ができる機能です。
ルールを設定する場合は、左端メニュー領域、もしくはトップページの「ルール」より行ってください。
詳細は、「各機能とはたらき >
ルール」を参照してください。
トリガー(スコープメニュー)
トリガーは、スコープの深刻度やステータスの変化などによって、アクションを実行するかを判断する機能です。
アクションの実行にはトリガーの設定が必要となります。
トリガーは、スコープごとに設定します。
設定(スコープメニュー)
設定は、選択したスコープの補足事項(属性1)やアクションを実行させたくない時間の設定(静観スケジュール2)が行える機能です。
スコープの深刻度の変化は、静観スケジュールを設定した時間内においても有効です。
例:毎週月曜から金曜の8:00~18:30の間はアクションの実行を停止したい場合
属性とは、スコープ固有の情報を登録できる機能です。登録した「属性」は、「ルール」においてスコープの条件指定に利用できます。
静観スケジュールとは、アクションを実行しない時間間隔を設定する機能です。スコープ単位での設定が可能です。
受信スロット
受信スロットとは、メール・Webhook で送られてくるアラートの受け口となる要素です。
Webhook の URL やメールを受け取るメールアドレスを複数作成できるため、システム別やサービス別に使い分けることが可能です。
受信スロットサンプル
- メールで発行されたアドレス
- Webhook で発行された URL
ルール
ルールは、受信スロットにて受信したアラートに対して、スコープの深刻度を増減させるかの条件を指定する要素です。
「受信スロット1」「処理フロー2」「イベント3」を設定することにより、ルールを作成します。
「処理フロー」では、メッセージ内の文字などを判断する設定をし、イベントを発生させる条件を設定できます。
受信スロットとは、監視システムからメールや Webhook で通知を受信するための受け口となる要素のことです。
処理フローとは、指定した受信スロットに対しどうなった場合にイベントを発生させるかを振り分ける要素のことです。
イベントとは、スコープの深刻度を変化させる動作のことです。
アクション
アクションとは、メッセージを集約した結果を通知したり、後続の処理に情報を渡す機能です。
「メール送信」「Pigeon を利用した電話発信」「Webhook を利用した外部 API の呼び出し」の 3 つの機能があります。
受信スロットに受信したメッセージの内容について、変数を指定しアクション本文へ埋め込むこともできます。
ランブック
ランブックとは、AlertHub で行う条件判断やアクション実行を柔軟に行うための機能です。
受信スロットでメッセージ受信した後の条件判断や、トリガー判断後のアクション実行で利用できます。
ランブックの使用方法については、「ランブック操作マニュアル」を参照してください。
メッセージ
メッセージでは、受信スロットにて受信をしたメッセージ内容を確認できます。
直近 30 日分のメッセージを確認できます。
事前に設定したルール適用の有無、イベント適用の有無も合わせて確認が可能となります。
設定
設定とは、下記 2 点について設定する機能です。
- アクションとランブックの実行に失敗した場合の通知先の設定
- メール送信アクションにおけるメール送信元の設定
ツール
ツールは、AlertHub の設定要素を CSV ファイルに一括出力できる機能です。
また、CSV ファイルをインポートすることにより一括で追加、更新、削除できます。
詳細な操作方法は、「AlertHub 一括操作マニュアル」を参照してください。
設定の流れ
設定の流れについて説明します。
Kompira AlertHub をご使用頂くにあたり、下記の順序に沿った設定が必要となります。
受信スロットの作成
はじめに、アラートやメールの受け口となる受信スロットを作成します。
「Webhook」では URL が、「メール」はメールアドレスが生成されます。
操作手順
AlertHub メニューより「受信スロット」を選択し、表示された画面右上の「+」マークをクリックします。
表示された画面内「種別」の「▼」を選択し、表示画面よりメール、または Webhook を選択します。
また、受信スロットにはランブックを設定もできます。
詳細は「ランブック操作マニュアル > 設定手順 > ランブック呼び出しの設定」を参照してください。
「表示名」に受信スロットとして使用する表示名を入力し、保存ボタンをクリックします。
受信スロット一覧に作成を行った受信スロットが表示されます。
作成を行った表示名をクリックすると、下記の通り受信スロット用のメールアドレスまたはWebhook 用の URL が表示されます。
スコープの作成
スコープを作成します。
スコープでは、状態を「正常」「警戒」「障害」とする深刻度値の設定も行えます。
操作手順
スコープの追加
AlertHub メニューより「スコープ」を選択し、画面右上の「+」マークをクリックします。
表示された画面上の表示名に「スコープ」として使用する表示名を入力し、保存ボタンをクリックします。
-
警戒・障害判定閾値は 1000 まで指定できます
-
「深刻度自動復旧を有効化」を選択すると最後のイベント発生時から指定した時間が経過した後に深刻度を自動で 0 にします(5 分~ 24 時間まで指定可能)
下記の通り、作成したスコープが表示されます。
スコープの表示名をクリックすると対象スコープの詳細画面に遷移します。
深刻度の追加(任意設定)
深刻度を追加します。
深刻度は、ルールの設定において、どの深刻度を上下させるかを指定する際に使用します。
深刻度を作成しなくても、ルールで指定した深刻度がイベントの発生時に自動で作られるため、任意で作成してください。
「概要」ページの「深刻度一覧」より、「+」をクリックします。
表示されたポップアップに任意の深刻度名を入力し、保存ボタンをクリックします。
下記の通り、「深刻度一覧」に追加されます。
属性の追加(任意設定)
スコープ固有の情報を、下記の「設定」より「属性」として登録が可能です。
登録した「属性」は、後ほど作成する「ルール」においてスコープの条件指定に利用できます。
ルールの作成
アラート内容を判断し、特定のスコープに対し深刻度を変更するルールを設定します。
アラートメッセージの内容を条件判断し、イベントを発生させるスコープと深刻度の増減について設定します。
操作手順
AlertHub メニューより「ルール」を選択し、表示された画面右上の「+」マークをクリックします。
表示された画面上でルールを作成し、保存ボタンをクリックします。
設定する内容は下記の通りです。
- 使用するルールの表示名を入力します。
- 使用する受信スロットを選択します。
- 受信したアラートに対する処理フローを選択します。(「5.3.1.処理フローの設定」で詳しく説明)
- 処理フローの結果を受けて、対応するイベントを選択します。(「5.3.2.イベントの設定」で詳しく説明)
処理フローを設定しないと無条件でイベントが実行されます。
すでに作成済みのルールを流用したい場合は、該当のルールの右にある「︙」をクリックします。
表示されたメニューから「コピー」をクリックします。
コピーしたルールの内容が入力された状態でダイアログが表示されるため、必要に応じて編集し保存ボタンをクリックします。
処理フローの設定
処理フローの作成について説明します。
「処理フロー」の「+」ボタンをクリックすると、下記のポップアップが表れます。
行いたい処理を選択し、作成ボタンをクリックすると、詳細の設定ができるようになります。
各処理フローの設定方法について、詳しく説明します。
処理フローでは、フィールドを指定して条件判断や情報の加工ができます。
フィールドの指定方法についての詳細は、「設定の流れ > フィールドの指定方法」を参照してください。
また、フィールド自体についての詳細な説明は、「設定の流れ > フィールドの種類と操作」を参照してください。
日時に対して加減算を行う
指定のフィールド1の日時2について、指定した秒数の加減算を行う場合に使用します。
-
「F1」でフィールドを指定します。
-
「N1」に任意の数値を入力します。
-
指定のフィールドの日時から前か後かを選択します。
-
「F2」に保存先の名称について、任意の文字列を指定します。
フィールドを数値比較する
指定のフィールド1に記載された数値について、その大小比較により深刻度を変更する場合に使用します。
-
「F1」でフィールドを指定します。
メールの場合
webhook の場合
-
「N1」に任意の数値を入力します。
メールの場合
webhook の場合
-
「選択してください」のプルダウンより、「N1」に入力した数値と比較してどうなった場合に深刻度を変更するのかを選択します。
メールの場合
webhook の場合
フィールドが正規表現にマッチするかどうか確認する
指定のフィールド1に記載された正規表現について、指定の正規表現にマッチした・しなかった際に深刻度を変更する場合に使用します。
-
「F1」でフィールドを指定します。
-
「P1」に任意の正規表現を入力します。
-
「P1」に入力した正規表現とマッチした場合かしなかった場合かを選択します。
フィールドを文字列比較する
指定のフィールド1に記載された文字列について、指定の文字列に等しい・等しくない際に深刻度を変更する場合に使用します。
-
「F1」でフィールドを指定します。
メールの場合
webhook の場合
-
「S1」に任意の文字列を入力します。
メールの場合
webhook の場合
-
「S1」に入力した文字列と等しい場合か等しくない場合かを選択します。
メールの場合
webhook の場合
フィールドが文字列を含むかを確認する
指定のフィールド1に記載された文字列を、包含した・しなかった際に深刻度を変更する場合に使用します。
-
「F1」でフィールドを指定します。
メールの場合
webhook の場合
-
「S1」に任意の文字列を入力します。
メールの場合
webhook の場合
-
「S1」に入力した文字列を包含する場合か包含しない場合かを選択します。
メールの場合
webhook の場合
日時が指定した曜日における時刻の範囲内であるか確認する
指定したフィールド1の日時2が、指定した曜日且つ時間の範囲内である場合に深刻度を変更する際に使用します。
-
「F1」でフィールドを指定します。
-
曜日のボタンをクリックして指定したい曜日を 1 つ以上選択します。
-
「T1」に指定したい範囲の開始時刻を
hh:mm:ss (時:分:秒)
の形式3で入力します。 -
「T2」に指定したい範囲の終了時刻を
hh:mm:ss (時:分:秒)
の形式3で入力します。 -
プルダウンより、指定した時間範囲のタイムゾーンを選択します。
日時が指定した時刻の範囲内であるか確認する
指定したフィールド1の日時2が、指定した時間の範囲内である場合に深刻度を変更する際に使用します。
-
「F1」でフィールドを指定します。
-
「T1」に指定したい範囲の開始時刻を
hh:mm:ss (時:分:秒)
の形式3で入力します。 -
「T2」に指定したい範囲の終了時刻を
hh:mm:ss (時:分:秒)
の形式3で入力します。 -
プルダウンより、指定した時間範囲のタイムゾーンを選択します。
2つの日時の差分を計算する
2 つのフィールド1の日時2について、差分の秒数を計算する場合に使用します。
差分結果がマイナスとなった場合、マイナス値が保存されます。
-
「F1」に差分計算で引く側のフィールドを指定します。
-
「F2」に差分計算で引かれる側のフィールドを選択します。
-
「F3」に保存先の名称について、任意の文字列を指定します。
フィールドが存在するかどうか確認する
指定したフィールド1が存在するか確認したい場合に使用します。
フィールドの値が 0
,false
,空文字等であってもフィールドは「存在する」扱いとなります。
ただし、フィールドの値が null
の場合は「存在しない」扱いとなります。
-
「F1」に存在の有無を確認したいフィールドを指定します。
-
「F1」のフィールドが存在する場合か存在しない場合かを選択します。
現在の日時を取得する
現在の日時2を取得したい場合に使用します。
-
「F1」に保存先の名称について、任意の文字列を指定します。
フィールドを日時に変換する
指定のフィールド1の文字列を AlertHub で使用できる日時2の情報へ変換する場合に使用します。
-
「F1」でフィールドを指定します。
-
プルダウンより、変換元となる日時の文字列の形式を選択します。
-
「F2」に保存先の名称について、任意の文字列を指定します。
フィールドを JSON としてパースする
指定のフィールド1の内容を JSON パースして AlertHub 内の任意の場所へ保存する際に使用します。
システムによっては Webhook 送信に対応しておらずメールのみを送れる場合があります。
その場合、本文を JSON 形式で送り JSON パースすることで、メールでも構造化データを取り扱えます。
-
「F1」でフィールドを指定します。
JSON パースに関しては主にメール本文を使用します。 保存した値は、他の処理フロー等にて選択項目の代わりに使用できます。 -
「F2」に保存先の名称について、任意の文字列を指定します。
フィールドから正規表現によって値をひとつ取り出す
メッセージ内容から値を取り出して他の処理フローやイベントで使う場合に使用します。
-
「F1」でフィールドを指定します。
-
値を取り出すための正規表現を入力します。
-
取得した値の保存先の名称について、任意の文字列を指定します。
※「message」から始まる名称は不可です。
保存した値の活用
保存した値は、他の処理フロー等にて選択項目の代わりに使用できます。
ただし、ルールの中でしか使用できないため、注意してください。
以下に活用例を記載します。
-
「フィールドから正規表現によって値をひとつ取り出す」を使って任意のフィールド名(今回は「hostname」)を設定し、正規表現によって指定した内容を保存します。
-
「フィールドが文字列を含むかを確認する」にて、指定したフィールド名(「hostname」)を指定し、任意の文字列(今回は「web」)を含む場合に深刻度を変更する設定をします。
フィールドの指定について、詳しい設定方法は「設定の流れ > フィールドの指定」を参照してください。
AlertHub では、RFC3339
の書式(例:2022-01-02T15:04:05.123456789+09:00)で表現された日時の文字列を日時の情報として扱っています。日時を表す文字列は、「フィールドを日時に変換する」を使用することで
RFC3339
に変換でき、日時の情報として扱うことが可能です。
日時の情報についての詳細は、「設定の流れ
> フィールドの種類と操作」を参照してください。
時間の指定について、秒数(SS
部分)は省略可能です。
イベントの設定
イベントの作成について説明します。
イベントの作成では、対象スコープを直接指定するか条件指定するかによって操作方法が異なります。
「5.2. スコープの作成」にて作成したスコープを単純に指定する場合は、直接指定から作成します。
スコープ属性の値を条件としてスコープを指定する場合は、条件指定から作成します。
直接指定
「+」ボタンをクリックすると、イベント新規作成のポップアップが表示されます。
「直接指定」か「受信データのパスで指定」を選択し1、対象のスコープを選択後、作成ボタンをクリックします。
作成したイベントに対し、深刻度名を指定します。
ここでは、「テスト1」が直接指定、「テスト2」が受信データのパスで指定(メール)、「テスト3」が受信データのパスで指定(webhook)です。
直接指定の「テスト1」には「5.2.スコープの作成」で作成した深刻度名を入力します。
受信データのパスで指定の「テスト2・3」はプルダウンより選択します1。
※深刻度は事前に作成・指定しなくても、ルールで指定した深刻度がイベントの発生時に自動的に生成されます。
深刻度を変更するための数値を入力します。
指定した深刻度をどうするのかを選択し、右下の保存ボタンをクリックします。
条件指定
「+」ボタンをクリックすると、イベント新規作成のポップアップが表示されます。
「直接指定」か「受信データのパスで指定」を選択し1、作成ボタンをクリックします。
下記のような画面が表示されているため、中央の「+」ボタンをクリックします。
ここでも対象のスコープについて「直接指定」か「受信データのパスで指定」を選択します。
作成をクリックすると、下記のような画面が表示されます。
どちらの場合も、「5.2.スコープの作成」の「属性の追加」にて作成した属性から、任意の属性名を指定します。
直接指定の場合、指定したい属性に対する値を入力します2。
受信データのパスで指定の場合、該当のものを選択します1。
対応する深刻度について、上記「直接指定」項の直接指定(テスト1)を参照し入力します。
全て入力が完了したら、右下の保存ボタンをクリックします。
条件指定の最初に「受信データのパスで指定」を選択した場合は、下記通り画面が表示されます。
スコープについては本項の「条件指定」項と同様に設定し、深刻度については「直接指定」項の受信データのパス(テスト2・3)を参照してください。
「受信データのパスで指定」について、詳しい設定方法は「設定の流れ > ルールの作成 > 「受信データのパスで指定」詳細設定」を参照してください。
「5.2.スコープの作成」の「属性の追加」にて属性を作成した際に入力した値です。
AlertHub
メニューより、「スコープ > 該当スコープ詳細 > 設定 」から確認できます。
受信データのパスによる指定方法
「受信データのパスで指定」の詳細について説明します。
「受信データのパスで指定」を選択した場合、receiveSlotKind に則ってメッセージの詳細を取得できます。
詳細は、API ドキュメントの alerthub 内、/api/apps/alerthub/actions
「アクションの作成」を参考に設定します。
具体的な使用方法については、「設定の流れ > フィールドの指定方法」を参照してください。
メールの場合
受信スロットがメールの場合、指定できるフィールドは下表の通りです。
指定内容 | 説明 |
---|---|
件名:message.content.subject | 受信したメールの件名を指定 |
本文(text):message.content.text | 受信したメールの本文をテキストで指定 |
本文(html):message.content.html | 受信したメールの本文を html 形式で指定 |
送信元アドレス:message.metadata.from.email | 送信元のアドレスを指定 |
送信者:message.metadata.from.name | 送信者の名前を指定 |
webhook の場合
受信スロットが webhook の場合、指定できるフィールドは下表の通りです。
指定内容 | 説明 |
---|---|
リクエストボディ:message.content.body | 受信した JSON のリクエストボディを指定 |
リクエストボディの JSON プロパティ:message.content.data | 受信した JSON のリクエストボディにおける任意の要素を指定 |
リクエストヘッダー:message.metadata.header | 受信した JSON のリクエストヘッダーを指定 |
リクエスト URL:message.metadata.requestUrl | 送信元の URL を指定 |
設定例
「リクエストボディの JSON プロパティを指定する」を使用する場合の設定例です。
-
前提
- 今回送信される webhook のリクエストボディの内容は以下の通りです。
- 指定するスコープには、あらかじめ下記の属性が登録されています。
- 設定方法
-
プルダウンより、「リクエストボディの JSON プロパティ:message.content.data」を選択し、指定したいリクエストボディの要素を後ろに入力します。
-
イベントを設定します。
今回は、①「対象スコープを直接指定」と②「対象スコープを条件指定」を行いました。①「webhook test」のスコープにおいて、「webhook error」という深刻度を 1 増やす設定
②スコープ属性「host」が「01」と一致するスコープに対して、リクエストボディの「host」という項目を深刻度名として、深刻度を 3 にする設定
-
上記設定後、該当の webhook を受信すると、下記の通りスコープの深刻度が変化します。
深刻度一覧とイベントでは、イベントにて設定した内容が反映されていることが分かります。
条件指定にて、リクエストボディの「host」を深刻度とする指定をしたため、「01」と表示されています。
アクションの作成
アラート発生時のルールに対応して実行するアクションを設定します。
アクションには、メッセージの情報やパラメーター加工フローにて取り出した値について、変数による埋め込みができます。
通知内容の詳細な設定については、設定の流れ > アクションの作成 > 通知内容の設定 を参照してください。
操作手順
AlertHub メニューより「アクション」を選択し、表示された画面右上の「メール・PIGEON・WEBHOOK」いずれかのマークをクリックします。
各アクションの種類に応じて設定します。
各アクションの具体的な設定方法については、次項以降を参照してください。
設定が完了すると設定したアクションがアクション一覧に表示されます。
メールアクションの設定
「メール」をクリックすると、メールアクションの編集画面が表示されるため、以下の通り設定します。
-
任意の表示名を入力します
-
メールアクションの送信先(To,Cc,Bcc)を入力します
-
任意の件名を入力します
-
送信したい本文の形式を選択します
-
本文を入力します1
-
保存ボタンをクリックします
メールアクションでは、選択する形式により下記の通り Content-Type
が変更されます。
- テキスト形式:
Content-Type: text/plain
- HTML 形式:
Content-Type: text/html
- 両方を選択:
Content-Type: multipart/alternative
HTML 形式の場合、AlertHub が HTML 形式で受信したメールをそのまま記載もできます。
受信した HTML メールを本文に記載するには、以下のように値を埋め込みます1。
通知内容の詳細な設定については、設定の流れ > アクションの作成 > 通知内容の設定 を参照してください。
Pigeon アクションの設定
Pigeon アクションの設定には、特権または Pigeon 操作者、 Pigeon 管理者のロールが必要となります。
ユーザー権限についての詳細は Kompira cloud 共通メニュー利用マニュアル > ユーザー権限の詳細 を参照してください。
「PIGEON」をクリックすると、Pigeon アクションの編集画面が表示されるため、以下の通り設定します1。
-
任意のアクションの表示名を入力します
-
コールフローを選択します
-
ガイダンスを選択します
-
保存ボタンをクリックします
事前に Kompira Pigeon の設定が必要となります。
Pigeon
の設定については、Kompira
Pigeon 基本マニュアル を参照してください。
webhook アクションの設定
「WEBHOOK」をクリックすると、webhook アクションの編集画面が表示されるため、以下の通り設定します。
-
任意のアクションの表示名を入力します
-
連携先サービスの URL を入力します
-
連携内容に応じた HTTP メソッドを選択します
-
リクエストの本文を JSON 形式などで入力します1
-
必要に応じて HTTP ヘッダーを設定します
-
保存ボタンをクリックします
通知内容の詳細な設定については、設定の流れ > アクションの作成 > 通知内容の設定 を参照してください。
通知内容の設定
メールや webhook 通知内容には、mustache を使って任意の値を埋め込むことができます。
mustache を埋め込める範囲は以下の通りです。
アクションの種類 | 対応範囲 |
---|---|
メール | To/Cc/Bcc の名前・メールアドレス、件名、本文 |
webhook | webhook URL、リクエスト本文、HTTP ヘッダーの値 |
具体的な用途や使用方法については、「設定の流れ > フィールドの指定方法」を参照してください。
値を埋め込むための記法の詳細は、「設定の流れ > アクションの作成 > 値を埋め込む記法」を参照してください。
埋め込むことのできる内容は、下表の通りです。
表記 | 内容 |
---|---|
message | アクションを引き起こしたメッセージの情報 |
relatedMessageCount | 関連メッセージの件数 |
relatedMessages | 関連メッセージの配列 |
event | アクションを引き起こしたイベントの情報 |
scope | アクションが起こったスコープの情報 |
scopeSeverities | アクションが起こったスコープが持つ全ての深刻度の情報 |
space | スペースの情報 |
設定例
webhook にて受信した内容をアクションのメール通知に埋め込む場合を例に設定します。
「5.4. アクションの作成」の手順通り、メールの内容を設定します。
件名と本文の設定の際に、埋め込みたい内容を記載します。
今回は以下の項目が記載されるよう設定しました。
- 実際にイベントが発生した監視スコープ名(
{{scope.displayName}}
) - イベントの深刻度名(
{{event.severityName}}
) - アクションの原因となったメッセージに記載のホスト名(
{{message.content.data.host}}
) - アクションの原因となったメッセージに記載のステータス(
{{message.content.data.status}}
) - 関連メッセージ件数(
{{relatedMessageCount}}
) - アクションが起きたスコープの全ての深刻度(
{{scopeSeverities}}
) - 元の webhook のリクエストボディ全文(
{{message.content.body}}
)
設定完了後、実際に webhook を送信すると設定した内容が埋め込まれ、以下の通りメールを受け取ることができます。
値を埋め込む記法
メールや webhook の通知内容にメッセージの情報など任意の値を埋め込むための記法を説明します。
アクションでの記述と、受信した webhook メッセージのリクエストボディ、実際に送信される内容の組み合わせで例示しています。
値の埋め込みの基本
フィールド名を中括弧で二重に括ることで、フィールドの値を埋め込むことができます。
アクションでの記述
値の埋め込みの基本
{{message.content.data.basic}}
受信したリクエストボディ
{
"basic": "hello"
}
送信される内容
値の埋め込みの基本
hello
下位のフィールドの埋め込み
フィールド名をピリオド「.」で連結することにより階層の下位のフィールドの値を埋め込むことができます。
アクションでの記述
下位のフィールドの埋め込み
{{message.content.data.parent.child}}
受信したリクエストボディ
{
"parent": {
"child": "hello"
}
}
送信される内容
下位のフィールドの埋め込み
hello
配列の埋め込み
配列の内容を全て埋め込めます。
フィールド名にシャープ「#」を付けたものと、スラッシュ「/」を付けたものを記述すると、その間に値が埋め込まれます。
配列内の全ての要素が埋め込まれ、配列内の位置や範囲を指定はできません。
アクションでの記述
配列の埋め込み
{{#message.content.data.members}}
{{name}}
{{/message.content.data.members}}
受信したリクエストボディ
{
"members": [
{"name": "Jean"},
{"name": "Paul"},
{"name": "Bel"}
]
}
送信される内容
配列の埋め込み
Jean
Paul
Bel
フィールドがある場合に表示する
フィールド名にシャープ「#」を付けたものと、スラッシュ「/」を付けたものを記述すると、フィールドがある場合はその間の内容が表示されます。
以下の場合は内容が表示されません。
- フィールドがない
- フィールド値が
null
- フィールド値が
false
- フィールドが空の配列
アクションでの記述
フィールドがある場合に表示する
{{#message.content.data.something}}
something がある
{{/message.content.data.something}}
{{#message.content.data.nothing}}
nothing がある
{{/message.content.data.nothing}}
{{#message.content.data.boolean}}
boolean が true
{{/message.content.data.boolean}}
{{#message.content.data.emptyList}}
emptyList が空ではない
{{/message.content.data.emptyList}}
受信したリクエストボディ
{
"something": "value",
"boolean": false,
"emptyList": []
}
送信される内容
フィールドがある場合に表示する
something がある
フィールドがない場合に表示する
フィールド名にハット「^」を付けたものと、スラッシュ「/」を付けたものを記述すると、フィールドがない場合はその間の内容が表示されます。
以下の場合も内容が表示されます。
- フィールド値が
null
- フィールド値が
false
- フィールドが空の配列
フィールドがある場合は内容が表示されません。
アクションでの記述
フィールドがない場合に表示する
{{^message.content.data.something}}
something が無い
{{/message.content.data.something}}
{{^message.content.data.nothing}}
nothing が無い
{{/message.content.data.nothing}}
{{^message.content.data.boolean}}
boolean が false
{{/message.content.data.boolean}}
{{^message.content.data.emptyList}}
emptyList が空である
{{/message.content.data.emptyList}}
受信したリクエストボディ
{
"something": "value",
"boolean": false,
"emptyList": []
}
送信される内容
フィールドがない場合に表示する
nothing がない
boolean が false
emptyList が空である
トリガーの作成
アクションを実行するためのトリガーを設定します。
操作方法
AlertHub メニューより「スコープ」を選択し、表示されたスコープ一覧から設定したいスコープを選択し詳細画面を開きます。
詳細画面よりトリガーを選択し、右上の「+」をクリックします。
表示された画面上でトリガーを作成し、保存ボタンをクリックします。
設定する内容は下記の通りです。
- 使用するトリガーの表示名を入力します。
- トリガーの実行条件を選択します。
- 関連メッセージを必要に応じて有効化し、フィルター選択します。(任意設定)
- パラメーター加工フローを選択します。(任意設定)
- トリガーが実行された場合のアクションをプルダウンより選択します。
実行条件を設定しないと無条件でアクションが実行されます。
関連メッセージとパラメーター加工フローの設定は必須ではありません。
トリガーでは、実行する内容としてランブックも設定できます。
詳細は「ランブック操作マニュアル
> 設定手順 > ランブック呼び出しの設定」を参照してください。
すでに作成済みのトリガーを流用したい場合は、該当のトリガーの右にある「︙」をクリックします。
表示されたメニューから「コピー」をクリックします。
コピーしたトリガーの内容が入力された状態でダイアログが表示されるため、必要に応じて編集し保存ボタンをクリックします。
実行条件の設定
実行条件の作成について説明します。
「実行条件」の「+」ボタンをクリックすると、下記のポップアップが表れます。
行いたい処理を選択し、作成ボタンをクリックすると、詳細の設定ができるようになります。
各実行条件の設定方法について、以下で詳しく説明します。
直近のアクション実行件数を指定値と比較する
過去 n 秒以内に m 回アクションが発生した際にアクションを実行させたい場合に使用します。
- 「T1」に任意の秒数を入力します。
- 「N1」に任意の回数を入力します。
- プルダウンより、「N1」で設定した回数と比較してどうなった場合にアクションを実行させるかを選択します。
指定条件を満たす直近のイベント件数を指定値と比較する
過去 n 秒以内の深刻度やその変化量について、指定した値のイベントが m 回発生した際にアクションを実行させたい場合に使用します。
-
「T1」に任意の秒数を入力します。
-
プルダウンより、どの数値に着目したいかを選択します。
-
「N1」に 2 で着目した項目について、任意の数値を入力します。
-
プルダウンより、「N1」の数値に対してどうなった場合のイベントについてアクションを起こすか選択します。
-
「N2」に任意の回数を入力します。
-
プルダウンより、「N2」で設定した回数と比較してどうなった場合にアクションを実行させるかを選択します。
一定時間経過後のイベントのフィールドを指定値と比較する
イベント発生から n 秒経過後における深刻度の変化量によってアクションを実行させたい場合に使用します。
-
「T1」に任意の秒数を入力します。
-
プルダウンより、どの数値に着目したいかを選択します。
-
「N1」に 2 で着目した項目について、任意の数値を入力します。
-
プルダウンより、「N2」で設定した数値と比較してどうなった場合にアクションを実行させるかを選択します。
深刻度の増減を判定する
単純に深刻度の増減によってアクションを実行させたい場合に使用します。
プルダウンより、増えた場合か減った場合かを選択します。
イベントの深刻度名を指定値と比較する
イベントが起こったスコープの深刻度名を指定してアクションを実行させたい場合に使用します。
- 「S1」に指定したい深刻度名を入力します。
- プルダウンより、「S1」と等しい場合か等しくない場合かを選択します。
イベントのフィールドを指定値と比較する
単純に深刻度の数値によってアクションを実行させたい場合に使用します。
- プルダウンより、どの数値に着目するかを選択します。
- 「N1」に任意の数値を入力します。
- プルダウンより、「N1」で設定した数値と比較してどうなった場合にアクションを実行させるかを選択します。
一定時間経過後の指定した名前を持つ深刻度の値を指定値と比較する
イベント発生から n 秒経過後において、指定した深刻度名の深刻度によってアクションを実行させたい場合に使用します。
- 「T1」に任意の秒数を入力します。
- 「S1」に指定したい深刻度名を入力します。
- 「N1」に任意の数値を入力します。
- プルダウンより、「N1」で設定した数値と比較してどうなった場合にアクションを実行させるかを選択します。
指定した名前を持つ深刻度の値を指定値と比較する
指定した深刻度名の深刻度によってアクションを実行させたい場合に使用します。
- 「S1」に指定したい深刻度名を入力します。
- 「N1」に任意の数値を入力します。
- プルダウンより、「N1」で設定した数値と比較してどうなった場合にアクションを実行させるかを選択します。
一定時間経過後のスコープステータスを指定値と比較する
イベント発生から n 秒経過後に、スコープステータスが「正常/警戒/障害」の際にアクションを実行させたい場合に使用します。
- 任意の秒数を入力します。
- プルダウンより、指定したいステータスを選択します。
- プルダウンより、指定したステータスと等しい場合か等しくない場合かを選択します。
スコープステータスを指定値と比較する
単純にスコープステータスが「正常/警戒/障害」の際にアクションを実行させたい場合に使用します。
- プルダウンより、指定したいステータスを選択します。
- プルダウンより、指定したステータスと等しい場合か等しくない場合かを選択します。
関連メッセージの設定
関連メッセージの設定について説明します。
関連メッセージは、トリガーの実行条件で時間経過を伴う条件を使用した場合に、経過時間内にイベントを発生させたメッセージの情報をアクションで利用するための機能です。
関連メッセージの動作
関連メッセージは、トリガーの実行条件で以下の条件を使用した場合に利用できます。
実行条件名 | 関連メッセージとする時間方向 |
---|---|
指定条件を満たす直近のイベント件数を指定値と比較する | イベント発生以前の時間 |
一定時間経過後のイベントのフィールドを指定値と比較する | イベント発生以後の時間 |
一定時間経過後の指定した名前を持つ深刻度の値を指定値と比較する | イベント発生以後の時間 |
一定時間経過後のスコープステータスを指定値と比較する | イベント発生以後の時間 |
以下の設定をした場合を例に説明します。
- 「変化前の深刻度」が「0」「と等しい」値である
- 深刻度が「増えた」
- 「60」秒経過後、「最新の深刻度」が「1」「以上の」値である
上記の場合、深刻度が「0」から増加するイベントが発生した後に、60 秒待機して深刻度が依然として「1」以上だった場合にアクションが実行されます。
アクション実行時に、60 秒待機している間に同じスコープで発生したイベントに関わるメッセージを「関連メッセージ」として扱えます。
最初にトリガーの実行条件に合致するイベントを発生させたメッセージも関連メッセージに含まれます。
アクションでの関連メッセージ情報の設定
アクションでは関連メッセージの件数とそれぞれのメッセージ内容を利用できます。
関連メッセージ件数の設定例
relatedMessageCount
を記述すると、実際に送信されるメールに関連メッセージ件数が埋め込まれます。
メールアクションの件名に関連メッセージの件数を含める場合は以下の通り設定します。
- メールアクションの件名に関連メッセージ件数を設定した例
[{{relatedMessageCount}}]件の異常を検知しました
関連メッセージが 3 件ある場合、送信されるメールの件名は以下の様になります。
[3]件の異常を検知しました
関連メッセージ内容の設定例
relatedMessages
にはメッセージの情報が配列形式で保持されています。
{{#relatedMessages}}
と {{/relatedMessages}}
で囲った箇所はメッセージの件数と記述した内容に応じて展開されます。
個々の関連メッセージの情報を含める場合は以下の通り設定します。
- メールで受信したメッセージの件名と作成日時をメールアクションの本文に一覧表示させるよう設定した例
{{#relatedMessages}}
- {{content.subject}} [{{metadata.date}}]
{{/relatedMessages}}
関連メッセージが 3 件ある場合、送信されるメールの本文は以下の様になります。
- 1件目のメッセージの件名 [2022-01-01T01:00:00+09:00]
- 2件目のメッセージの件名 [2022-01-01T02:00:00+09:00]
- 3件目のメッセージの件名 [2022-01-01T03:00:00+09:00]
関連メッセージ件数と内容についての制約
relatedMessages
で展開できる情報は、100 件が上限です。
関連メッセージが 1,000 件だった場合には、relatedMessages
によって展開される情報は 100 件までとなります。
ただし、メッセージ数を埋め込む relatedMessageCount
の値は「1000」となります。
関連メッセージフィルター
関連メッセージ機能の基本動作では、実行条件で指定された経過時間内に発生した全てのイベントに関わるメッセージが関連メッセージとなります。
トリガー内で関連メッセージのフィルターを設定することで、イベントの内容を条件にして関連メッセージを絞り込むことができます。
「関連メッセージフィルター」を有効化した上で「+」ボタンをクリックすると、下記のポップアップが表れます。
使用したいフィルターを選択し、作成ボタンをクリックすると、詳細の設定ができるようになります。
以下では各フィルターの設定について説明します。
深刻度の増減を判定する
単純に深刻度の増減によってアクションを実行させたい場合に使用します。
プルダウンより、増えた場合か減った場合かを選択します。
イベントの深刻度名を起点イベントの深刻度名と比較する
トリガーが動作する起点となったイベントの深刻度名と同じ深刻度名でイベントを限定したい場合に使用します。 プルダウンより、等しいか等しくないかを選択します。
イベントの深刻度名を指定値と比較する
イベントが起こったスコープの深刻度名を指定してイベントを限定したい場合に使用します。
- 「S1」に指定したい深刻度名を入力します。
- プルダウンより、「S1」と等しい場合か等しくない場合かを選択します。
イベントのフィールドを指定値と比較する
単純に深刻度の数値によってイベントを限定したい場合に使用します。
- プルダウンより、どの数値に着目するかを選択します。
- 「N1」に任意の数値を入力します。
- プルダウンより、「N1」で設定した数値と比較してどうなった場合にアクションを実行させるかを選択します。
パラメーター加工フローの設定
パラメーター加工フローの作成について説明します。
パラメーター加工フローでは、AlertHub が受信したメッセージの内容について任意の加工を行い、処理結果の値を取り出すことができます。
パラメーター加工フローで取り出した値は、アクションやランブック等、後続の処理で使用できます。
「パラメーター加工フロー」の「+」ボタンをクリックすると、下記のポップアップが表れます。
行いたい処理を選択し、作成ボタンをクリックすると、詳細の設定ができるようになります。
フィールドを JSON としてパースする
メッセージ内容を JSON パースして AlertHub 上の他の機能で使う場合に使用します。
Webhook 送信に対応しておらず、メールのみを送れるシステムを利用している際に有効な機能です。
本文を JSON 形式で送り、本機能によって JSON パースすることで、メールでも構造化データを取り扱えます。
フィールドから正規表現によって値をひとつ取り出す
メッセージ内容から値を取り出して、AlertHub 上の他の機能で使う場合に使用します。
指定した HTML 要素を削除する
メッセージ内容から特定の HTML 要素を削除した上で値を取り出し、AlertHub 上の他の機能で使う場合に使用します。
削除対象とした項目はタグも含め要素ごと削除されます。
- 「F1」に指定のフィールド1を入力します
- 「F2」に保存先の名称について、任意の文字列2を指定します
- 「E1」にメッセージ内容から削除する HTML
要素を入力します
既定値としてデフォルトの項目が記載されているため、削除対象としない要素は「×」をクリックし、対象外とします
主な入力項目は以下の通りです。フィールドの指定について、詳しい設定方法は「設定の流れ > ルールの作成 > フィールドの指定」を参照してください。
項目 | 入力内容 |
---|---|
件名 | message.content.subject |
本文(テキスト形式) | message.content.text |
本文(HTML形式) | message.content.html |
差出人の名前 | message.metadata.from.name |
差出人のメールアドレス | message.metadata.from.email |
message
から始まる名称は不可です
フィールドの指定方法
ルール、アクション、トリガーで AlertHub の各種情報を取得するためのフィールドの指定方法について説明します。
フィールドについての詳細な説明は、「設定の流れ > フィールドの種類と操作」を参照してください。
message
メッセージの詳細を取得します。
受信メッセージが webhook の場合
主に取得可能な情報と入力値は下記の通りです。
取得したい内容 | 入力する値 |
---|---|
リクエストボディ全体の内容 | message.content.body |
リクエストボディをパースした結果の内容 | message.content.data |
リクエストを受信した URL | message.metadata.requestUrl |
リクエストヘッダーの内容 | message.metadata.headers |
下記のような webhook メッセージを受信した場合を例に説明します。
{
"level": "warning",
"message": "ping failed"
}
実際の AlertHub 上では message
の内容として下記のようにデータが受け取られます。
{
"message": {
"receiveSlotId": "6f148d9b-bd7f-4f3b-a209-8014941cd0e5",
"receiveSlotKind": "webhook",
"content": {
"body": "{\"level\": \"warning\",\"message\": \"ping failed\",\"relations\": [123,456,789]}",
"data": {
"level": "warning",
"message": "ping failed",
"relations":[
123,
456,
789
]
}
},
"metadata": {
"requestUrl": "https://receiver.cloud.dev.kompira.jp/webhook/XXXXXXXXXX",
"headers": {
"Accept": "*/*",
"Connection": "close",
"Content-Length": "0",
"Content-Type": "application/json"
}
}
}
この場合、message.content.body
とすると body
である
{level: warning,message: ping failed,relations: [123,456,789]}
を文字列として取得できます。
リクエストボディをパースした内容の一部である level
の値(今回は
warning
)のみ取得したい場合は、message.content.data.level
とします。
さらに、ルール/トリガー/ランブックでは、リストの内容も取得できます。
リストとなっている relations
の 123
を取得したい場合は、message.content.data.relations.0
と指定します1。
ただし、アクションではリストの内容を指定できないため、一度ランブックのオペレーターステップ「あるフィールドから別のフィールドに値をコピーする」によりリストの内容をフィールドへ保存する必要があります。
受信メッセージがメールの場合
主に取得可能な情報と入力値は下記の通りです。
取得したい内容 | 入力する値 |
---|---|
メールの件名 | message.content.subject |
メールの本文(テキスト形式) | message.content.text |
メールの本文(HTML形式) | message.content.html |
メールを受信したメールアドレス | message.metadata.deliveredTo |
メール送信元のメールアドレス | message.metadata.from.email |
メール送信先のメールアドレス | message.metadata.to.email |
CC先のメールアドレス | message.metadata.cc.email |
メール作成日時 | message.metadata.date |
メールヘッダー情報 | message.metadata.headers |
下記のようなメールメッセージを受信した場合を例に説明します。
件名:【要確認】障害通知
送信元:障害通知用アドレス <from@example.com>
宛先:abcdef@receiver.cloud.kompira.jp
本文:
テストサーバーにて障害が発生しました。
内容を確認し対応をお願いします。
実際の AlertHub 上では message
の内容として下記のようにデータが受け取られます。
{
"message": {
"receiveSlotId": "ce424d64-6c8f-4768-891c-5d07e7e0faa8",
"receiveSlotKind": "email",
"content": {
"subject": "【要確認】障害通知",
"text": "テストサーバーにて障害が発生しました。\n内容を確認し対応をお願いします。",
"html": "<html><body>テストサーバーにて障害が発生しました。<br>内容を確認し対応をお願いします。</body></html>"
},
"metadata": {
"deliveredTo": "abcdef@receiver.cloud.kompira.jp",
"from": {
"name": "障害通知用アドレス",
"email": "from@example.com"
},
"to": [
{
"email": "abcdef@receiver.cloud.kompira.jp"
}
],
"date": "2022-08-22T18:13:45+09:00",
"headers": {
"Content-Type": "multipart/alternative; boundary=\"000000000000064deb05e6d0dec5\"",
"Date": "Mon, 22 Aug 2022 18:13:45 +0900"
}
}
}
}
この場合、message.content.text
とすると テストサーバーにて障害が発生しました。\n内容を確認し対応をお願いします。
というようにメール本文がテキスト形式にて取得できます。
また、メールの送信元が知りたい場合は message.metadata.from
とすることにより
{"name": "障害通知用アドレス","email": "from@example.com"}
というように情報取得が可能です。
message
の詳細な構造は、API ドキュメント2の
/api/apps/alerthub/message/detail/{messageId}
「メッセージ詳細の取得」中、枠内下部の「Responses」より「Schema」をクリックし確認してください。
relatedMessageCount
関連メッセージのうち、該当のトリガーにて設定した条件を満たしたメッセージの件数を取得します。
関連メッセージの件数を埋め込む場合は、relatedMessageCount
とします。
後述の relatedMessages
には件数制限がありますが、制限に関わらず条件を満たしたメッセージの件数が埋め込まれます。
関連メッセージ機能が無効の場合は 0 と表示されます。
relatedMessages
関連メッセージのうち、該当のトリガーにて設定した条件を満たしたメッセージの配列を取得します。
長さは最長 100 件で、101 件以上となった場合はイベント発生時刻の古いものから 100 件のみの配列となります。
アクションが手動実行された場合などには空となる可能性があります。
「message」 と同様に設定が可能です。
たとえば、webhook にて受信した関連メッセージのリクエストボディ全体を記載したい場合は、relatedMessages.content.body
とします。
event
イベントの情報を取得します。
event の詳細な構造は、API ドキュメント2の
/api/apps/alerthub/scopes/{scopeId}/events/{eventId}
「イベントの取得」中、枠内下部の「Responses」内「Schema」をクリックし確認してください。
たとえば、イベントが発生する原因となったメッセージの ID を取得したい場合は、event.messageId
とします。
scope
スコープの情報を取得します。
scope の詳細な構造は、API ドキュメント2の
/api/apps/alerthub/scopes/{scopeId}
「スコープの取得」中、枠内下部の「Responses」内「Schema」をクリックし確認してください。
たとえば、アクションが発生したスコープの現在の深刻度を取得したい場合は、scope.severity
とします。
scopeSeverities
スコープが持つ全ての深刻度の情報を取得します。
深刻度の情報を埋め込む場合は、scopeSeverities
とします。
たとえば、該当スコープの深刻度が下画面の状態の場合で説明します。
深刻度名「01」は深刻度が「0」、深刻度名「webhook error」は深刻度が「3」となっています。
この状態で scopeSeverities
とすると、下記の通り深刻度名と深刻度が埋め込まれます。
map[01:0 webhook error:3]
space
スペースの情報を取得します。
space の詳細な構造は、API ドキュメント2の
/api/space
「スペース情報の取得」中、枠内下部の「Responses」内「Schema」をクリックし確認してください。
たとえば、スペース ID を取得したい場合は、space.spaceId
とします。
リストの内容を指定する場合、最初の要素を 0
番として昇順で指定します。
Kompira cloud スペース上部の「?」をクリックすると「API ドキュメント」の項目が出現するため、選択して参照します。
フィールドの種類と操作
AlertHub では、「フィールド」に受信したメッセージの情報や AlertHub 上の情報が保存されており、その情報を利用してメッセージ処理を行えるようになっています。
たとえば、下記のリクエストボディを持つ webhook メッセージを受信したとします。
{
"host":"拠点01",
"status":"error",
"number":99,
"ping":"XXX.XXX.XXX.XXX",
"date":"11 Jan 23 11:12 +0900"
}
AlertHub では、受信した webhook メッセージは下記のようにフィールドに保存されます。
{
"message": {
"receiveSlotId": "02ca1f12-4ca0-4ded-84e9-425beecba378",
"receiveSlotKind": "webhook",
"content": {
"body": "{\n \"host\":\"拠点01\",\n \"status\":\"error\",\n \"number\":99,\n \"ping\":\"XXX.XXX.XXX.XXX\",\n \"date\":\"11 Jan 22 11:12 +0900\"\n}",
"data": {
"date": "11 Jan 23 11:12 +0900",
"host": "拠点01",
"number": 99,
"ping": "XXX.XXX.XXX.XXX",
"status": "error"
}
},
"receivedAt": "2023-01-11T02:12:27.136835967Z"
}
}
フィールドの情報は、文字列・数値・日時の三種類の情報として扱うことができます。
各フィールドの内容について詳細を説明します。
文字列として扱う場合
フィールドの情報は全て文字列として扱えます。
文字列の情報は、文字列比較や文字の部分一致の確認などが行えます。
下記 webhook メッセージでは、赤字および緑字部分が文字列として扱えます。
{
"message": {
"receiveSlotId": "02ca1f12-4ca0-4ded-84e9-425beecba378",
"receiveSlotKind": "webhook",
"content": {
"body": "{\n \"host\":\"拠点01\",\n \"status\":\"error\",\n \"number\":99,\n \"ping\":\"XXX.XXX.XXX.XXX\",\n \"date\":\"11 Jan 22 11:12 +0900\"\n}",
"data": {
"date": "11 Jan 23 11:12 +0900",
"host": "拠点01",
"number": 99,
"ping": "XXX.XXX.XXX.XXX",
"status": "error"
}
}
}
}
ルールの処理フローにおいて文字列として情報を扱っている項目は下記の通りです。
- フィールドが正規表現にマッチするかどうか確認する
- フィールドを文字列比較する
- フィールドが文字列を含むかを確認する
- フィールドを JSON としてパースする
- フィールドから正規表現によって値をひとつ取り出す
ランブックでは、以下のステップ項目において文字列として情報を扱っています。
-
オペレーターステップ
-
ブランチステップ
数値として扱う場合
JSON 形式のメッセージに含まれる数値や、数値として解釈可能な文字列について、数値として扱うことができます。
数値の情報は、処理フロー等で任意に設定した数値との比較が行えます。
下記 webhook メッセージでは、赤字部分の 99
が JSON 形式の数値として扱えます。
また、一番下の 100
も数値として解釈可能な文字列であるため、数値の情報として扱えます。
{
"message": {
"receiveSlotId": "02ca1f12-4ca0-4ded-84e9-425beecba378",
"receiveSlotKind": "webhook",
"content": {
"body": "{\n \"number\":99,\n \"numberstring\"100\n}",
"data": {
"number": 99,
"numberstring": "100"
}
}
}
}
ルールの処理フローにおいて数値として情報を扱っている項目は下記の通りです。
ランブックでは、以下のステップ項目において数値として情報を扱っています。
- ブランチステップ
数値を扱う処理において、数値ではない文字列を持つフィールドを指定した場合、ルールやステップの処理でエラーが発生します。
日時として扱う場合
日時を表す文字列は、「フィールドを日時に変換する」を利用することで日時の情報として扱うことができます。
日時の情報に変換可能な文字列の書式は以下の通りです。
書式名 | 例 |
---|---|
RFC 822 | 02 Jan 22 15:04 JST |
RFC 822Z | 02 Jan 22 15:04 +0900 |
RFC 850 | Sunday, 02-Jan-22 15:04:05 JST |
RFC 1123 | Sun, 02 Jan 2022 15:04:05 JST |
RFC 1123Z | Sun, 02 Jan 2022 15:04:05 +0900 |
RFC 3339 | 2022-01-02T15:04:05.123456789+09:00 |
日時の情報は、日時の情報同士の計算や時刻の範囲の確認などが行えます。
下記 webhook メッセージでは、緑字部分の "11 Jan 23 11:12 +0900"
と
"2023-01-11T02:12:27.136835967Z"
が日時を表す文字列になっています。
{
"message": {
"receiveSlotId": "02ca1f12-4ca0-4ded-84e9-425beecba378",
"receiveSlotKind": "webhook",
"content": {
"body": "{\n \"date\":\"11 Jan 22 11:12 +0900\"\n}",
"data": {
"date": "11 Jan 23 11:12 +0900"
}
},
"receivedAt": "2023-01-11T02:12:27.136835967Z"
}
}
ルールの処理フローにおいて日時として情報を扱っている項目は下記の通りです。
- フィールドを日時に変換する
- 日時に対して加減算を行う
- 2つの日時の差分を計算する
- 現在の日時を取得する
- 日時が指定した時刻の範囲内であるか確認する
- 日時が指定した曜日における時刻の範囲内であるか確認する
ランブックでは、以下のステップ項目において日時として情報を扱っています。
-
オペレーターステップ
-
ブランチステップ
フィールドの指定パターン
フィールドの指定は、情報を取得するために指定する場合と情報を保存するために指定する場合に分かれます。
処理フローの「フィールドを日時に変換する」を例に説明します。
今回は、下記の通り AlertHub が受信した内容について、"date": "11 Jan 23 11:12 +0900"
の文字列部分を変換して日時情報として扱えるようにします。
{
"message": {
"receiveSlotId": "02ca1f12-4ca0-4ded-84e9-425beecba378",
"receiveSlotKind": "webhook",
"content": {
"body": "{\n \"date\":\"11 Jan 22 11:12 +0900\"\n}",
"data": {
"date": "11 Jan 23 11:12 +0900"
}
},
"receivedAt": "2023-01-11T02:12:27.136835967Z"
}
}
「フィールドを日時に変換する」を選択すると、下図の通りフィールドを 2 つ指定する必要があります。
「F1」では、上記の通り受信した webhoook メッセージの情報が保存されたフィールドを指定します。
規定の指定方法によるフィールドの指定についての詳細は、「設定の流れ > フィールドの指定方法」を参照してください。
今回は、webhook で受信したメッセージにおいて message
中の content
下、data
の date
を指定したいため、message.content.data.date
と入力します。
一方「F2」では、日時に変換した情報を保存するフィールドの名称を指定します。
保存先のフィールドの名称は自身で任意に設定できます。
今回は、date
としました。
ランブックを使用している場合は、保存されたフィールドを実行履歴の出力値で確認できます。
下記コードブロックの一番下に "date": "2022-01-11T11:12:00+09:00"
とある通り、日時に変換された情報が date
に保存されています。
{
"message": {
"receiveSlotId": "02ca1f12-4ca0-4ded-84e9-425beecba378",
"receiveSlotKind": "webhook",
"content": {
"body": "{\n \"date\":\"11 Jan 22 11:12 +0900\"\n}",
"data": {
"date": "11 Jan 23 11:12 +0900"
}
},
"receivedAt": "2023-01-11T02:12:27.136835967Z"
},
"date": "2022-01-11T11:12:00+09:00"
}
通知先の設定
通知先は、アクションとランブックの実行が失敗した際に通知が欲しい場合に設定します。
AlertHub メニューより「設定」を選択し、「通知先」の右にある「+」マークをクリックします。
ダイアログが表示されるため、以下の通り入力します。
- 任意の名前を入力します
- 通知先に設定したいメールアドレスを入力します
- 保存ボタンをクリックします
以下の通り、作成した通知先が通知先の一覧画面に表示されます。
Email アクション送信元の設定
Email アクション送信元は、メール送信アクションにおいて、デフォルトの noreply@kompira.jp
以外からメールを送信したい場合に設定します。
AlertHub メニューより「設定」を選択し、「Email アクション送信元」の右にある「+」マークをクリックします。
ダイアログが表示されるため、以下の通り入力します。
- Email アクションの送信者に設定したい名前を入力します
- Email アクション送信元に設定したいメールアドレスを入力します
- 送信方法を選択します
SendGrid の場合
SendGrid を利用してメールを送信する場合、SendGrid の API キーが必要です。
SendGrid の API キーについては、公式ドキュメント を参照してください。
API キーを入力後、保存ボタンをクリックします。
SMTP の場合
SMTP を利用してメールを送信する場合、ご使用のメーラーにて SMTP サーバーを設定し、以下の通り必要項目を入力します。
- サーバー名を入力します
- ポート番号を入力します
- 利用する通信の暗号化方法を選択します
- 利用する認証方式を選択します
- 保存ボタンをクリックします
認証方法について PLAIN
もしくは CRAM-MD5
を選択した場合、別途認証情報としてユーザー名とパスワードが必要になります。
以下の通り、作成した Email アクション送信元が Email アクション送信元の一覧画面に表示されます。
テスト送信
テスト送信を行いたい場合は、編集画面右下もしくは一覧画面右端の「︙」にある「テスト送信」をクリックします。
ダイアログが表示されるため、送信先のメールアドレスを入力し送信ボタンをクリックします。
ユーザー権限と操作可能な機能
AlertHub は、ユーザーに付与されたロールによって操作可能な機能が異なります。
AlertHub に関する権限の概要は下表の通りです。
ロール | 概要 | 備考 |
---|---|---|
AlertHub 管理者 | 全ての機能が使用可能 | |
AlertHub 閲覧者 | AlertHub の設定・実行内容が閲覧可能 (インポート・エクスポートを除く) | |
ロールなし | 基本的に操作不可 | WEBGUI にメニュー表示はあり |
ユーザー権限についての詳細は、Kompira cloud 共通メニュー利用マニュアル > ユーザー権限の詳細 を参照してください。
操作可能な機能
ユーザーの権限ごとの操作可能な機能は以下の通りです。
- 凡例
- ◯:可(有)
- ✕:不可(無)
- △:項目ごとの説明を参照
スコープ
「スコープ」メニューにおける操作可能な項目の一覧です。
項目 | AlertHub 管理者 | AlertHub 閲覧者 |
---|---|---|
スコープの一覧表示 | ◯ | ◯ |
スコープ情報の表示 | ◯ | ◯ |
スコープの追加 | ◯ | ✕ |
スコープの編集・削除 | ◯ | ✕ |
スコープの深刻度のリセット | ◯ | ✕ |
「概要」タブの表示 | ◯ | ◯ |
「ルール」タブの表示 | ◯ | ◯ |
「トリガー」タブの表示 | ◯ | ◯ |
「設定」タブの表示 | ◯ | ◯ |
深刻度
各スコープ内の「概要」タブにおける深刻度の操作可能な項目の一覧です。
項目 | AlertHub 管理者 | AlertHub 閲覧者 |
---|---|---|
深刻度の一覧表示 | ◯ | ◯ |
深刻度の追加 | ◯ | ✕ |
深刻度の削除 | ◯ | ✕ |
深刻度のリセット | ◯ | ✕ |
イベント
各スコープ内の「概要」タブにおけるイベントの操作可能な項目の一覧です。
項目 | AlertHub 管理者 | AlertHub 閲覧者 |
---|---|---|
イベントの一覧表示 | ◯ | ◯ |
イベント情報の表示 | ◯ | ◯ |
実行履歴
各スコープ内の「概要」タブにおける実行履歴の操作可能な項目の一覧です。
項目 | AlertHub 管理者 | AlertHub 閲覧者 |
---|---|---|
アクションの実行履歴の一覧表示 | ◯ | ◯ |
アクション実行履歴情報の表示 | △ | △ |
ランブックの実行履歴の一覧表示 | ◯ | ◯ |
ランブック実行履歴情報の表示 | ◯ | ◯ |
※△:「Pigeon 連絡履歴」のリンクのみ、Pigeon 管理者または Pigeon 操作者でないと表示されません
ルール
「ルール」メニューまたは各スコープ内の「ルール」タブにおけるルールの操作可能な項目の一覧です。
項目 | AlertHub 管理者 | AlertHub 閲覧者 |
---|---|---|
ルールの一覧表示 | ◯ | ◯ |
ルール情報の表示 | ◯ | ◯ |
ルールの追加 | ◯ | ✕ |
ルールの編集・削除 | ◯ | ✕ |
ルールの無効化 | ◯ | ✕ |
ルールのコピー | ◯ | ✕ |
トリガー
各スコープ内の「トリガー」タブにおけるトリガーの操作可能な項目の一覧です。
項目 | AlertHub 管理者 | AlertHub 閲覧者 |
---|---|---|
トリガーの一覧表示 | ◯ | ◯ |
トリガー情報の表示 | ◯ | ◯ |
トリガーの追加 | ◯ | ✕ |
トリガーの編集・削除 | ◯ | ✕ |
トリガーの無効化 | ◯ | ✕ |
トリガーのコピー | ◯ | ✕ |
属性
各スコープ内の「設定」タブにおける属性の操作可能な項目の一覧です。
項目 | AlertHub 管理者 | AlertHub 閲覧者 |
---|---|---|
属性の一覧表示 | ◯ | ◯ |
属性の追加 | ◯ | ✕ |
属性の編集・削除 | ◯ | ✕ |
静観スケジュール
各スコープ内の「設定」タブにおける静観スケジュールの操作可能な項目の一覧です。
項目 | AlertHub 管理者 | AlertHub 閲覧者 |
---|---|---|
静観スケジュールの一覧表示 | ◯ | ◯ |
静観スケジュールの追加 | ◯ | ✕ |
静観スケジュールの編集・削除 | ◯ | ✕ |
受信スロット
「受信スロット」メニューの操作可能な項目の一覧です。
項目 | AlertHub 管理者 | AlertHub 閲覧者 |
---|---|---|
受信スロットの一覧表示 | ◯ | ◯ |
受信スロット情報の表示 | ◯ | ◯ |
受信スロットの追加 | ◯ | ✕ |
受信スロットの編集・削除 | ◯ | ✕ |
受信スロットのアクセスキーの再発行 | ◯ | ✕ |
アクション
「アクション」メニューの操作可能な項目の一覧です。
項目 | AlertHub 管理者 | AlertHub 閲覧者 |
---|---|---|
アクションの一覧表示 | ◯ | ◯ |
アクション情報の表示 | △1 | △1 |
アクションの追加 | △2 | ✕ |
アクションの編集・削除 | △2 | ✕ |
※△1:Pigeon アクションの情報表示には Pigeon 管理者または Pigeon 操作者ロールが必要です(Pigeon 操作者の場合、電話番号は表示されません)
※△2:Pigeon アクションの追加・変更には Pigeon 管理者または Pigeon 操作者ロールが必要です(Pigeon 操作者の場合、電話番号は表示されません)
ランブック
「ランブック」メニューの操作可能な項目の一覧です。
項目 | AlertHub 管理者 | AlertHub 閲覧者 |
---|---|---|
ランブックの一覧表示 | ◯ | ◯ |
ランブック情報の表示 | ◯ | ◯ |
ランブックの追加 | ◯ | ✕ |
ランブックの編集・削除 | ◯ | ✕ |
ランブックのコピー | ◯ | ✕ |
ランブックのステップの追加 | ◯ | ✕ |
ランブックのステップ情報の表示 | ◯ | ◯ |
ランブックのステップ情報の編集・削除 | ◯ | ✕ |
ランブックのステップの移動 | ◯ | ✕ |
ランブックのステップの編集・削除 | ◯ | ✕ |
ランブックのコネクションの追加・編集・削除 | ◯ | ✕ |
ランブックのフローの保存 | ◯ | ✕ |
ランブック実行履歴の一覧表示 | ◯ | ◯ |
ランブック実行履歴情報の表示 | ◯ | ◯ |
メッセージ
「メッセージ」メニューの操作可能な項目の一覧です。
項目 | AlertHub 管理者 | AlertHub 閲覧者 |
---|---|---|
メッセージの一覧表示 | ◯ | ◯ |
メッセージ情報の表示 | ◯ | ◯ |
「概要」タブの表示 | ◯ | ◯ |
「ルール実行履歴」タブの表示 | ◯ | ◯ |
「イベント」タブの表示 | ◯ | ◯ |
「ランブック実行履歴」タブの表示 | ◯ | ◯ |
通知先
「設定」メニューにおける通知先の操作可能な項目の一覧です。
項目 | AlertHub 管理者 | AlertHub 閲覧者 |
---|---|---|
通知先の一覧表示 | ◯ | ◯ |
通知先情報の表示 | ◯ | ◯ |
通知先の追加 | ◯ | ✕ |
通知先の編集・削除 | ◯ | ✕ |
Email アクション送信元
「設定」メニューにおける Email アクション送信元の操作可能な項目の一覧です。
項目 | AlertHub 管理者 | AlertHub 閲覧者 |
---|---|---|
Email アクション送信元の一覧表示 | ◯ | ◯ |
Email アクション送信元情報の表示 | ◯ | ◯ |
Email アクション送信元の追加 | ◯ | ✕ |
Email アクション送信元の編集・削除 | ◯ | ✕ |
Email アクション送信元のテスト送信 | ◯ | ✕ |
インポート・エクスポート
「ツール」メニューにおけるインポート・エクスポート操作可能な機能と項目の一覧です。
機能 |
---|
スコープ |
Email アクション送信元 |
アクション |
ランブック |
受信スロット |
ルール |
スコープ属性 |
スコープ静観スケジュール |
トリガー |
通知先 |
項目 | AlertHub 管理者 | AlertHub 閲覧者 |
---|---|---|
インポート・エクスポートの一覧表示 | ◯ | ✕ |
各機能のインポートファイルのアップロード | ◯ | ✕ |
各機能のインポートファイルのインポート実行 | ◯ | ✕ |
各機能のインポート履歴の一覧表示 | ◯ | ✕ |
各機能のインポート履歴情報の表示 | ◯ | ✕ |
各機能のエクスポート | ◯ | ✕ |
各機能のエクスポート履歴の一覧表示 | ◯ | ✕ |
各機能のエクスポート履歴情報の表示 | ◯ | ✕ |
各機能のエクスポートファイルのダウンロード | ◯ | ✕ |
その他
具体的な活用方法については、Kompira AlertHub 設定例集 もしくは当社製品サイトの Kompira シリーズ製品情報 >サービス活用方法 をご覧ください。
その他、本サービスについてご質問がございましたら、株式会社フィックスポイントの公式コミュニティにお問い合わせください。
仕様情報
AlertHub の仕様情報について記載します。
受信スロット
項目 | 内容 | 備考 |
---|---|---|
メッセージの受信形態 | メール/Webhook でのメッセージ受信が可能 | 受信スロット作成時に、メールアドレス/URLが生成される |
メールアドレス/URLの生成方法 | ランダム文字列 | |
メールアドレス/URLの冗長性 | 生成時、プライマリとセカンダリの2つが作成 | |
受信スロット表示名の上限 | 30文字 | |
受信メールサイズの上限 | 1件あたり30MB | メールとしてエンコードされたデータのサイズ 元となるテキストやファイルのサイズから増加する可能性があるため注意 メールデータが 30MB を超えた場合、エラーメールがメール送信元に送られる |
ランブック登録数の上限 | 1 | ランブックを登録した受信スロットは、ルールでは使用できないため注意 |
受信スロット作成数の上限 | 無制限 |
スコープ
項目 | 内容 | 備考 |
---|---|---|
スコープの表示名の上限 | 30文字 | |
スコープ一覧 | 表示名、ステータス(正常・警戒・障害)の絞り込み/検索が可能 | |
深刻度のリセット | 深刻度の自動復旧時間を設定可能 深刻度の手動リセットが可能 | 自動復旧時間は5分~24時間の間で設定可能 |
深刻度(閾値)の設定範囲 | 1~1000までの整数 | 警戒の閾値は 1 ~999 まで障害の閾値は 2 ~1000 までスコープごとに個別定義可能 |
スコープ作成数の上限 | 無制限 |
ルール
項目 | 内容 | 備考 |
---|---|---|
ルールの表示名の上限 | 30文字 | |
ルール一覧 | 表示名の検索/絞り込みが可能 | |
処理フロー登録数の上限 | 無制限 | 処理フローが登録されていない場合は、無条件にイベントが実行される |
処理フロー複数登録時の判定方法 | AND判定 | |
イベント登録数の上限 | 無制限 | |
イベント複数登録時の挙動 | 全てのイベントを実行 | |
ルールの無効化 | ルール一覧/スコープの詳細画面からルールの無効化が可能 | |
ルール作成数の上限 | 無制限 |
トリガー
項目 | 内容 | 備考 |
---|---|---|
トリガーの表示名の上限 | 30文字 | |
実行条件登録数の上限 | 無制限 | 実行条件が登録されていない場合は、無条件にアクションが実行される |
実行条件複数登録時の判定方法 | AND判定 | |
アクション登録数の上限 | 1 | アクションもしくはランブックを1つのみ登録可能 |
ランブック登録数の上限 | 1 | アクションもしくはランブックを1つのみ登録可能 |
トリガー作成数の上限 | 無制限 | |
トリガーの無効化 | スコープの詳細画面からトリガーの無効化が可能 |
アクション
項目 | 内容 | 備考 |
---|---|---|
アクションの種類 | Pigeonによる架電 メール Webhook | Webhook アクションのリクエスト先が以下の場合、アクション実行が失敗となる ・証明書エラーが発生している ・自己署名証明書を利用している |
アクションの表示名の上限 | 30文字 | |
アクション一覧 | 表示名の検索/絞り込みが可能 | |
アクション失敗時のリトライ | 30秒間隔で、最大3回のリトライを実行 | Webhook アクションにおいて、失敗理由が次の HTTP ステータスコードの場合はリトライしない ・400 Bad Request ・401 Unauthorized ・403 Forbidden ・404 Not Found ・407 Proxy Authentication Required |
webhook アクションのタイムアウト秒数 | 30 秒 | |
アクション作成数の上限 | 無制限 |
ランブック
項目 | 内容 | 備考 |
---|---|---|
ランブックの表示名の上限 | 30文字 | |
ランブック一覧 | 表示名の検索/絞り込みが可能 | |
ステップ登録数の上限 | 無制限 | |
ランブック作成数の上限 | 無制限 | |
処理時間の上限 | 無制限 | アクションステップから呼び出されているアクション実行のタイムアウトにより、実質的なタイムアウトになる可能性あり |
通知先
項目 | 内容 | 備考 |
---|---|---|
通知先の表示名の上限 | 30文字 | |
通知先登録数の上限 | 無制限 |
Email アクション送信元
項目 | 内容 | 備考 |
---|---|---|
送信者名の上限 | 255文字 | |
送信元アドレスの上限 | 255文字 | |
送信方法 | SendGrid/SMTP | SendGrid を選択した場合、SendGrid から払い出された API キーが必要 |
Email アクション送信元登録数の上限 | 無制限 |
静観スケジュール
項目 | 内容 | 備考 |
---|---|---|
静観スケジュールの表示名の上限 | 30文字 | |
繰り返し設定 | 毎日/毎週(複数曜日を指定可能)/毎月 単位で指定可能 | RFC 5545に沿った形式も指定可能 |
登録単位 | スコープごとに作成 | |
静観スケジュール作成数の上限 | 無制限 |
履歴
項目 | 内容 | 備考 |
---|---|---|
履歴保存期間 | メッセージ処理の実行履歴:1年間 ルールの実行履歴:30日間 | 受信したメッセージを画面上で確認できる期間は30日間 |
受信メッセージの確認 | メッセージ画面より確認可能 | 受信日時のタイムスタンプをクリックすると受信内容が表示される |
イベント実行履歴の確認 | メッセージ/スコープの詳細画面より確認可能 | メッセージ詳細のイベントタブ/スコープ詳細画面のタイムスタンプより確認可能 |
アクション実行履歴の確認 | スコープの詳細画面から確認可能 | 実行履歴のタイムスタンプをクリックするとレスポンスが表示される |
ランブック実行履歴の確認 | メッセージ/スコープの詳細画面/各ランブック編集画面より確認可能 | 以下の通り確認可能 メッセージ詳細のランブックタブ スコープ詳細画面のタイムスタンプ ランブック編集画面右上の「︙」 |
受信メッセージ件数 | Kompira cloud 共通メニュー(設定) > スペース > AlertHubの受信メッセージ数で確認可能 | デフォルトは、直近3ヶ月 指定により最大12ヶ月分参照可能 |
処理性能について
AlertHub には、占有オプションという個別オプションが設けられています。
占有オプションでは、顧客専用のインスタンスで処理を行います。
占有オプションを契約していない場合は、他の利用顧客とインスタンスを共有するため、性能的には他の利用顧客の影響を受ける可能性があります。
利用上の制限
想定を超える大量のメッセージの受信が確認された場合、該当する受信スロットを一時的に停止する場合があります。
占有オプションを契約している場合は対象外となります。
お客様の設定により停止する基準は異なりますが、以下が目安となります。
- 5 分間のメッセージの総受信数が 2,000 件を越えた場合
- ただし、メッセージの受信に対して行われるイベント発行やアクション実行の件数が多い場合などは、上記目安を下回る場合があります