Kompira AlertHub 基本マニュアル 目次

Kompira AlertHub 基本マニュアル

株式会社フィックスポイント の Kompira AlertHub マニュアルです。

最終更新日: 2024/03/01

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」(株式会社フィックスポイント(自社)運営)
WebhookWebアプリケーションでイベントが実行された際、外部サービスにHTTP で通知する仕組み
JSON形式を利用する

各機能とはたらき

AlertHub の各機能について解説をします。

各機能へは、以下の方法にてアクセスを行うことが可能です。

  • トップページ内オレンジ色の「AlertHub」領域内の各リンクをクリック
  • 左側メニュー領域にて「AlertHub」をドリルダウンし各リンクをクリック

前者はトップページでしか利用できませんが、後者はどのページからでも利用可能です。

※設定の手順については、「設定の流れ」を参照してください。

スコープ

スコープとは、監視対象の範囲を任意の単位に分け、その状況を深刻度で管理する要素です。

深刻度は監視項目ごとなどの単位で複数持たせることができます。

深刻度の最大値の変化によって「正常」「警戒」「障害」といったステータスを変化させたり、アラートの発生回数を捉えたりすることができます。

スコープ内の各メニュー

スコープ内の詳細な項目について説明します。

スコープを作成後、表示名をクリックすると、選択したスコープの詳細設定画面に遷移します。

BOyRE1fWkO

概要(スコープメニュー)

概要は、設定をしたスコープの現況を確認できる機能です。

スコープの深刻度やイベント、アクションの発生状況の確認が行えます。

ルール(スコープメニュー)

ルールは、選択したスコープに対して設定したルールの確認ができる機能です。

ルールを設定する場合は、左端メニュー領域、もしくはトップページの「ルール」より行ってください。
詳細は、「各機能とはたらき > ルール」を参照してください。

トリガー(スコープメニュー)

トリガーは、スコープの深刻度やステータスの変化などによって、アクションを実行するかを判断する機能です。

アクションの実行にはトリガーの設定が必要となります。

トリガーは、スコープごとに設定します。

設定(スコープメニュー)

設定は、選択したスコープの補足事項(属性1)やアクションを実行させたくない時間の設定(静観スケジュール2)が行える機能です。

スコープの深刻度の変化は、静観スケジュールを設定した時間内においても有効です。

例:毎週月曜から金曜の8:00~18:30の間はアクションの実行を停止したい場合
1

属性とは、スコープ固有の情報を登録できる機能です。登録した「属性」は、「ルール」においてスコープの条件指定に利用することが可能です。

2

静観スケジュールとは、アクションを実行しない時間間隔を設定する機能です。スコープ単位での設定が可能です。

受信スロット

受信スロットとは、メール・Webhook で送られてくるアラートの受け口となる要素です。

Webhook の URL やメールを受け取るメールアドレスを複数作成することができるため、システム別やサービス別に使い分けることが可能です。

受信スロットサンプル

  • メールで発行されたアドレス
  • Webhook で発行された URL

ルール

ルールは、受信スロットにて受信したアラートに対して、スコープの深刻度を増減させるかの条件を指定する要素です。

「受信スロット1」「処理フロー2」「イベント3」を設定することにより、ルールを作成します。

「処理フロー」では、メッセージ内の文字などを判断する設定をし、イベントを発生させる条件を設定することができます。

1

受信スロットとは、監視システムからメールや Webhook で通知を受信するための受け口となる要素のことです。

2

処理フローとは、指定した受信スロットに対しどうなった場合にイベントを発生させるかを振り分ける要素のことです。

3

イベントとは、スコープの深刻度を変化させる動作のことです。

アクション

アクションとは、メッセージを集約した結果を通知したり、後続の処理に情報を渡す機能です。

「メール送信」「Pigeon を利用した電話発信」「Webhook を利用した外部 API の呼び出し」の3つの機能があります。

受信スロットに受信したアラート内容の本文・差出人等について、変数を指定して記載し送信することも可能です。

ランブック

ランブックとは、AlertHub で行う条件判断やアクション実行を柔軟に行うための機能です。

受信スロットでメッセージ受信した後の条件判断と、トリガー判断を行った後のアクション実行にて利用することができます。

ランブックの使用方法については、「ランブック操作マニュアル」を参照してください。

メッセージ

メッセージでは、受信スロットにて受信をしたメッセージ内容を確認できます。

直近30日分のメッセージの確認が可能です。

事前に設定したルール適用の有無、イベント適用の有無も合わせて確認が可能となります。

設定

設定とは、下記2点の設定を行う機能です。

  • アクションとランブックの実行に失敗した場合の通知先の設定
  • メール送信アクションにおけるメール送信元の設定

ツール

ツールは、AlertHub の設定要素を CSV ファイルに一括出力することができる機能です。

また、CSV ファイルをインポートすることで一括で追加、更新、削除を行うことができます。

詳細な操作方法は、「AlertHub 一括操作マニュアル」を参照してください。

設定の流れ

設定の流れについて説明します。

Kompira AlertHub をご使用頂くにあたり、下記の順序に沿った設定が必要となります。

受信スロットの作成

はじめに、アラートやメールの受け口となる受信スロットを作成します。

「Webhook」では URL が、「メール」はメールアドレスが生成されます。

操作手順

