静観スケジュールの設定について
完了ご担当者様
いつもお世話になっております。
静観スケジュールの設定について質問です。
スコープで静観スケジュールの設定を行ったのですが
設定した時間でもメールが届きました。
設定した値は下記のとおりです。
■ランブック
①イベント:スコープ名:AAA‐直接指定‐深刻度名○○を1にする
②アクション:メール
■スコープ:静観スケジュール
開始:2022/12/19 10:00
終了:2022/12/19 11:00
■スコープ:イベントの実行時間
・2022/12/19 10:54:50
・2022/12/19 10:52:40
■メールの受信時間
・2022/12/19 (月) 10:55
・2022/12/19 (月) 10:53
上記以外に必要な設定はありますか。
お手数ですがご回答よろしくお願いします。
-
正式なコメント
先の質問と合わせて回答させていただきます。
ランブックで、深刻度の増加と同時にメールの送信も行っていらっしゃるものとお見受けします。
ランブックでは深刻度の増加のみを行い、トリガーにメール送信のアクションを指定いただくと良いかと存じます。詳しくご説明します。
現在、トリガーの実行条件にて、初報から1時間はアラートが鳴らないような設定がなされています。
ですが、その前段のルール(ランブック)にて、深刻度の増加と同時にメールの送信も実行されているため、トリガーの実行条件が適用されず、初報から1時間以内であってもアラートが鳴っているものと思われます。また、静観スケジュールの対象となるのは、トリガーに指定されたアクションもしくはランブックです。
受信スロット直後のランブックは対象外であるため、静観スケジュールを設定いただいた時間内であってもメールの送信が行われているものと思われます。なお、深刻度の増加のみであればランブックを使用せずとも、ルールのみで実現可能です。
また時間的な判定はランブックでは出来ず、トリガーでのみ設定可能です。コメントアクション -
ご回答ありがとうございます。
初報のみアラートを鳴らし一時間経過後再度鳴らす設定と静観スケジュール設定について確認が取れました。
ありがとうございます。「関連メッセージ件数の設定例」の下記の設定はどちらのメニューから、どの手順で設定しますか。
♦-----------------------♦
[{{relatedMessageCount}}]件の異常を検知しました[3]件の異常を検知しました
{{#relatedMessages}}
- {{content.subject}} [{{metadata.date}}]
{{/relatedMessages}}
♦-----------------------♦ご回答よろしくお願いします。
-
メールもしくは webhook 通知の中に、関連メッセージの件数の情報を入れることが出来ます。
こちらは、「アクション」メニューからご設定いただけます。詳しくはマニュアルの下記ページをご参照下さい。
https://fixpoint.github.io/alerthub-manual/notification-content.html -
記述通りにメールの本文欄に記載したところ
イベントで検知していますがメールは送信されず
タイムスタンプをクリックすると
リトライ回数が3回の書いてあり失敗理由は下記の文言が記載されてありました。failed to send email: 400 Bad Request: The content value must be a string at least one character in length.
書いてあるRequest: content 値というのは監視システム側で設定するものかと考えているのですがKompiraでもRequest: content 値を正しく認識させる設定はありますか。
ご回答お願いします。
-
今回の場合、content はメール本文を指します。
メール本文が空文字のアクションを実行しようとすると、今回のエラーとなります。今回、メール本文に関連メッセージ情報を記載いただいていますが、この部分が空文字になってしまっているものと思われます。
このようになるのは、下記のいずれかの場合です。
- 関連メッセージ機能が無効になっている
- 関連メッセージ機能が有効になっているが、関連メッセージフィルターにより、関連メッセージが0件になっている
関連メッセージフィルターの詳細については、下記ページをご参照下さい。
https://fixpoint.github.io/alerthub-manual/make-related-message-filter.html
なお不要であれば、関連メッセージフィルターは設定せずとも、単に機能を有効化するだけで関連メッセージ機能をお使いいただけます。お手数ですがトリガー設定にて、関連メッセージ機能が有効であるか、また関連メッセージフィルターが適当であるかをご確認いただけますでしょうか。
-
上記の質問事項についての設定値を記載します。
目的としては
・60秒間の間に届いたアラートの件数を件名に表示させたい
・届いたアラートの件名をメールの本文をリスト化させたい例)60秒のあいだに3件のアラートを受信した場合
メールが届いたときに上記のような表示にさせたいと考えています。
そのために以下の設定を行いました。[スコープ]-[ルール]
・受信スロット:Kompira_aggregation_test6
・深刻度名Kompira_aggregation_test6を1増やす[トリガー]
・60秒経過後、最新の深刻度が1以上の値である
・深刻度が増えた
・変化前の深刻度が0と等しい値である[アクション]
・メール(メールの本文を掲載する)
・メール件名
[{{relatedMessageCount}}]件の異常を検知しました
・本文
{{#relatedMessages}}
- {{content.subject}} [{{metadata.date}}]
{{/relatedMessages}}
こちらの設定で間違っている箇所はありますでしょうか。ルール
トリガー
アクションのメールの記載文
-
ご回答ありがとうございます。
たしかに関連メッセージの設定が抜けていました。深刻度名と等しい設定にすることでメールが件名を検知してくれました。
60秒間の間に5件テスト通知を送ったところ、
[5]件の異常を検知しました
と件名に表示されました。
本文では
- []
- []
- []
- []
- []
と表示されました。
監視システム(Zabbix)では
件名:SHIMADATEST
本文:TEST
と設定してテスト通知を送っています。
テスト通知で設定した件名がメール本文に反映されていないのはKompira側でどのような設定が抜けているかご教授いただければ幸いです。
-
ご共有ありがとうございます。
content.subject 及び metadata.date ですが、受信メッセージがメールの場合のみ使用可能な情報です。
https://fixpoint.github.io/alerthub-manual/setting-field.html#%E5%8F%97%E4%BF%A1%E3%83%A1%E3%83%83%E3%82%BB%E3%83%BC%E3%82%B8%E3%81%8C%E3%83%A1%E3%83%BC%E3%83%AB%E3%81%AE%E5%A0%B4%E5%90%88受信メッセージが webhook の場合は、下記リンク先に記載の情報をご使用下さい。
https://fixpoint.github.io/alerthub-manual/setting-field.html#%E5%8F%97%E4%BF%A1%E3%83%A1%E3%83%83%E3%82%BB%E3%83%BC%E3%82%B8%E3%81%8C-webhook-%E3%81%AE%E5%A0%B4%E5%90%88なお今回ご共有いただいた webhook の受信メッセージですが、リクエストボディのパースに失敗しております。
これは、Content-Type ヘッダが application/json では無いためです。
引き続き webhook で設定される場合は、監視システム側で Content-Type として application/json をご指定下さい。擬似的に curl で Kompira Cloud に webhook メッセージを送信した場合の例を共有いたします。
curl -X POST -H 'Content-Type: application/json' -d "{ \"text\": \"HTTP PROBLEM\", \"host\": \"vo-demo-wp2\", \"trigger\": \"HTTP\", \"severity\": \"warning\", \"datetime\": \"9999/99/99 99:99:99\" }" https://receiver.cloud.kompira.jp/webhook/xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
もし受信メッセージをメールに変更される場合は、受信スロットの種別は webhook ではなくメールをご指定下さい。
-
回答ありがとうございます。
受信メッセージがメールの場合のみ使用可能な情報ということで承知しました。
・メールの本文欄には件名だけ表示されるようにしたいのですが
message.metadata.headersでよろしいでしょうか。
message.metadata.headersを使用するとトリガーが動作しなくなりました。
・message.content.bodyを使用すると
受信したリクエストボディが記載されたメールが受信されます
(前回投稿したスクショ参照のリクエストボディがそのまま記載されます。)
アラートの件名だけを本文に表示させたいのですが
ほかに設定は必要でしょうか。
※トリガーの条件は変えていません。
※ZabbixのメディアタイプのスクリプトにあるContent-Type ヘッダが
application/x-www-form-urlencodedだったのでapplication/jsonに変更して
テスト通知を送ったところKompiraで検知しなくなりました。
(公式のドキュメントだとapplication/json-rpcだったので両方試してみました。) -
件名のみを本文に表示させる方法について
アラートの件名というのは、リクエストボディに含まれる SUBJECT の事であると推察します。
こちらのみを本文に表示させたい場合は、アクションのメール本文を下記のように設定下さい。{{#relatedMessages}}
- {{contents.data.payload.SUBJECT}}
{{/relatedMessages}}詳しくご説明します。
webhoook の通知では、content.data にリクエストボディをパースした結果が格納されています。
https://fixpoint.github.io/alerthub-manual/setting-field.html共有いただいたメッセージ中のリクエストボディでは、payload 以下に SUBJECT がありましたので、
contents.data.payload.SUBJECT のように指定いただく事で、SUBJECT のみを取り出す事が可能です。
Content-Type を変更した所、Kompira が検知しなくなった件についてContent-Type ヘッダを application/json に変更したところ Kompira で検知しなくなったとの事ですが、これはアクションによるメール通知が来なくなったという事でしょうか。
もしそうであれば、これは深刻度のリセット漏れによるものである可能性がありますが、いかがでしょうか。共有いただいたトリガーの設定で、実行条件に「変化前の深刻度が 0 と等しい値である」を指定いただいています。
この設定の場合、変化前の深刻度が 0 以外ですと、アクションの実行がなされません。お手数ですが深刻度をリセットの上、再度お試しいただけますでしょうか。
実行条件と関連メッセージの使い分けについてまずトリガーそのものの機能として、複数飛んできたアラートを一つのアクションに集約する事が出来ます。
ただメール等で通知する際に、アクションを実行するきっかけとなったアラートの情報しか通知の内容に含める事が出来ません。これに対し、関連メッセージ機能を用いると、アクションを実行するきっかけとなった複数のメールの情報を通知の内容に含める事が出来ます。
通知の内容に含める関連メッセージを絞り込みたい場合は、関連メッセージフィルター機能をご使用下さい。
https://fixpoint.github.io/alerthub-manual/make-related-message-filter.html -
回答ありがとうございます。
Content-Type を変更した所、Kompira が検知しなくなった件について
申し訳ありません。
0に戻したところ通常通り検知するようになりました。件名のみを本文に表示させる方法について
{{#relatedMessages}}
- {{contents.data.payload.SUBJECT}}
{{/relatedMessages}}紹介いただいた記述通りにメールの本文に記載し
テスト通知を送ると下記の結果となりました。<アクションのメール本文設定例>
<メールの受信結果>
<メッセージのタイムスタンプからのリクエストボディ>
5件送って認識はしているようですがSUBJECTとMessageは読み込んでいないようです。
-
件名を本文に表示させる方法ですが、以下の点を修正いただいて試行いただけますでしょうか。
zabbix から渡す情報としては不足はないかと思います。- zabbix 側のスクリプトで、 `req.Post()` の第二引数を修正する
- `'payload='+` を省いて、`value` を直接指定してください
- この修正でリクエストボディが AlertHub がパース可能な JSON 形式となります
- アクションの `{{contents.data.payload.SUBJECT}}` を `{{content.data.SUBJECT}}` に修正する
- zabbix からの送出内容に合わせて `payload` を省く
- 前回、 `content` とすべき箇所を `contents` としておりました、申し訳ありません -
回答ありがとうございます。
アクションの `{{contents.data.payload.SUBJECT}}` を `{{content.data.SUBJECT}}` に修正する
→
`'payload='+` を省いて、`value` を直接指定してください。
→ 'payload='+valueではなく`value`だけを記述する。という認識でよろしいでしょうか。
試してみたところ、同じ結果となり、メールの本文は「-」だけでした
メッセージのリクエストボディを確認してみるとvalueだけが表示されておりました。
また'SUBJECT='+valueとZabbixに記述するとリクエストボディには
SUBJECT={"HTTPProxy":"","Message":"TEST","SUBJECT":"SHIMADATEST","To":"メールアドレス","URL":""}
`'payload` を省いて=`+value` だけを記述するとリクエストボディには
={"HTTPProxy":"","Message":"TEST","SUBJECT":"SHIMADATEST","To":"メールアドレス","URL":""}
と表示されておりました。
payloadの記述は省いても同じ結果になりました。
トリガー、関連メッセージ、ルール等は変更していませんが、他に追加する設定はありますか。
-
アクションについては、画像を貼っていただいたそのままで問題ありません。
zabbix のスクリプトについては、req.Post() の value の入れ方を以下のように修正を行ってください。
---
req.Post(
'https://receiver.cloud.kompira.jp/webhook/[ここは修正しません]',
value
);
---
シングルクォーテーションなど分かりにくく記載してしまい申し訳ありませんでした。。修正の結果、メッセージのリクエストボディは以下の様になっていることが理想です。
{"HTTPProxy":"","Message":"TEST","SUBJECT":"SHIMADATEST","To":"メールアドレス","URL":""} -
metadata.date ですが、メッセージがメールの場合のみご使用いただけます。
https://fixpoint.github.io/alerthub-manual/setting-field.html#%E5%8F%97%E4%BF%A1%E3%83%A1%E3%83%83%E3%82%BB%E3%83%BC%E3%82%B8%E3%81%8C%E3%83%A1%E3%83%BC%E3%83%AB%E3%81%AE%E5%A0%B4%E5%90%88
メッセージが webhook の場合は、リクエストボディに日時を含め、それを取り出していただく必要があります。Zabbix ではメディアタイプに、手入力の値ではなくマクロを使用する事が可能です。
マクロを用いれば、リクエストボディにアラートが発報した日時を含めていただけるかと思います。
以下の記事がご参考になるかと思います。- https://www.zabbix.com/documentation/6.0/jp/manual/config/notifications/media/webhook
- https://www.zabbix.com/documentation/6.0/jp/manual/appendix/macros/supported_by_location
※ ご使用中の Zabbix のバージョンのマニュアルをご参照下さい。
※ Zabbix に関する詳細なご質問に対してはご回答いたしかねます。リクエストボディに日時を含めた上で、メールの本文に {{content.data.date}} のように記載下さい。
メール本文のサンプルを共有いたします。{{#relatedMessages}}
- {{content.data.subject}} - {{content.data.trigger}} - {{content.data.date}}
{{/relatedMessages}}
サインインしてコメントを残してください。
コメント
25件のコメント