トリガー条件の正規表現名にマクロを使いたい
いつもお世話になっております。
トリガーのテンプレートは共通で、トリガー条件箇所を正規表現でホスト毎に個別指定したいと考えております。
そこで下記の設定でホスト毎にトリガー条件に設定した正規表現名をマクロで指定してみましたが、うまく通知されませんでした。
例)SV1サーバのシステムログに”失敗しました。"の文言が出力されたら通知
■ホスト名
SV1
■トリガー条件
{SV1:eventlog[System].regexp(@{HOST.NAME})}=1
■正規表現
名前:SV1
条件式: 失敗しました。
条件式の形式:結果が真
大文字小文字を区別:はい
■システムログ内容
xxxxxxxxxに失敗しました。
<Zabbix-Serverバージョン>
OS:CentOS 6.5
Zabbix-Server:2.4.5
そもそもこのような指定の仕方はできないのでしょうか。
もしくはテンプレートは共通でホスト毎に個別に条件を付けれるようなやり方をご存じであればご教授いただけないでしょうか。
fripper - 投稿数: 495
当該のマクロ「{HOST.NAME}」は、トリガー条件式での利用はサポートされていないようです
https://www.zabbix.com/documentation/2.4/manual/appendix/macros/supported_by_location
(11列目の「Trigger expressions」の部分)
結果として、「@{HOST.NAME}」という文字列そのものとして扱われているのだと思います
解決策の案ですが‥
‥‥ホストマクロの展開後に、単なる文字列としてでなく、
正規表現の名称として扱ってもらえるかどうかに自信がありません‥‥
手元に2.4環境がなく、テストできないため、保証できないこと、申し訳ありません
1.テンプレート側の「ホストマクロ」として、以下のような項目値を設定
マクロ名:マクロ値 {$XXX}: @dummy
2.テンプレートに設定するトリガーの条件式では、上記マクロ名の表記を利用して条件式を設定
{Template001:eventlog[System].regexp({$XXX})}=1
3.テンプレートを適用した先のホスト側で、ホストマクロ値を上書き設定
マクロ名:マクロ値 {$XXX}: @SV1
4.グローバルの正規表現設定に、@SV1を作成し、JENO様ご質問に記載のあるような正規表現を設定する
JENO - 投稿数: 5
fripper様 ご回答頂きましてありがとうございます。
ご教授頂きました手順にて、想定した動きになることを確認しました。
テンプレート側とホスト側でマクロが別々に設定できるのは気が付きませんでした。
とても勉強になりました。