AlertHub メニューより「受信スロット」を選択し、表示された画面右上の「+」マークをクリックします。


表示された画面内「種別」の「▼」を選択し、表示画面よりメール、または Webhook を選択します。

また、受信スロットにはランブックを設定することも可能です。

詳細は「ランブック操作マニュアル > 設定手順 > ランブック呼び出しの設定」を参照してください。

「表示名」に受信スロットとして使用する表示名を入力し、保存ボタンをクリックします。


受信スロット一覧に作成を行った受信スロットが表示されます。
作成を行った表示名をクリックすると、下記の通り受信スロット用のメールアドレスまたはWebhook 用の URL が表示されます。

スコープの作成

スコープを作成します。

スコープでは、状態を「正常」「警戒」「障害」とする深刻度値の設定も行えます。

操作手順

スコープの追加

AlertHub メニューより「スコープ」を選択し、画面右上の「+」マークをクリックします。

スコープ新規作成
表示された画面上の表示名に「スコープ」として使用する表示名を入力し、保存ボタンをクリックします。
  • 警戒・障害判定閾値は1000まで指定することができます

  • 「深刻度自動復旧を有効化」を選択すると最後のイベント発生時から指定した時間が経過した後に深刻度を自動で0にします(5分~24時間まで指定可能)

GyWX5hyvES

下記の通り、作成したスコープが表示されます。

スコープの表示名をクリックすると対象スコープの詳細画面に遷移します。

深刻度の追加(任意設定)

深刻度の追加を行います。

深刻度は、ルールの設定において、どの深刻度を上下させるかを指定する際に使用します。

深刻度を作成しなくても、ルールで指定した深刻度がイベントの発生時に自動で作られるため、任意で作成してください。

「概要」ページの「深刻度一覧」より、「+」をクリックします。

op1p7kaVHK

表示されたポップアップに任意の深刻度名を入力し、保存ボタンをクリックします。

vlZBkLBaWP

下記の通り、「深刻度一覧」に追加されます。

chrome_Z9A4PXmRCx
属性の追加(任意設定)

スコープ固有の情報を、下記の「設定」より「属性」として登録が可能です。

登録した「属性」は、後ほど作成する「ルール」においてスコープの条件指定に利用することが可能です。

ルールの作成

アラート内容を判断し、特定のスコープの深刻度変更を行うルールを設定します。

アラートメッセージの内容を条件判断し、イベントを発生させるスコープと深刻度の増減について設定を行います。

操作手順

AlertHub メニューより「ルール」を選択し、表示された画面右上の「+」マークをクリックします。

ルール新規作成

表示された画面上でルールを作成し、保存ボタンをクリックします。
設定する内容は下記の通りです。

  1. 使用するルールの表示名を入力します。
  2. 使用する受信スロットを選択します。
  3. 受信したアラートに対する処理フローを選択します。(「5.3.1.処理フローの設定」で詳しく説明)
  4. 処理フローの結果を受けて、対応するイベントを選択します。(「5.3.2.イベントの設定」で詳しく説明)

処理フローを設定しないと無条件でイベントが実行されます。

すでに作成済みのルールを流用したい場合は、該当のルールの右にある「︙」をクリックします。

表示されたメニューから「コピー」をクリックします。

コピーしたルールの内容が入力された状態でダイアログが表示されるため、必要に応じて編集し保存ボタンをクリックします。

処理フローの設定

処理フローの作成について説明します。

「処理フロー」の「+」ボタンをクリックすると、下記のポップアップが表れます。

行いたい処理を選択し、作成ボタンをクリックすると、詳細の設定ができるようになります。

各処理フローの設定方法について、詳しく説明します。

処理フローでは、フィールドを指定して条件判断や情報の加工を行うことができます。

フィールドの指定方法についての詳細は、「設定の流れ > フィールドの指定方法」を参照してください。

また、フィールド自体についての詳細な説明は、「設定の流れ > フィールドの種類と操作」を参照してください。

日時に対して加減算を行う

指定のフィールド1の日時2について、指定した秒数の加減算を行う場合に使用します。

  1. 「F1」でフィールドを指定します。

    NciZ8SiQvN
  2. 「N1」に任意の数値を入力します。

    NciZ8SiQvN
  3. 指定のフィールドの日時から前か後かを選択します。

    NciZ8SiQvN
  4. 「F2」に保存先の名称について、任意の文字列を指定します。

    NciZ8SiQvN

フィールドを数値比較する

指定のフィールド1に記載された数値について、その大小比較により深刻度を変更する場合に使用します。

  1. 「F1」でフィールドを指定します。

    メールの場合
    yarsOXLSgr
    webhook の場合
    WqQNjOUBbX
  2. 「N1」に任意の数値を入力します。

    メールの場合
    VrnJ8h1sUO
    webhook の場合
    FUowntb07f
  3. 「選択してください」のプルダウンより、「N1」に入力した数値と比較してどうなった場合に深刻度を変更するのかを選択します。

    メールの場合
    oYQDfGE2sT
    webhook の場合
    CQ0qT1JBxK

フィールドが正規表現にマッチするかどうか確認する

指定のフィールド1に記載された正規表現について、指定の正規表現にマッチした・しなかった際に深刻度を変更する場合に使用します。

  1. 「F1」でフィールドを指定します。 IFrGcYTw3U

  2. 「P1」に任意の正規表現を入力します。 e0ymw9ktPi

  3. 「P1」に入力した正規表現とマッチした場合かしなかった場合かを選択します。 Ww6jfBd6A2

