受信メールの本文から特定の項目を抽出し、メール通知に埋め込む方法
AlertHub が監視対象のサーバーから受信したメールの情報を活用し、メールアクションで動的な通知を行うための設定例をご紹介します。
設定のポイント
スコープのトリガー作成時に設定できる「パラメーター加工フロー」を設定すると、受信メール(送信者アドレスや本文の文言など)から必要な情報を抽出し、送信先の指定やメッセージ本文へ動的に反映できます。1
今回は、受信メールから特定の項目を抽出し、送信するメールの宛先・件名・本文に埋め込んで通知する手順を解説します。
-
受信メールの件名
【障害発生】致命的な障害: WebServer01のCPU負荷が高騰しています -
受信メール本文
障害発生:CPU負荷が高すぎます
発生日時:2026/7/16 12:00:00
ホスト名:WebServer01
障害名: CPU utilization is too high on WebServer01
重大度:高
現在の値:95.00%
担当グループ:Webサーバー管理グループ
連絡先:maintenance_group@example.com
対処方法:xxxxxxxx
- 受信メールから抽出する項目
- メールヘッダー情報
- 送信元(送信者名)
- 送信元メールアドレス
- 送信先メールアドレス(to/cc)
- メール送信日時
- 件名
- アラート詳細情報(本文から抽出)
- ホスト名
- 発生日時
- 重大度
- 担当グループ
- 連絡先(メールアドレスのアカウント名)
- メールヘッダー情報
受信スロットの作成
画面横のメニューから受信スロットをクリックし、画面右上の「+」ボタンをクリックします。
ダイアログが表示されるため、以下の通り入力し、保存します。
- メールを選択します
- 任意の表示名を入力します
- 保存をクリックします
受信スロットが作成され一覧に表示されます。
表示名をクリックして受信スロットの詳細画面に遷移し、監視システムからの受信用メールアドレスを取得します。
スコープの作成
スコープを作成します。
画面横のメニューからスコープをクリックし、画面右上の「+」ボタンをクリックします。
ダイアログが表示されるため、以下の通り入力します。
- 任意の表示名を入力します
- 警戒判定閾値に任意の数値を設定します
- 障害判定閾値に任意の数値を設定します
- 必要に応じて「深刻度自動復旧の有効化」にチェックを入れ、復旧時間を指定します
- 保存をクリックします
ルールの作成
ルールを作成します。
画面横のメニューから「ルール」をクリックし、画面右上の「+」ボタンをクリックします。
- 任意の表示名を入力します
- 最初に作成した受信スロットを選択します
イベントの設定
「イベント(対象スコープを直接指定)」の「+」をクリックします。
ダイアログが表示されるため、以下の通り入力します。
- 「直接指定」を選択します
- 作成したスコープを選択します
- 「作成」をクリックします
イベントの編集画面が表示されるため、以下の通り入力します。
- 任意の深刻度名を入力します
- 数値欄に
1と入力します - プルダウンより「増やす」を選択します
- 保存をクリックします
アクションの作成
画面横のメニューから「アクション」をクリックし、画面右上の「メール」ボタンをクリックします。
ダイアログが表示されるため、以下の通り入力します。
- 表示名:任意の表示名を入力します
- メール送信先:メール送信先の名前とメールアドレスを入力します
- 名前:
{{group_name}} - メール:
{{contact}}
- 名前:
- 件名:
障害メールを受信しました --- {{message.content.subject}}と入力します - 本文:以下の内容を入力します
監視スコープ{{scope.displayName}}にて{{event.severityName}}の深刻度が上昇しています。
ホスト名 : {{hostname}}
障害発生日時 : {{incident_time}}
重大度 : {{severity}}
現在の深刻度:{{event.severity}}
■受信した内容は以下の通りです。
メール送信日時:{{message.metadata.date}}
メール送信元:{{message.metadata.from.email}}
メール送信先(To):
{{#message.metadata.to}}
{{email}}
{{/message.metadata.to}}
メール送信先(CC):
{{#message.metadata.cc}}
{{email}}
{{/message.metadata.cc}}
メール本文:
{{message.content.text}}
- 設定内で使用する
{{group_name}}や{{hostname}}などの変数は、「トリガーの作成」の「パラメーター加工フローの設定 」で抽出定義する一時フィールド名です。 - 送信先が複数指定されている場合でも、
{{#message.metadata.to}} {{email}} {{/message.metadata.to}}のようにセクション({{#...}})で囲むことで、すべてのメールアドレスを繰り返し展開して動的に出力できます( CC や BCC も同様です)。
その他 message など使用できるキーワードの埋め込みの方法については、Kompira AlertHub 基本マニュアル > 設定の流れ > アクションの作成 > 通知内容の設定 を参照してください。
- 「保存」をクリックします。
トリガーの作成
トリガーを作成します。
画面横のメニューから「スコープ」をクリックし、作成したスコープをクリックします。
スコープに紐づいたトリガーの一覧画面に遷移するため、「トリガー」タブをクリックし、画面右端の「+」をクリックします。
ダイアログが表示されるため、任意の表示名を入力します。
実行条件の設定
「実行条件」の「+」をクリックします。
ダイアログが表示されるため、「深刻度の増減を判定する」を選択し、作成をクリックします。
実行条件の編集画面が表示されるため、プルダウンより「増えた」を選択します。
パラメーター加工フローの設定
- 「パラメーター加工フロー」の「+」をクリックします
- ダイアログが表示されたら「フィールドから正規表現によって値をひとつ取り出す」を選択し、「作成」をクリックします
- 対象フィールド(
F1)にmessage.content.text(メール本文)を指定し、下表の通り正規表現と一時フィールドを設定します - 手順 1 〜 3 を繰り返し、以下の 5 つの設定をすべて作成します
| 設定項目 | 対象フィールド (F1) | 正規表現 (P1) | 保存先 (F2) |
|---|---|---|---|
| ホスト名 | message.content.text | ホスト名:\s*(.*) | hostname |
| 発生日時 | message.content.text | 発生日時:\s*(.*) | incident_time |
| 重大度 | message.content.text | 重大度:\s*(.*) | severity |
| 担当グループ | message.content.text | 担当グループ:\s*(.*) | group_name |
| 連絡先 | message.content.text | 連絡先:\s*(.*) | contact |
- 画面下部の「実行アクション」にて、作成した「メールアクション」を選択し、「保存」をクリックします
動作確認
「設定のポイント」で指定したメールを受信スロットのアドレスへ送信すると、各項目が自動で埋め込まれた通知メールが送信されます。
受信メッセージが Webhook 形式の場合も同じことができます。詳細は「2.9 webhook メッセージの内容を AlertHub 上で扱いたい」を参照してください。