複数インターフェースでのマクロを用いたアイテムキーの表記方法について

お世話になっております。

Zabbix-2.2.1環境で、SNMPインターフェースを複数設定したホストを登録しております。

【インターフェース】  【接続方法】  【ポート】  【標準】
①10.0.0.100       IPアドレス   161     *
②192.168.1.100     IPアドレス   161

この場合、Ping監視用のアイテムとして
icmpping[{IPADDRESS},5,1000,64,10000]
と登録すると、{IPADDRESS}には①のIPアドレスが入る認識です。

同様に②のIPアドレスを渡すためのマクロは、Zabbixで標準サポートされている
ものはあるのでしょうか?

お手数をおかけしますが、よろしくお願いいたします。

コメント表示オプション

お好みのコメント表示方法を選び「設定の保存」をクリックすると変更が反映されます。
ユーザー TNK の写真

2.2.1であれば、{HOST.IP1}とか{HOST.IP2}とかを利用したと思います。
ご確認ください。

https://www.zabbix.com/documentation/2.2/manual/appendix/macros/supporte...

TNK様

お世話になっております。
回答ありがとうございます。

{HOST.IP1}と{HOST.IP2}を利用し、以下のように複数NICに対応する
アイテムキーを登録しました。

====
●ホスト登録
【インターフェース】  【接続方法】  【ポート】  【標準】
①10.0.0.100       IPアドレス   161     *
②192.168.1.100     IPアドレス   161

●アイテム登録
①NIC1_Ping
キー:icmpping[{HOST.IP1},5,1000,64,10000]
ホストインターフェース:①を指定
②NIC2_Ping
キー:icmpping[{HOST.IP2},5,1000,64,10000]
ホストインターフェース:②を指定
====

ここで、障害メールを送信するためにアクションを定義しているのですが、
以下のようにデフォルトメッセージを記載していますが、IPアドレスの
情報が思っていた通りに出力されません。

====
●デフォルトのメッセージの設定内容
NIC1:{HOST.IP1}
NIC2:{HOST.IP2}

●表示してほしいメッセージ内容
NIC1:10.0.0.100
NIC2:192.168.1.100

●実際に表示されるメッセージ内容
NIC1:10.0.0.100
NIC2:10.0.0.100
※ホスト登録のインターフェースで標準にチェックが入っているIPの
 情報が表示されています。

====

表示したい内容でメッセージを生成するためには、どのようにマクロを
記載すればよろしいのでしょうか。

お手数をおかけしますが、よろしくお願いいたします。

ユーザー TNK の写真

heyaさんの回答にもあるとおり、アクションメッセージ内に記載で
きる{HOST.IP1}や{HOST.IP2}は、トリガーの式に記載したアイテム
に対応付けられるホストのIPアドレスになります。

トリガーの式をどう書かれているかわかりませんが、icmppingの値
1つを0または1で判定するようにしか書かれていないと思われます
ので、{HOST.IP1}や{HOST.IP2}ではホスト設定の複数インターフェ
イスのIPアドレスを参照することはできないと思われます。

別途回答頂いている内容にもあるとおり、ユーザマクロを利用され
てみてはいかがでしょうか?

ユーザー heya の写真

こんにちは。

HOST.IP1 とかの数字は、トリガーの中に複数のアイテムが出てきたときに、その何番目かを表す数字だったはずです。
The numbered macro syntax of {MACRO<1-9>} is used to reference hosts in the order in which they appear in a trigger expression. Thus, macros like {HOST.IP1}, {HOST.IP2}, {HOST.IP3} will expand to the IP of the first, second and third host in the trigger expression, providing the expression contains those hosts.

例えば、 {hostA:xxx.last(0)}<10&{hostB:yyy.last(0)}<10 の場合 HOST.IP2 は hostB のアドレスになります。
#トリガー以外ではどういう扱いなのか、よく分かりません。

アイテムの設定であれば、インターフェースを複数設定してあるホストなら、使うインターフェースを「ホストインターフェース」という欄で選べますよ。

ただ、テンプレートを使いたいならホストごとに設定し直す必要があります。それが嫌ならホストのマクロで {$IP1} に一つ目のアドレス、 {$IP2} に二つ目のアドレス、・・・といった感じで登録しておいて、アイテムの設定でそれを使う、ということは可能です(テンプレートのアイテムでユーザー定義のマクロを使っていても、ちゃんと展開してくれます)。
しかし、インターフェースとマクロとで二重登録になるのが気持ち悪いので、もっといい方法があれば私も知りたいです。

ユーザー TNK の写真

失礼しました。
マニュアルを見て「Item key parameters」で利用可能となってい
たので、利用できるようになったのかと思ってしまいました。
2.2.1で試してみましたが、タイプがZabbixエージェントのアイテ
ムでも、メインのインターフェースのIPしか参照できませんでした。

ということで、Heyaさんが書かれているとおり、テンプレートを利
用して、テンプレート上にはマクロで表現したものを登録して、各
ホストのローカルなマクロで各ホストごとの固有値を反映させるの
がよさそうです。

気になるのは、以下の修正。
どこまで利用できるようになるのか2.2.2が出次第確認しようと思
います。
https://support.zabbix.com/browse/ZBX-6737

heya様 TNK様

返信ありがとうございました。

ご指摘いただいた通り、ホスト登録で「ホストインターフェース」によって切り替えることは
確認しておりました。
#そういう意味では、先ほど私がTNK様に返信した設定内容は、おかしいのかもしれません。。

この場合、マクロを利用して登録してあるアイテムを利用して両インターフェースのアイテム
登録ができればいいのですが、アイテムのキーは一意性チェックが働いているので、
インタフェースの数分だけ異なるキーでアイテム登録しないといけないです。

アイテムキーにマクロを用いて登録しているので、ここが改善されると嬉しいなと勝手に
思っております。

追加でご質問させてください。
ウェブ監視の場合、他のアイテムのようにホストのインターフェースを指定することができませんが、
ホスト登録で標準のチェックが入っているインターフェースに対して問い合わせする認識で
合っていますでしょうか?

TNK様

ありがとうございます。

ユーザマクロを定義する方法を試しておりましたが、通知でユーザマクロが利用できず、
やはりメッセージにIPアドレスの一覧を表示することができませんでした。

メッセージ内で扱えるIPアドレスは、ホスト登録で標準のチェックが入っているもの、
もしくは{HOST.IP<1~9>}のようにトリガーで生成されたIPアドレスのみなのでしょうか。

ユーザー TNK の写真

アクションの本文内に利用されるのであれば、ユーザマクロは
使えませんね。申し訳ありません。

そうであるならば、ホストのインベントリ情報を利用して、
INVENTORYマクロを利用されてはいかがでしょうか?

結局は、インターフェイスのIPアドレスと両方に入力しないと
いけないので、情報登録は面倒ですが。