フィールドを文字列比較する

指定のフィールド1に記載された文字列について、指定の文字列に等しい・等しくない際に深刻度を変更する場合に使用します。

  1. 「F1」でフィールドを指定します。

    メールの場合
    Fc2oFEuQt4
    webhook の場合
    f2YEVfD5Aw
  2. 「S1」に任意の文字列を入力します。

    メールの場合
    T41nlAOFXC
    webhook の場合
    PyzGPCNeQg
  3. 「S1」に入力した文字列と等しい場合か等しくない場合かを選択します。

    メールの場合
    sX9RbPE41x
    webhook の場合
    zsjVmy4i7K

フィールドが文字列を含むかを確認する

指定のフィールド1に記載された文字列を、包含した・しなかった際に深刻度を変更する場合に使用します。

  1. 「F1」でフィールドを指定します。

    メールの場合
    s3nOOVTDwm
    webhook の場合
    Ze9rD4HTsj
  2. 「S1」に任意の文字列を入力します。

    メールの場合
    HW5LjeHOxG
    webhook の場合
    vUysvtbbzo
  3. 「S1」に入力した文字列を包含する場合か包含しない場合かを選択します。

    メールの場合
    1epZqODahf
    webhook の場合
    8BsI7rIXVC

日時が指定した曜日における時刻の範囲内であるか確認する

指定したフィールド1の日時2が、指定した曜日且つ時間の範囲内である場合に深刻度を変更する際に使用します。

  1. 「F1」でフィールドを指定します。

    NciZ8SiQvN
  2. 曜日のボタンをクリックして指定したい曜日を1つ以上選択します。

    NciZ8SiQvN
  3. 「T1」に指定したい範囲の開始時刻を hh:mm:ss (時:分:秒) の形式3で入力します。

    NciZ8SiQvN
  4. 「T2」に指定したい範囲の終了時刻を hh:mm:ss (時:分:秒) の形式3で入力します。

    NciZ8SiQvN
  5. プルダウンより、指定した時間範囲のタイムゾーンを選択します。

    NciZ8SiQvN

日時が指定した時刻の範囲内であるか確認する

指定したフィールド1の日時2が、指定した時間の範囲内である場合に深刻度を変更する際に使用します。

  1. 「F1」でフィールドを指定します。

    NciZ8SiQvN
  2. 「T1」に指定したい範囲の開始時刻を hh:mm:ss (時:分:秒) の形式3で入力します。

    NciZ8SiQvN
  3. 「T2」に指定したい範囲の終了時刻を hh:mm:ss (時:分:秒) の形式3で入力します。

    NciZ8SiQvN
  4. プルダウンより、指定した時間範囲のタイムゾーンを選択します。

    NciZ8SiQvN

2つの日時の差分を計算する

2つのフィールド1の日時2について、差分の秒数を計算する場合に使用します。

差分結果がマイナスとなった場合、マイナス値が保存されます。

  1. 「F1」で差分計算で引く側のフィールドを指定します。

    NciZ8SiQvN
  2. 「F2」で差分計算で引かれる側のフィールドを選択します。

    NciZ8SiQvN
  3. 「F3」に保存先の名称について、任意の文字列を指定します。

    NciZ8SiQvN

フィールドが存在するかどうか確認する

指定したフィールド1が存在するか確認したい場合に使用します。

フィールドの値が 0,false,空文字等であってもフィールドは「存在する」扱いとなります。
ただし、フィールドの値が null の場合は「存在しない」扱いとなります。

  1. 「F1」に存在の有無を確認したいフィールドを指定します。 NciZ8SiQvN

  2. 「F1」のフィールドが存在する場合か存在しない場合かを選択します。 NciZ8SiQvN

現在の日時を取得する

現在の日時2を取得したい場合に使用します。

  1. 「F1」に保存先の名称について、任意の文字列を指定します。

    NciZ8SiQvN

フィールドを日時に変換する

指定のフィールド1の文字列を AlertHub で使用できる日時2の情報に変換する場合に使用します。

  1. 「F1」でフィールドを指定します。

    NciZ8SiQvN
  2. プルダウンより、変換元となる日時の文字列の形式を選択します。 NciZ8SiQvN

  3. 「F2」に保存先の名称について、任意の文字列を指定します。 NciZ8SiQvN

フィールドを JSON としてパースする

指定のフィールド1の内容を JSON パースして AlertHub 内の任意の場所に保存する際に使用します。

システムによっては Webhook 送信に対応しておらずメールのみを送れる場合があります。

その場合、本文を JSON 形式で送り JSON パースすることで、メールでも構造化データを取り扱えます。

  1. 「F1」でフィールドを指定します。
    JSON パースに関しては主にメール本文を使用します。 保存した値は、他の処理フロー等にて選択項目の代わりに使用できます。

    LaENhh7Mao
  2. 「F2」に保存先の名称について、任意の文字列を指定します。 PN02YRjwl1

フィールドから正規表現によって値をひとつ取り出す

メッセージ内容から値を取り出して他の処理フローやイベントで使う場合に使用します。

  1. 「F1」でフィールドを指定します。 StvmOg3ZkG

  2. 値を取り出すための正規表現を入力します。 5k9ekTW393

  3. 取得した値の保存先の名称について、任意の文字列を指定します。
    ※「message」から始まる名称は不可です。

    GaIIfkq3WH

