SNMP機器のIPアドレス取得

いつも勉強させて頂きありがとうございます。

SNMP機器一覧を、監視データ→最新データで表示させたくて、IPアドレス表示のテンプレートを作成しておりますが、うまく取得できませんのでアドバイス頂けましたら幸いです。

【環境】
OS:CentOS7.1
Zabbix Ver:3.01

【テンプレート内容】
名前:IP
タイプ:SNMPv2エージェント
キー:IP_Address
SNMP OID:IP-MIB::ipAdEntAddr.{DISCOVERY.DEVICE.IPADDRESS}
データ型:文字列

マクロの書き方が悪いのではと考えておりますが、IPアドレスを取得する方法をお教え頂けたら幸いです。
※L3等の複数のIPを持っている機器でも、ディスカバリで取得したIPアドレスで構いません。

以上よろしくお願いいたします。

コメント表示オプション

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

ローレベルディスカバリの設定をされているのだと思いますが、ど
のように設定されているのかをお教えください。

また「テンプレート内容」と書かれていますが、テンプレート内の
ディスカバリルールのプロトタイプ内に設定されているかも再度ご
確認ください。

あと、「うまく取得できません」では、何がどのような状態になっ
ているのかが分かりません。
エラーログや、Webインターフェース上に何らかのエラーメッセー
ジが出力されているのであれば、それらのメッセージもお教えくだ
さい。

ユーザー Sujinosuke の写真

TNK様

言葉足らずの質問で申し訳ありません。

現在ホストの登録には、LLDは使っておらず、特定のIPセグメントをディスカバリで監視しホスト登録されていない機器を手動で登録しております。

もしかして、上記のマクロはLLD使用時にしか使えないのでしょうか?

私の希望としては、ホストに登録されているIPアドレスを一覧で表示したいだけなのです。

最新データの画面では、「snmp_parse_oid(): cannot parse OID "IP-MIB::ipAdEntAddr.{DISCOVERY.DEVICE.IPADDRESS}」と表示されております。

zabbix_serverのログでも、「 item "ホスト名:IP_Address" became not supported: snmp_parse_oid(): cannot parse OID "IP-MIB::ipAdEntAddr.{DISCOVERY.DEVICE.IPADDRESS}".」
と表示されておりますので、マクロが反映していないと思います。

LLDを使わずに、最新データ一覧にIPアドレスを表示させる事は出来ないでしょうか?
もしくは、ほかの方法で、下記データを一覧で見る事は出来ないでしょうか?

ホスト名、IPアドレス、MacAddress,Location

ユーザー TNK の写真

もしも、Zabbix標準のマクロ{DISCOVERY.DEVICE.IPADDRESS}を使用
されているおつもりであるならば、そのマクロは、ネットワークデ
ィスカバリでデバイスを発見した時のアクションには使用できます
が、アイテムのキーには使用できません。

LLDを使わずに、最新データ一覧にIPアドレスを表示させる事は出来ないでしょうか?
もしくは、ほかの方法で、下記データを一覧で見る事は出来ないでしょうか?

機種や設定によっても違いがあるかもしれませんので、snmpwalkな
どを使用して、IP-MIB::ipAdEntAddrの値を取得したときに、どの
ような結果を得られるのかをお教えください。

ユーザー Sujinosuke の写真

TNK様

重ね重ねご親切に対応頂きありがとうございます。

zabbixサーバー上にて、snmpwalkで取得した値は、「IP-MIB::ipAdEntAddr.192.168.130.72 = IpAddress: 192.168.130.72」です。
※192.168.130.72はホストのIPアドレスです。

ユーザー TNK の写真

後ろにIPアドレスを指定せずに、恐らく複数行の結果が得られる情
報を見せて頂きたかったのですが、手元の機器で試せそうだったの
で、詳細は異なるかもしれませんが試していました。

例えば、IPアドレスでその機器が登録されているのであれば、OID
として、

 IP-MIB::ipAdEntAddr.{HOST.IP}

で取得できるのではないかと思ったのですが、取得できませんでし
た。
代わりに、ユーザマクロで指定してみたところ、取得することがで
きるようです。

設定例:
 ホストマクロ:  {$HOSTIPADD} <IPアドレス>
 アイテムのOID:  IP-MIB::ipAdEntAddr.{$HOSTIPADD}

もう少し詳細に追ってみますが、現時点での対策としては、最新デ
ータの画面ではなく、マップであれば、{HOST.IP}のマクロを使用
して対象の機器のIPアドレスを表示できるので確認方法を変えるこ
とも検討してみてはいかがでしょうか。

ユーザー Sujinosuke の写真

TKN様

お調べ頂きありがとうございます。

勉強不足で申し訳ありません。

>設定例:
> ホストマクロ:  {$HOSTIPADD} <IPアドレス>
↑ホストマクロはどこに登録すればよろしいでしょうか?

アイテムのOID:  IP-MIB::ipAdEntAddr.{$HOSTIPADD}
↑をテンプレートのアイテムに登録しただけでは、ログに「error reason for "ホスト名:IP_Address" changed: snmp_parse_oid(): cannot parse OID "IP-MIB::ipAdEntAddr.{$HOSTIPADD}".」
となり、取得できませんでした。

よろしくお願いいたします。

ユーザー TNK の写真

ホストマクロというのは、ホストの設定の「マクロ」タブで設定
するマクロのことです。

ユーザー Sujinosuke の写真

【追記】

Zabbix統合監視(徹底活用)を読み直した所、ホストマクロ(ユーザーマクロ)の登録方法が記載ありました。
調べもせず、質問してすいませんでした。

テンプレートのマクロに、{$HOSTIPADD} <IPアドレス>を登録した所、ログには、「 error reason for "ホスト名:IP_Address" changed: snmp_parse_oid(): cannot parse OID "IP-MIB::ipAdEntAddr.<IPアドレス>".

と表示されるようになりました。

<IPアドレス>は、ホストにより変わるため、テンプレートの作成では無く、ホスト毎に登録する形になるのでしょうか?

取り急ぎ、最新データ一覧にこだわりがあるのではなく、何らかの形でHostとIPアドレスが確認出来れば良いので、MAPの作成方法を試してみたいと思います。

また、分からない事がありましたら、ご質問させて頂きますので、よろしくお願いいたします。

ユーザー TNK の写真

<IPアドレス>と書いたのは、ここにご自身のIPアドレスを設定し
てくださいという説明で書いたものです。
「<」や「>」も書き加えてしまっていませんか?

ご確認ください。

あと、この方法を使用すると、ご認識されている通り、各ホストに
ホストマクロを設定しなければなりません。
{HOST.IP}が使用できれば、ホストマクロも設定しなくていいので
すが、アイテムの設定のOIDの部分には使用できなさそうです。

ユーザー Sujinosuke の写真

TNK様

全SNMP機器の登録は少々手間ですが、お教え頂いた方法で、無事最新データ一覧に表示させることが出来ました。
とりあえず、目的は達成できましたので、有難うございます。
マップにも、IP表示が出来障害時の対応が早く出来そうです、重ねえてお礼申し上げます。