Zabbix 3.0.3環境でproxy越しの監視ができない
いつもお世話になっております。
現在、zabbix-proxy経由でzabbix-agentによる監視を行おうとしておりますが、agentの情報が取れず投稿させていただきました。
環境は以下の通りです。
■Zabbix-Server
OS:CentOS 7.2
zabbix-server:3.0.3
zabbix-agent:3.0.3
DB:mariadb 5.5.47
■Zabbix-Proxy
OS:Debian 8.5
zabbix-proxy:3.0.3
zabbix-agent:3.0.3
DB:mysql 5.5.49
■Zabbix-Agent
OS:CentOS 6.7
zabbix-agent:3.0.3
GUI管理画面からagentをインストールしたホストを、「プロキシによる監視」でプロキシサーバを指定して
登録しても、ダッシュボードで「Zabbix agent on <エージェントホスト名> is unreachable for 5 minutes」と
表示されてしまいます。
各コンポーネントのログには、以下のような出力があります。
・エージェント:zabbix_agentd.log
no active checks on server [:10051]: host [<エージェントホスト名>] not found
・proxy:zabbix_proxy.log
cannot obtain configuration data from server at "": ZBX_TCP_READ() timed out
cannot send list of active checks to "<エージェントIPアドレス>": host [<エージェントホスト名>] not found
・sending configuration data to proxy "" at "", datalen 12364
以下の内容を確認しております。
・Server-Proxy間はIPv6で通信しております。
・ping6での相互通信はできております。
・proxyからserverへのtelnetによるポート(tcp/10050、tcp/10051)開放は確認できております。
また、proxyに導入したagentの設定(zabbix_agentd.conf)の「Server=」、「ServerActive=」のそれぞれを
proxy自身に設定すると監視できませんが、zabbix-serverに設定すると監視ができる状態です。
以下の問題に似ているようですが、zabbix-serverのSELinuxはPermissive、Firewalldも停止いている状態です。
https://support.zabbix.com/browse/ZBX-10781
お手数おかけいたしますが、ご教授のほどよろしくお願いいたします。
TNK - 投稿数: 4769
Zabbixエージェントを直接Zabbixサーバーから監視できるのであれ
ば、プロキシのログとして、
と出力されていることからも、ZabbixサーバーからZabbixプロキシ
が設定情報を取得できていませんので、Zabbixプロキシの設定が誤
っている可能性が考えられます。
zabbix_proxy.conf内のどの項目をどのように設定されましたか?
デフォルトから変更した部分をお教えください。
例えば、ServerPortを10051から10050に変更したりしませんでした
か?
gizmo - 投稿数: 6
TNK様
ご回答ありがとうございます。
zabbix_proxy.confの変更点を以下に記載いたします。
Server=fdaa:d24d:a9ec::1 ←zabbixサーバのIPv6アドレスです。
Hostname=proxy00 ←管理画面プロキシの作成で指定したホスト名と同一です。
DBPassword=XXXXXXX ←プロキシサーバにインストールしたMySQL上のDBのパスワードです。
念のため同一サーバ上のzabbix_agentd.confの変更点も記載いたします。
Server=fdaa:d24d:a9ec::1
ServerActive=fdaa:d24d:a9ec::1
Hostname=proxy00
以上、よろしくお願いいたします。
TNK - 投稿数: 4769
手元に同様の環境を構築してみました。
Zabbixサーバー側:
CentOS 7.2.1511
Zabbix 3.0.3 (Zabbix LLCのリポジトリから)
Zabbixプロキシ側:
Debian 8.5
Zabbix 3.0.3 (Zabbix LLCのリポジトリから)
Zabbixサーバー側のCentOS 7は、SELinuxはEnforcingでfirewalld
も有効にした環境です。
Zabbixサーバー側の外部からの接続は、10051とhttpだけ開けてい
る状態です。
違いとしては、IPv6を利用していないだけで、IPv4であれば問題な
くZabbixプロキシ経由で監視できています。
IPv6でも「::ffff:」で始まるようなアドレスでしか試す環境がな
いのですが、そのアドレスであれば、問題なく監視できています。
接続先がそもそも誤っていたら接続できないというエラーになるは
ずで、先日のエラーメッセージから推測するに、接続はできて応答
待ちでタイムアウトであったようなので、可能性として、Zabbixプ
ロキシからZabbixサーバーを稼働させているサーバー上のZabbixエ
ージェントに接続してしまっているのではないかと考えました。
しかし、zabbix_proxy.conf内のServer、Hostname、DBPasswordし
か変更していないとのことですので、残る可能性としては、Zabbix
サーバーとZabbixプロキシ間の通信で何らかの制限がかかってしま
っているのではないでしょうか?
先日ご提示頂いた以外に、Zabbixプロキシ側に何かログが出力され
ていませんか?
gizmo - 投稿数: 6
TNK様
ご回答ありがとうございます。
Zabbixサーバ、Zabbixプロキシ間をIPv4に一時的に変更してみましたが、
状況は変わりませんでした。Zabbixプロキシ上のエージェントの直接監視は
できております。
Zabbixプロキシのログは先日お伝えしたもの以外には
”Cannot adopt OID in”で始まるsnmp関連のログが、zabbix-proxyの再起動時に
大量に出ているのみです。
プロキシのDebugLevelを4に変更してみたのですが、ログが多すぎで確認に
時間がかかってしまいそうです。
以上、よろしくお願いいたします。
TNK - 投稿数: 4769
「Cannot adopt OID...」のエラーは、snmpのパッケージをインス
トールすれば改善されると思います。
snmpのパッケージをインストール後、zabbix-proxyを再起動して
みてください。
例:
# apt-get install snmp
gizmo - 投稿数: 6
TNK様
ご連絡ありがとうございます。
snmpパッケージのインストールで「Cannot adopt OID...」のエラーは出力されなくなりました。
また、状況の切り分けができましたのでご連絡いたします。
実は、Zabbixサーバ、Proxyサーバにはそれぞれopenvswitchをインストールしており、
これを利用して両サーバ間でVXLANを張ってL2 over L3で通信をさせようとしております。
今回このVXLAN上のネットワークでなく、アンダーレイのZabbixサーバIPアドレスをProxy
側(zabbix_proxy.conf)に指定することで、ZabbixサーバからProxy経由でAgentの情報も
確認できるようになりました。
VXLANを張った状態でも相互にping、ping6の通信ができており、telnetでそれぞれ10050番ポート、
10051番ポートに通信ができていたので、切り分けに時間がかかってしまいました。
OSレベルでは通信できているようなので、Zabbixサーバ、Proxyサーバそれぞれがどのポートを
見ているか(openvswitchの仮想ブリッジを見ていない?)あたりを確認したいと思います。