保存した値の活用

保存した値は、他の処理フロー等にて選択項目の代わりに使用できます。

ただし、ルールの中でしか使用できないため、注意してください。

以下に活用例を記載します。

  1. 「フィールドから正規表現によって値をひとつ取り出す」を使って任意のフィールド名(今回は「hostname」)を設定し、正規表現によって指定した内容を保存します。

    8C9MolnLSU
  2. 「フィールドが文字列を含むかを確認する」にて、指定したフィールド名(「hostname」)を指定し、任意の文字列(今回は「web」)を含む場合に深刻度を変更する設定をします。

    NciZ8SiQvN
1

フィールドの指定について、詳しい設定方法は「設定の流れ > フィールドの指定」を参照してください。

2

AlertHub では、RFC3339 の書式(例:2022-01-02T15:04:05.123456789+09:00)で表現された日時の文字列を日時の情報として扱っています。日時を表す文字列は、「フィールドを日時に変換する」を使用することで RFC3339 に変換でき、日時の情報として扱うことが可能です。
日時の情報についての詳細は、「設定の流れ > フィールドの種類と操作」を参照してください。

3

時間の指定について、秒数(SS 部分)は省略可能です。

イベントの設定

イベントの作成について説明します。

イベントの作成では、対象スコープを直接指定するか条件指定するかによって操作方法が異なります。

「5.2. スコープの作成」にて作成したスコープを単純に指定する場合は、直接指定から作成します。

スコープ属性の値を条件としてスコープを指定する場合は、条件指定から作成します。

nGzwYQN3Do

直接指定

「+」ボタンをクリックすると、イベント新規作成のポップアップが表示されます。

「直接指定」か「受信データのパスで指定」を選択し1、対象のスコープを選択後、作成ボタンをクリックします。

KMLyht8l4V

作成したイベントに対し、深刻度名の指定を行います。

ここでは、「テスト1」が直接指定、「テスト2」が受信データのパスで指定(メール)、「テスト3」が受信データのパスで指定(webhook)です。

直接指定の「テスト1」には「5.2.スコープの作成」で作成した深刻度名を入力します。

受信データのパスで指定の「テスト2・3」はプルダウンより選択します1

※深刻度は事前に作成・指定しなくても、ルールで指定した深刻度がイベントの発生時に自動的に生成されます。

LOPzYvzguw

深刻度を変更するための数値を入力します。

iXVeZcKuxX

指定した深刻度をどうするのかを選択し、右下の保存ボタンをクリックします。

MrpxZ3fDb4

条件指定

「+」ボタンをクリックすると、イベント新規作成のポップアップが表示されます。

「直接指定」か「受信データのパスで指定」を選択し1、作成ボタンをクリックします。

TQ14ovPZtQ

下記のような画面が表示されているため、中央の「+」ボタンをクリックします。

yQU481FDYL

ここでも対象のスコープについて「直接指定」か「受信データのパスで指定」を選択します。

作成をクリックすると、下記のような画面が表示されます。

どちらの場合も、「5.2.スコープの作成」の「属性の追加」にて作成した属性から、任意の属性名を指定します。

ACXxZfmbq5

直接指定の場合、指定したい属性に対する値を入力します2

受信データのパスで指定の場合、該当のものを選択します1

vo4ekjKTGy

対応する深刻度について、上記「直接指定」項の直接指定(テスト1)を参照し入力します。

全て入力が完了したら、右下の保存ボタンをクリックします。

nx3sXwQthy

条件指定の最初に「受信データのパスで指定」を選択した場合は、下記通り画面が表示されます。

スコープについては本項の「条件指定」項と同様に設定し、深刻度については「直接指定」項の受信データのパス(テスト2・3)を参照してください。

obHnwH4Pwg
1

「受信データのパスで指定」について、詳しい設定方法は「設定の流れ > ルールの作成 > 「受信データのパスで指定」詳細設定」を参照してください。

2

「5.2.スコープの作成」の「属性の追加」にて属性を作成した際に入力した値です。
AlertHub メニューより、「スコープ > 該当スコープ詳細 > 設定 」から確認できます。 Ov2kACcjnx

受信データのパスによる指定方法

「受信データのパスで指定」の詳細について説明します。

「受信データのパスで指定」を選択した場合、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 のリクエストボディの内容は以下の通りです。
    KItx4ASsmI
    • 指定するスコープには、予め下記の属性が登録されています。
  • 設定方法
  1. プルダウンより、「リクエストボディの JSON プロパティ:message.content.data」を選択し、指定したいリクエストボディの要素を後ろに入力します。

    CMnXehsl0R
  2. イベントを設定します。
    今回は、①「対象スコープを直接指定」と②「対象スコープを条件指定」を行いました。

    ①「webhook test」のスコープにおいて、「webhook error」という深刻度を1増やす設定

    J3x3W1uogz

    ②スコープ属性「host」が「01」と一致するスコープに対して、リクエストボディの「host」という項目を深刻度名として、深刻度を3にする設定

    KItx4ASsmI
  3. 上記設定後、該当の webhook を受信すると、下記の通りスコープの深刻度が変化します。

    Vqye0EGYuG

    深刻度一覧とイベントでは、イベントにて設定した内容が反映されていることが分かります。

    条件指定にて、リクエストボディの「host」を深刻度とする指定をしたため、「01」と表示されています。

    chrome_OQytIGzFre chrome_cKq0rblpr9

