SNMPtrapの"保存前処理"を複数取り扱い、メールフォーマットに組み込む方法
【環境】
ZabbixVer: 6.0
【内容】
SNMPtrapを受領時に一部情報を切り出して、
アクションのメールにて送付したいと考えています。
具体的には以下です。
<例)トラップの中身>
HOST: TEST
Status: A
上記のトラップの中から、HOSTに相当する部分のTESTと、Statusの障害を抜き出し、
以下のような形で件名でメール送付したいです。
<例:メール件名>
障害発生ホスト:TEST 障害レベル A
【質問事項】
上記を実現するために以下を行いましたしたが上手くいきませんでした。
1)以下2つのアイテムを用意
①SNMPTrapを受け取り、保存前処理でHOST以降の値を取得するアイテム
②SNMPTrapを受け取り、保存前処理でStatus以降の値を取得するアイテム
2)以下のトリガーを作成
find(アイテム①)=1 and find(アイテム②)=1
※後述のアクションで、マクロのITEM.VALUE1とITEM.VALUE2を使うため、①と②のアイテムに値が入ってきたら…という内容で記載。
※トリガーの設定については、障害イベント生成を"複数"で設定。
3)以下の内容でメールを送付するようアクションを設定
障害発生ホスト:{ITEM.VALUE1} 障害レベル {ITEM.VALUE2}
この設定である程度望みの動作となったものの、
トリガーがアイテム①とアイテム②にまたがっており、
SNMPTrapを受信した場合に、アイテム①の値が入った瞬間、アイテム②の値が入った瞬間の2回トリガーが動作してしまい、同じメールが2通飛んでしまいます。
何か良い方法があればご教授頂きたく宜しくお願いします。
zbx - 投稿数: 12
別のやり方ですが、下記のような設定でできる気がします。検証はしていません。
1.SNMPTrapを受け取るアイテムにタグ付けして、正規表現でHOSTに相当する部分のTESTと、Statusの障害を抜き出す。
例)
タグ:HOST
値:{{ITEM.VALUE}.regsub("^.*HOST:\s+(.*)", \1)}
タグ:Status
値:{{ITEM.VALUE}.regsub("^.*Status:\s+(.*)", \1)}
2.メールの件名にマクロ設定
例)
障害発生ホスト:{EVENT.TAGS.HOST} 障害レベル:{EVENT.TAGS.Status}
【参考】
・タグ
https://www.zabbix.com/documentation/6.0/en/manual/config/tagging
{{ITEM.VALUE}.regsub(pattern, output)}
・マクロ
https://www.zabbix.com/documentation/6.0/jp/manual/appendix/macros/suppo...
{EVENT.TAGS.}
kaeru - 投稿数: 264
申し訳ありません。返信したつもりで返信しておりませんでした。
regsubは当方の知識になかったです。ありがとうございます。
頂いた設定にて希望動作しました。
ご回答ありがとうございました!