メッセージ内のマクロ内に存在するユーザ定義マクロの展開について
アクションに設定するメッセージ内のユーザ定義マクロの展開について質問させてください。
Zabbix server 4.0.6
アクションのメッセージ内に、{TRIGGER.EXPRESSION}、{TRIGGER.EXPRESSION.RECOVERY}を書き、そのトリガーの発生・復旧条件をメッセージ内に記載しております。
主にWeb監視で困っているのですが、Web監視の設定、トリガーを含めたテンプレートを作成し、複数のホストに割り当てております。
しかしホストごとに監視するURLが異なりますため、テンプレート内のWeb監視のシナリオ名やステップ内のURL、条件式に直接URLを書くのではなく、ユーザ定義マクロ{$WEBURL}として定義し、ホストのユーザ定義マクロ{$WEBURL}にURLを入れております。
トリガーはこのようになっています。
{テンプレート名:web.test.fail[Web監視 {$WEBURL}].以下評価式
この設定にて、トリガーにひっかかる状況になった場合、メッセージで送信される{TRIGGER.EXPRESSION}、{TRIGGER.EXPRESSION.RECOVERY}で展開された中には、ユーザ定義マクロ{$WEBURL}の部分が展開されず、{$WEBURL}のままになっております。
例
マクロ
{$WEBURL} http://www.example.com/ としてホスト内にてユーザ定義マクロを定義
Web監視シナリオ名
Web監視 {$WEBURL}
送信されるメッセージ{TRIGGER.EXPRESSION}部分の展開
{ホスト名:web.test.fail[Web監視 {$WEBURL}].以下評価式
こうなってほしいメッセージ
{ホスト名:web.test.fail[Web監視 http://www.example.com/].以下評価式
このようなマクロの展開はできないのでしょうか。
以上、よろしくお願いいたします。
kz999 - 投稿数: 24
{TRIGGER.EXPRESSION}、{TRIGGER.EXPRESSION.RECOVERY}ではユーザマクロの展開はできないようですので、他の手段を考えるしかないでしょうね。
{TRIGGER.NAME}や{TRIGGER.DESCRIPTION}、{ITEM.NAME}などマクロを展開できるところでなんとかするしかないと思います。
[追記]
ちなみに、評価式をマクロ展開した状態でメッセージ内に書き出す意義がいまいちわからないのですが、
どういう条件で障害・復旧したかを単に人間がメールみて判断したいだけでしょうか。
であれば、トリガの説明欄({TRIGGER.DESCRIPTION})に、
$WEBURL:{$WEBURL}
と書いて、アクションのメッセージ下の方に
<備考>
{TRIGGER.DESCRIPTION}
と入れておけば、メール内の下に「$WEBURL:http://www.xxx.com」と出て、
ああ{$WEBURL}はこれの事ね、とわかるようにはなりますね。
seena - 投稿数: 20
kz999さん、ありがとうございます。
> どういう条件で障害・復旧したかを単に人間がメールみて判断したいだけでしょうか。
用途としてはまさにこの通りです。
頂きました案の、{TRIGGER.DESCRIPTION}をメッセージに内に入れるという事で試してみたいと思います。
ありがとうございました。