アクションの作成

アラート発生時のルールに対応して実行するアクションを設定します。

アクションには、メッセージの情報やパラメータ加工フローにて取り出した値を変数で埋め込むことが可能です。

通知内容の詳細な設定については、設定の流れ > アクションの作成 > 通知内容の設定 を参照してください。

操作手順

AlertHub メニューより「アクション」を選択し、表示された画面右上の「メール・PIGEON・WEBHOOK」いずれかのマークをクリックします。

qGfWXwYjXG

各アクションの種類に応じて設定を行います。

各アクションの具体的な設定方法については、次項以降を参照してください。

設定が完了すると設定したアクションがアクション一覧に表示されます。

qGfWXwYjXG

メールアクションの設定

「メール」をクリックすると、メールアクションの編集画面が表示されるため、以下の通り設定します。

  1. 任意の表示名を入力します

  2. メールアクションの送信先(To,Cc,Bcc)を入力します

  3. 任意の件名を入力します

  4. 送信したい本文の形式を選択します

  5. 本文を入力します1

  6. 保存ボタンをクリックします


メールアクションでは、選択する形式により下記の通り Content-Type が変更されます。

  • テキスト形式:Content-Type: text/plain
  • HTML 形式:Content-Type: text/html
  • 両方を選択:Content-Type: multipart/alternative

HTML 形式の場合、AlertHub が HTML 形式で受信したメールをそのまま記載することも可能です。

受信した HTML メールを本文に記載するには、以下のように値を埋め込みます1

1

通知内容の詳細な設定については、設定の流れ > アクションの作成 > 通知内容の設定 を参照してください。

Pigeon アクションの設定

「PIGEON」をクリックすると、Pigeon アクションの編集画面が表示されるため、以下の通り設定します1

  1. 任意のアクションの表示名を入力します

  2. コールフローを選択します

  3. ガイダンスを選択します

  4. 保存ボタンをクリックします

1

事前に Kompira Pigeon の設定が必要となります。
Pigeon の設定については、Kompira Pigeon 基本マニュアル を参照してください。

webhook アクションの設定

「WEBHOOK」をクリックすると、webhook アクションの編集画面が表示されるため、以下の通り設定します。

  1. 任意のアクションの表示名を入力します

  2. 連携先サービスの URL を入力します

  3. 連携内容に応じた HTTP メソッドを選択します

  4. リクエストの本文を JSON 形式などで入力します1

  5. 必要に応じて HTTPを ヘッダを設定します

  6. 保存ボタンをクリックします

1

通知内容の詳細な設定については、設定の流れ > アクションの作成 > 通知内容の設定 を参照してください。

通知内容の設定

メールや webhook 通知内容には、mustache を使って任意の値を埋め込むことができます。

mustache を埋め込める範囲は以下の通りです。

アクションの種類対応範囲
メールTo/Cc/Bcc の名前・メールアドレス、件名、本文
webhookwebhook 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 メニューより「スコープ」を選択し、表示されたスコープ一覧から設定したいスコープを選択し詳細画面を開きます。


詳細画面よりトリガーを選択し、右上の「+」をクリックします。

表示された画面上でトリガーを作成し、保存ボタンをクリックします。
設定する内容は下記の通りです。

  1. 使用するトリガーの表示名を入力します。
  2. トリガーの実行条件を選択します。
  3. 関連メッセージを必要に応じて有効化し、フィルター選択します。(任意設定)
  4. パラメーター加工フローを選択します。(任意設定)
  5. トリガーが実行された場合のアクションをプルダウンより選択します。

実行条件を設定しないと無条件でアクションが実行されます。
また、関連メッセージとパラメーター加工フローの設定は必須ではありません。

トリガーでは、実行する内容としてランブックを設定することも可能です。
詳細は「ランブック操作マニュアル > 設定手順 > ランブック呼び出しの設定」を参照してください。

すでに作成済みのトリガーを流用したい場合は、該当のトリガーの右にある「︙」をクリックします。

表示されたメニューから「コピー」をクリックします。

コピーしたトリガーの内容が入力された状態でダイアログが表示されるため、必要に応じて編集し保存ボタンをクリックします。

実行条件の設定

実行条件の作成について説明します。

「実行条件」の「+」ボタンをクリックすると、下記のポップアップが表れます。

行いたい処理を選択し、作成ボタンをクリックすると、詳細の設定ができるようになります。

POWERPNT_oy2gYCIE16

各実行条件の設定方法について、以下で詳しく説明します。

直近のアクション実行件数を指定値と比較する

過去n秒以内にm回アクションが発生した際にアクションを実行させたい場合に使用します。

  1. 「T1」に任意の秒数を入力します。
  2. 「N1」に任意の回数を入力します。
  3. プルダウンより、「N1」で設定した回数と比較してどうなった場合にアクションを実行させるかを選択します。
VmUo21nX2G

指定条件を満たす直近のイベント件数を指定値と比較する

