トリガー条件式にユーザ定義マクロを使用する方法
お世話になります。
Zabbixにてルータの監視を行っており、ユーザ定義マクロをパラメータ
としてトリガー起動、アクションを実行したいのですがトリガー条件式の
中でユーザ設定マクロをパラメータとして設定できませんでした。
マニュアルを見る限りではユーザ定義マクロをトリガー条件式に利用
できるようなのですが、私の設定内容に問題があるのでしょうか?
--環境
RHEL 6.1 Zabbix Server 1.8.16
--監視設定
--アイテム
説明:Ethernet0_Err
タイプ:SNMPv2エージェント
キー:ifInErr[Ethernet0]
説明:Ethernet1_Err
タイプ:SNMPv2エージェント
キー:ifInErr[Ethernet1]
--ユーザ定義マクロ
マクロ名:{$WAN_INT}
値:Ethernet0
--トリガー
--条件式
{HOSTNAME:ifInErr[{$WAN_INT}].last(0)}>0
アイテム設定はテンプレートを使用し、ホストのユーザ定義マクロでトリガーとなる
条件を変更できるようにしたいと考えています。
原因もしくは目的のための設定方法がわかる方がいれば是非教えてください。
fripper - 投稿数: 495
原因は、トリガー設定に書かれているアイテムキー文字列と同一のアイテムが設定中に存在しないことです
ifInErr[{$WAN_INT}]
というアイテムを作ったうえで、
{HOSTNAME:ifInErr[{$WAN_INT}].last(0)}>0
というトリガーを作るならば、指定できると思います
Eth0/Eth1の双方をデータ収集しつつ、WAN_INTマクロの設定状況にあわせて監視警告の処理対象を変更したいのであれば、
別のアプローチとして、以下ができるかもしれません
アイテム
ifInErr[Ethernet0]
ifInErr[Ethernet1]
トリガー
({HOSTNAME:ifInErr[Ethernet0].last(0)}>0)&({$WAN_INT_IDX}=0)
({HOSTNAME:ifInErr[Ethernet1].last(0)}>0)&({$WAN_INT_IDX}=1)
このように設定したうえで、Eth0 で警告したいホストにはマクロ値を 0 に、Eth1 で警告したいホストにはマクロ値を1に
それぞれ設定する
k-kyo - 投稿数: 11
回答いただきありがとうございます。
ユーザ定義マクロを変数のように使えるかと考えていましたが、アイテムのキーにもユーザ定義マクロで
記述しなければならないということですね。
しかし、この場合だと結局はキーとトリガーが設定時に一致している必要があるということなので
今回のケースではキーにユーザ定義マクロを使う意味はなさそうですね。
記載した設定は質問のために簡略化したもので、実際にはインターフェイスが多くなる場合があるので
記載いただいた方法だとトリガーを複数にするか、条件式が長くなってしまいそうなので、警告検知用に
アイテムを追加してSNMPのOID部分にダイナミックインデックスでユーザ定義マクロを使って特定の
インターフェースのデータを取得し、トリガー条件式にそのアイテムを指定するようにしようと思います。