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 の写真

Zabbixエージェントを直接Zabbixサーバーから監視できるのであれ
ば、プロキシのログとして、

 cannot obtain configuration data from server at "": ZBX_TCP_READ() timed out

と出力されていることからも、ZabbixサーバーからZabbixプロキシ
が設定情報を取得できていませんので、Zabbixプロキシの設定が誤
っている可能性が考えられます。

zabbix_proxy.conf内のどの項目をどのように設定されましたか?
デフォルトから変更した部分をお教えください。
例えば、ServerPortを10051から10050に変更したりしませんでした
か?

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 の写真

手元に同様の環境を構築してみました。

 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プロキシ側に何かログが出力され
ていませんか?

TNK様

ご回答ありがとうございます。

Zabbixサーバ、Zabbixプロキシ間をIPv4に一時的に変更してみましたが、
状況は変わりませんでした。Zabbixプロキシ上のエージェントの直接監視は
できております。

Zabbixプロキシのログは先日お伝えしたもの以外には
”Cannot adopt OID in”で始まるsnmp関連のログが、zabbix-proxyの再起動時に
大量に出ているのみです。

プロキシのDebugLevelを4に変更してみたのですが、ログが多すぎで確認に
時間がかかってしまいそうです。

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

ユーザー TNK の写真

「Cannot adopt OID...」のエラーは、snmpのパッケージをインス
トールすれば改善されると思います。
snmpのパッケージをインストール後、zabbix-proxyを再起動して
みてください。

例:
# apt-get install snmp

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の仮想ブリッジを見ていない?)あたりを確認したいと思います。