過去n秒以内の深刻度やその変化量について、指定した値のイベントがm回発生した際にアクションを実行させたい場合に使用します。

  1. 「T1」に任意の秒数を入力します。

  2. プルダウンより、どの数値に着目したいかを選択します。

    VmUo21nX2G
  3. 「N1」に2で着目した項目について、任意の数値を入力します。

  4. プルダウンより、「N1」の数値に対してどうなった場合のイベントについてアクションを起こすか選択します。

    VmUo21nX2G
  5. 「N2」に任意の回数を入力します。

  6. プルダウンより、「N2」で設定した回数と比較してどうなった場合にアクションを実行させるかを選択します。

    VmUo21nX2G

一定時間経過後のイベントのフィールドを指定値と比較する

イベント発生からn秒経過後における深刻度の変化量によってアクションを実行させたい場合に使用します。

  1. 「T1」に任意の秒数を入力します。

  2. プルダウンより、どの数値に着目したいかを選択します。

    VmUo21nX2G
  3. 「N1」に2で着目した項目について、任意の数値を入力します。

  4. プルダウンより、「N2」で設定した数値と比較してどうなった場合にアクションを実行させるかを選択します。

    VmUo21nX2G

深刻度の増減を判定する

単純に深刻度の増減によってアクションを実行させたい場合に使用します。

プルダウンより、増えた場合か減った場合かを選択します。

chrome_ydv8VJew53

イベントの深刻度名を指定値と比較する

イベントが起こったスコープの深刻度名を指定してアクションを実行させたい場合に使用します。

  1. 「S1」に指定したい深刻度名を入力します。
  2. プルダウンより、「S1」と等しい場合か等しくない場合かを選択します。
qehzhXQ660

イベントのフィールドを指定値と比較する

単純に深刻度の数値によってアクションを実行させたい場合に使用します。

  1. プルダウンより、どの数値に着目するかを選択します。
  2. 「N1」に任意の数値を入力します。
  3. プルダウンより、「N1」で設定した数値と比較してどうなった場合にアクションを実行させるかを選択します。
XFVZvNhRFh

一定時間経過後の指定した名前を持つ深刻度の値を指定値と比較する

イベント発生からn秒経過後において、指定した深刻度名の深刻度によってアクションを実行させたい場合に使用します。

  1. 「T1」に任意の秒数を入力します。
  2. 「S1」に指定したい深刻度名を入力します。
  3. 「N1」に任意の数値を入力します。
  4. プルダウンより、「N1」で設定した数値と比較してどうなった場合にアクションを実行させるかを選択します。
V9BUml0LK6

指定した名前を持つ深刻度の値を指定値と比較する

指定した深刻度名の深刻度によってアクションを実行させたい場合に使用します。

  1. 「S1」に指定したい深刻度名を入力します。
  2. 「N1」に任意の数値を入力します。
  3. プルダウンより、「N1」で設定した数値と比較してどうなった場合にアクションを実行させるかを選択します。
F4aCnrMbZr

一定時間経過後のスコープステータスを指定値と比較する

イベント発生からn秒経過後に、スコープステータスが「正常/警戒/障害」の際にアクションを実行させたい場合に使用します。

  1. 任意の秒数を入力します。
  2. プルダウンより、指定したいステータスを選択します。
  3. プルダウンより、指定したステータスと等しい場合か等しくない場合かを選択します。
lGhqjBjfWd

スコープステータスを指定値と比較する

単純にスコープステータスが「正常/警戒/障害」の際にアクションを実行させたい場合に使用します。

  1. プルダウンより、指定したいステータスを選択します。
  2. プルダウンより、指定したステータスと等しい場合か等しくない場合かを選択します。
Iqu20vzmmq

関連メッセージの設定

関連メッセージの設定について説明します。

関連メッセージは、トリガーの実行条件で時間経過を伴う条件を使用した場合に、その経過時間内にイベントを発生させたメッセージの情報をアクションで利用するための機能です。

関連メッセージの動作

関連メッセージは、トリガーの実行条件で以下の時間経過を伴う条件を使用した場合に利用できます。

実行条件名関連メッセージとする時間方向
指定条件を満たす直近のイベント件数を指定値と比較するイベント発生以前の時間
一定時間経過後のイベントのフィールドを指定値と比較するイベント発生以後の時間
一定時間経過後の指定した名前を持つ深刻度の値を指定値と比較するイベント発生以後の時間
一定時間経過後のスコープステータスを指定値と比較するイベント発生以後の時間


ここでは以下の様な設定をした場合を例に説明します。

- 「変化前の深刻度」が「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件が上限となります。 relatedMessageCount は関連メッセージの実際の件数を持ちます。

関連メッセージが1,000件だった場合には、relatedMessages によって展開される情報は 100件までとなりますが、relatedMessageCount の値は「1000」となります。

関連メッセージフィルター

関連メッセージ機能の基本動作では、実行条件で指定された経過時間内に発生した全てのイベントに関わるメッセージが関連メッセージとなります。

トリガー内で関連メッセージのフィルターを設定することで、イベントの内容を条件にして関連メッセージを絞り込むことができます。

「関連メッセージフィルター」を有効化した上で「+」ボタンをクリックすると、下記のポップアップが表れます。
使用したいフィルターを選択し、作成ボタンをクリックすると、詳細の設定ができるようになります。 qGfWXwYjXG

以下では各フィルターの設定について説明します。

深刻度の増減を判定する

