複数インターフェースでのマクロを用いたアイテムキーの表記方法について
お世話になっております。
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 - 投稿数: 4730
2.2.1であれば、{HOST.IP1}とか{HOST.IP2}とかを利用したと思います。
ご確認ください。
https://www.zabbix.com/documentation/2.2/manual/appendix/macros/supporte...
socio21945 - 投稿数: 53
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 - 投稿数: 4730
heyaさんの回答にもあるとおり、アクションメッセージ内に記載で
きる{HOST.IP1}や{HOST.IP2}は、トリガーの式に記載したアイテム
に対応付けられるホストのIPアドレスになります。
トリガーの式をどう書かれているかわかりませんが、icmppingの値
1つを0または1で判定するようにしか書かれていないと思われます
ので、{HOST.IP1}や{HOST.IP2}ではホスト設定の複数インターフェ
イスのIPアドレスを参照することはできないと思われます。
別途回答頂いている内容にもあるとおり、ユーザマクロを利用され
てみてはいかがでしょうか?
heya - 投稿数: 319
こんにちは。
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 - 投稿数: 4730
失礼しました。
マニュアルを見て「Item key parameters」で利用可能となってい
たので、利用できるようになったのかと思ってしまいました。
2.2.1で試してみましたが、タイプがZabbixエージェントのアイテ
ムでも、メインのインターフェースのIPしか参照できませんでした。
ということで、Heyaさんが書かれているとおり、テンプレートを利
用して、テンプレート上にはマクロで表現したものを登録して、各
ホストのローカルなマクロで各ホストごとの固有値を反映させるの
がよさそうです。
気になるのは、以下の修正。
どこまで利用できるようになるのか2.2.2が出次第確認しようと思
います。
https://support.zabbix.com/browse/ZBX-6737
socio21945 - 投稿数: 53
heya様 TNK様
返信ありがとうございました。
ご指摘いただいた通り、ホスト登録で「ホストインターフェース」によって切り替えることは
確認しておりました。
#そういう意味では、先ほど私がTNK様に返信した設定内容は、おかしいのかもしれません。。
この場合、マクロを利用して登録してあるアイテムを利用して両インターフェースのアイテム
登録ができればいいのですが、アイテムのキーは一意性チェックが働いているので、
インタフェースの数分だけ異なるキーでアイテム登録しないといけないです。
アイテムキーにマクロを用いて登録しているので、ここが改善されると嬉しいなと勝手に
思っております。
追加でご質問させてください。
ウェブ監視の場合、他のアイテムのようにホストのインターフェースを指定することができませんが、
ホスト登録で標準のチェックが入っているインターフェースに対して問い合わせする認識で
合っていますでしょうか?
socio21945 - 投稿数: 53
TNK様
ありがとうございます。
ユーザマクロを定義する方法を試しておりましたが、通知でユーザマクロが利用できず、
やはりメッセージにIPアドレスの一覧を表示することができませんでした。
メッセージ内で扱えるIPアドレスは、ホスト登録で標準のチェックが入っているもの、
もしくは{HOST.IP<1~9>}のようにトリガーで生成されたIPアドレスのみなのでしょうか。
TNK - 投稿数: 4730
アクションの本文内に利用されるのであれば、ユーザマクロは
使えませんね。申し訳ありません。
そうであるならば、ホストのインベントリ情報を利用して、
INVENTORYマクロを利用されてはいかがでしょうか?
結局は、インターフェイスのIPアドレスと両方に入力しないと
いけないので、情報登録は面倒ですが。