統合監視システム

【zabbix】ホスト自動登録時にIPアドレスが登録されない

はじめに

zabbix-agentとzabbixサーバが疎通できたらホスト自動登録されるように設定したのですが、以下のようになぜかIPだけ「0.0.0.0」の固定値が設定されてしまい苦戦したのですが、ようやく解消できたので共有します。

zabbix-agentのホスト自動登録

複数のWEBアプリケーションに登録したzabbix-agentのホストをひとつずつ手動でzabbix-serverへ登録するのはめんどくさいということで以下のサイトを参考に自動登録を試みました。

https://qiita.com/qryuu/items/39548aa77ef0e8152630

自動登録には2種類あります。

・アクションの自動登録機能を利用する方法
・ディスカバリ機能を利用する方法

まずは前者を試したのですが、ホスト名やグループ、テンプレートの設定はうまくいってるのになぜかIPだけ「0.0.0.0」の固定値が設定されてしまうという事象が起きました。。。

後者のディスカバリ機能も試してみたのですが、こちらはIPは問題なく設定されたのですが、ホスト名がzabbix-agent.confで指定したホスト名にならず、zabbix-agentのIPが設定されてしまいました。。。

こんなモグラ叩きの状態だったのですが、調べたところ後者のホスト名にIPが設定されてしまうのはどうしようもなさそうだということが分かりました。

なので、アクションの自動登録機能でうまくいかなかった原因を調べました。

すると、どうやらzabbix-agent側のListenIPの設定がおかしいことに気が付きました!

ListenIPとは

リクエストされたIPについて、どのIPを許可するかということを設定できる項目で、zabbix-agent側は「zabbix-agent.conf」、zabbix-server側は「zabbix-server.conf」で定義できます。

カンマ区切りで複数指定することもできるみたいです。

全てのIPを許可する場合は、「コメントアウト」もしくは「0.0.0.0」を指定すればよいです。

ListenIPを指定する上での注意点

今回うまくいかなかったのは、「zabbix-agent.conf」のListenIPのコメントアウトが外されて、「0.0.0.0」が指定されてしまっていたためでした。  

全てのIPを許可 = ListenIPのコメントアウト = 「0.0.0.0」で一見問題なさそうに見えるのですが、自動登録時はListenIPに指定されたIPを参照し、zabbix-server側のホストのIPへ登録されてしまうので、「0.0.0.0」というIPが設定されてしまいます。

以下のようにListenIPをコメントアウトするとうまくいきました。

なので、
ListenIPを指定する際は自動登録に影響するということを頭に入れておきましょう。
特に指定する必要がないのであればListenIPはコメントアウトするようにしましょう。

まあデフォルトはコメントアウトされているので基本いじることはないと思いますが、、、(なんでいじってしまったんだろ・・・)