単純に深刻度の増減によってアクションを実行させたい場合に使用します。

プルダウンより、増えた場合か減った場合かを選択します。

chrome_ydv8VJew53

イベントの深刻度名を起点イベントの深刻度名と比較する

トリガーが動作する起点となったイベントの深刻度名と同じ深刻度名でイベントを限定したい場合に使用します。 プルダウンより、等しいか等しくないかを選択します。

qehzhXQ660

イベントの深刻度名を指定値と比較する

イベントが起こったスコープの深刻度名を指定してイベントを限定したい場合に使用します。

  1. 「S1」に指定したい深刻度名を入力します。
  2. プルダウンより、「S1」と等しい場合か等しくない場合かを選択します。
qehzhXQ660

イベントのフィールドを指定値と比較する

単純に深刻度の数値によってイベントを限定したい場合に使用します。

  1. プルダウンより、どの数値に着目するかを選択します。
  2. 「N1」に任意の数値を入力します。
  3. プルダウンより、「N1」で設定した数値と比較してどうなった場合にアクションを実行させるかを選択します。
XFVZvNhRFh

パラメーター加工フローの設定

パラメーター加工フローの作成について説明します。

「パラメーター加工フロー」の「+」ボタンをクリックすると、下記のポップアップが表れます。

行いたい処理を選択し、作成ボタンをクリックすると、詳細の設定ができるようになります。

t6DZR7r3Oq

フィールドを JSON としてパースする

指定のフィールドの内容を JSON パースして AlertHub 内の任意の場所に保存する際に使用します。

システムによっては Webhook 送信に対応しておらずメールのみを送れる場合があります。

その場合、本文を JSON 形式で送り JSON パースすることで、メールでも構造化データを取り扱えます。

  1. 「F1」に指定のフィールドを入力します。
    ※主な入力項目については、下表1を参照ください。
  2. 「F2」に保存先の名称について、任意の文字列を指定します。
t6DZR7r3Oq

フィールドから正規表現によって値をひとつ取り出す

メッセージ内容から値を取り出して他の処理フローやイベントで使う場合に使用します。

  1. 「F1」に指定のフィールドを入力します。
    ※主な入力項目については、下表1を参照ください。
  2. 「P1」に値を取り出すための正規表現を設定してください。(「hostname:¥s*(¥S+)」等)
  3. 「F2」に保存先の名称について、任意の文字列を指定します。
    ※「message」から始まる名称は不可
t6DZR7r3Oq
1

主な入力項目は以下の通りです。フィールドの指定について、詳しい設定方法は「設定の流れ > ルールの作成 > フィールドの指定」を参照してください。

項目入力内容
件名message.content.subject
本文(テキスト形式)message.content.text
本文(HTML形式)message.content.html
差出人の名前message.metadata.from.name
差出人のメールアドレスmessage.metadata.from.email

フィールドの指定方法

ルール、アクション、トリガーで AlertHub の各種情報を取得するためのフィールドの指定方法について説明します。

フィールドについての詳細な説明は、「設定の流れ > フィールドの種類と操作」を参照してください。

message

メッセージの詳細を取得します。

受信メッセージが webhook の場合

主に取得可能な情報と入力値は下記の通りです。

取得したい内容入力する値
リクエストボディ全体の内容message.content.body
リクエストボディをパースした結果の内容message.content.data
リクエストを受信した URLmessage.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 とします。

さらに、ルール/トリガー/ランブックでは、リストの内容を取得することもできます。
リストとなっている relations123 を取得したい場合は、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 とします。

1

リストの内容を指定する場合、最初の要素を 0 番として昇順で指定します。

2

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 形式のメッセージに含まれる数値や、数値として解釈可能な文字列について、数値として扱うことができます。

数値の情報は、処理フロー等で任意に設定した数値との比較が行えます。

下記 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 82202 Jan 22 15:04 JST
RFC 822Z02 Jan 22 15:04 +0900
RFC 850Sunday, 02-Jan-22 15:04:05 JST
RFC 1123Sun, 02 Jan 2022 15:04:05 JST
RFC 1123ZSun, 02 Jan 2022 15:04:05 +0900
RFC 33392022-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"
  }
}

ルールの処理フローにおいて日時として情報を扱っている項目は下記の通りです。

ランブックでは、以下のステップ項目において日時として情報を扱っています。

フィールドの指定パターン

フィールドの指定は、情報を取得するために指定する場合と情報を保存するために指定する場合に分かれます。

処理フローの「フィールドを日時に変換する」を例に説明します。

今回は、下記の通り 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つ指定する必要があります。

t6DZR7r3Oq

「F1」では、上記の通り受信した webhoook メッセージの情報が保存されたフィールドを指定します。

規定の指定方法によるフィールドの指定についての詳細は、「設定の流れ > フィールドの指定方法」を参照してください。

今回は、webhook で受信したメッセージにおいて message 中の content 下、datadate を指定したいため、message.content.data.date と入力します。

t6DZR7r3Oq

一方「F2」では、日時に変換した情報を保存するフィールドの名称を指定します。

保存先のフィールドの名称は自身で任意に設定できます。

今回は、date としました。

t6DZR7r3Oq

ランブックを使用している場合は、保存されたフィールドを実行履歴の出力値で確認することができます。

下記コードブロックの一番下に "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 メニューより「設定」を選択し、「通知先」の右にある「+」マークをクリックします。

t6DZR7r3Oq

ダイアログが表示されるため、以下の通り入力します。

  1. 任意の名前を入力します
  2. 通知先に設定したいメールアドレスを入力します
  3. 保存ボタンをクリックします
t6DZR7r3Oq

以下の通り、作成した通知先が通知先一覧画面に表示されます。

t6DZR7r3Oq

Email アクション送信元の設定

Email アクション送信元は、メール送信アクションにおいて、デフォルトの noreply@kompira.jp 以外からメールを送信したい場合に設定します。

AlertHub メニューより「設定」を選択し、「Email アクション送信元」の右にある「+」マークをクリックします。

t6DZR7r3Oq

ダイアログが表示されるため、以下の通り入力します。

  1. Email アクションの送信者に設定したい名前を入力します
  2. Email アクション送信元に設定したいメールアドレスを入力します
  3. 送信方法を選択します
t6DZR7r3Oq

SendGrid の場合

SendGrid を利用してメールを送信する場合、SendGrid の API キーが必要です。

SendGrid の API キーについては、公式ドキュメント を参照してください。

API キーを入力後、保存ボタンをクリックします。

t6DZR7r3Oq

SMTP の場合

SMTP を利用してメールを送信する場合、ご使用のメーラーにて SMTP サーバーの設定を行い、以下の通り必要項目を入力します。

  1. サーバー名を入力します
  2. ポート番号を入力します
  3. 利用する通信の暗号化方法を選択します
  4. 利用する認証方式を選択します
  5. 保存ボタンをクリックします
t6DZR7r3Oq

認証方法について PLAIN もしくは CRAM-MD5 を選択した場合、別途認証情報としてユーザー名とパスワードが必要になります。

t6DZR7r3Oq

以下の通り、作成した Email アクション送信元が Email アクション送信元一覧画面に表示されます。

t6DZR7r3Oq

テスト送信

テスト送信を行いたい場合は、編集画面右下もしくは一覧画面右端の「︙」にある「テスト送信」をクリックします。

t6DZR7r3Oq

ダイアログが表示されるため、送信先のメールアドレスを入力し送信ボタンをクリックします。

t6DZR7r3Oq

その他

具体的な活用方法については、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 での連携が可能
アクションの表示名の上限30文字
アクション一覧表示名の検索/絞り込みが可能
アクション失敗時のリトライ30秒間隔で、最大3回のリトライを実行
webhook アクションのタイムアウト秒数30 秒
アクション作成数の上限無制限

ランブック

項目内容備考
ランブックの表示名の上限30文字
ランブック一覧表示名の検索/絞り込みが可能
ステップ登録数の上限無制限
ランブック作成数の上限無制限
処理時間の上限無制限アクションステップから呼び出されているアクション実行のタイムアウトにより、実質的なタイムアウトになる可能性あり

通知先

項目内容備考
通知先の表示名の上限30文字
通知先登録数の上限無制限

Email アクション送信元

項目内容備考
送信者名の上限255文字
送信元アドレスの上限255文字
送信方法SendGrid/SMTPSendGrid を選択した場合、SendGrid から払い出された API キーが必要
Email アクション送信元登録数の上限無制限

静観スケジュール

項目内容備考
静観スケジュールの表示名の上限30文字
繰り返し設定毎日/毎週(複数曜日指定可能)/毎月 単位で指定可能RFC 5545に沿った形式も指定可能
登録単位スコープごとに作成
静観スケジュール作成数の上限無制限

履歴

項目内容備考
履歴保存期間メッセージ処理の実行履歴:1年間
ルールの実行履歴:30日間
受信したメッセージを画面上で確認できる期間は30日間
受信メッセージの確認メッセージ画面より確認可能受信日時のタイムスタンプをクリックすると受信内容が表示される
イベント実行履歴の確認メッセージ/スコープの詳細画面より確認可能メッセージ詳細のイベントタブ/スコープ詳細画面のタイムスタンプより確認可能
アクション実行履歴の確認スコープの詳細画面から確認可能実行履歴のタイムスタンプをクリックするとレスポンスが表示される
ランブック実行履歴の確認メッセージ/スコープの詳細画面/各ランブック編集画面より確認可能以下の通り確認可能
メッセージ詳細のランブックタブ
スコープ詳細画面のタイムスタンプ
ランブック編集画面右上の「︙」
受信メッセージ件数Kompira cloud 共通メニュー(設定) > スペース > AlertHubの受信メッセージ数で確認可能デフォルトは、直近3ヶ月
指定により最大12ヶ月分参照可能

処理性能について

AlertHub には、占有オプションという個別オプションが設けられています。

占有オプションでは、顧客専用のインスタンスで処理を行います。

占有オプションを契約していない場合は、他の利用顧客とインスタンスを共有するため、性能的には他の利用顧客の影響を受ける可能性があります。

利用上の制限

想定を超える大量のメッセージの受信が確認された場合、該当する受信スロットを一時的に停止する場合があります。

占有オプションを契約している場合は対象外となります。

お客様の設定により停止する基準は異なりますが、以下が目安となります。

  • 5分間のメッセージの総受信数が2,000件を越えた場合
    • ただし、メッセージの受信に対して行われるイベント発行やアクション実行の件数が多い場合などは、上記目安を下回る場合があります