Zabbixによって監視されているサーバーの1つに到達できません。これが他のサーバーで正常に機能する理由はわかりません。
/etc/zabbix/zabbix_agentd.conf
この問題のあるサーバーと正常に動作する別のサーバーとの間に違いはありません。http://repo.zabbix.com/zabbix/2.2/rhel/6/x86_64/zabbix-release-2.2-1.el6.noarch.rpm
Zabbix-agentサービスの再起動後のエージェントログ
10939:20151127:093938.268 Starting Zabbix Agent [agent-server.test]. Zabbix 2.2.11 (revision 56693).
10939:20151127:093938.268 using configuration file: /etc/zabbix/zabbix_agentd.conf
10942:20151127:093938.269 agent #1 started [listener #1]
10945:20151127:093938.269 agent #4 started [active checks #1]
10941:20151127:093938.270 agent #0 started [collector]
10944:20151127:093938.270 agent #3 started [listener #3]
10943:20151127:093938.271 agent #2 started [listener #2]
10945:20151127:141742.930 active check configuration update from [zabbix-server-ip:10051] started to fail
(cannot connect to [[zabbix-server-ip]:10051]: [4] Interrupted system call)
エージェントサーバーにTelnetで接続する場合は、agent.version
、次を返します:ZBXD2.2.11
の内容 /etc/zabbix/zabbix_server.conf
(サーバー):
ListenPort=10051
LogFile=/var/log/zabbix/zabbix_server.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_server.pid
DBName=zabbix
DBUser=zabbix
DBPassword=******
DBSocket=/var/lib/mysql/mysql.sock
SNMPTrapperFile=/var/log/snmptt/snmptt.log
AlertScriptsPath=/usr/lib/zabbix/alertscripts
ExternalScripts=/usr/lib/zabbix/externalscripts
の内容 /etc/zabbix/zabbix_agentd.conf
(エージェント)
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
EnableRemoteCommands=1
Server=zabbix-server-ip
ListenPort=10050
StartAgents=3
# ServerActive=zabbix-server-ip # commented out
Hostname=server.test
Timeout=3
AllowRoot=1
Include=/etc/zabbix/zabbix_agentd.d/
Zabbixサーバー上のNetstat
$ Sudo netstat -lpn | grep zabbix
tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 7624/zabbix_server
tcp 0 0 :::10051 :::* LISTEN 7624/zabbix_server
問題のあるエージェントのNetstat
$ Sudo netstat -lpn | grep zabbix
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 3248/zabbix_agentd
tcp 0 0 :::10050 :::* LISTEN 3248/zabbix_agentd
作業エージェントのNetstat
$ Sudo netstat -lpn | grep zabbix
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 24242/zabbix_agentd
tcp 0 0 :::10050 :::* LISTEN 24242/zabbix_agentd
アクティブvsパッシブエージェント
ActiveServer
オプションをアクティブ化しました。エージェントを再起動すると、エラーメッセージがログに表示されなくなります。次の試み:
ActiveServer
はzabbix-server-ipで設定され、エージェントが再起動されますStartAgents
は0に設定され、アクティブエージェントを強制的に使用します。全体として、アクティブモードは複数のサーバーのエージェント構成で設定されている可能性があり、機能していません。すべてのレポートはパッシブエージェントからのものです。
エージェントインターフェイス
なぜこうなるのかはわかりませんが、奇妙に思えます。
この接続の問題の原因は何ですか?サーバーをエージェントに再接続するにはどうすればよいですか?
ホスト構成で(Webインターフェースを介して)設定されたIPアドレスは、zabbix-server自体のIPアドレスであることがわかりました。もちろん、これはエージェントサーバーのアドレスでなければなりません。
ホスト構成で(Webインターフェースを介して)設定されたIPアドレスは、zabbix-server自体のIPアドレスであることがわかりました。もちろん、これはエージェントサーバーのアドレスでなければなりません。
エージェントボックスのSELinuxとiptablesの現在の設定はどうですか?エージェントTelnetからポート10051経由でサーバーに接続できますか?
エージェントでtcpdumpを使用して、ボックス間の接続を確認することができます:tcpdump -i your_interface tcp port 10050
。これを使用して、着信/発信パケットを確認できます。
問題を解決するには、zabbixのアクティブモードとパッシブモードの接続を理解する必要があると思います。ここから zabbixドキュメント :
パッシブおよびアクティブチェック
Zabbixエージェントは、パッシブチェックとアクティブチェックを実行できます。
パッシブチェックでは、エージェントはデータ要求に応答します。 Zabbixサーバー(またはプロキシ)はCPU負荷などのデータを要求し、Zabbixエージェントは結果を送り返します。
アクティブなチェックには、より複雑な処理が必要です。エージェントはまず、Zabbixサーバーからアイテムのリストを取得して、独立して処理する必要があります。その後、定期的に新しい値をサーバーに送信します。
これでアクティブモードが機能するようになりました。クライアントのエージェントが接続できるように、Zabbixサーバーでポート10051を開く必要があります。あなたが得ているエラーから、これは問題です:
10945:20151127:141742.930 [zabbix-server-ip:10051]からのアクティブなチェック構成の更新が失敗し始めました([[zabbix-server-ip]:10051]に接続できません):[4]システムコールが中断されました)
あなたが行ったテストはZabbixサーバーからクライアントへの接続に関するものであり、問題なく動作しているようです。しかし、アクティブモードが機能するにはそれだけでは不十分です。 クライアントエージェントからポート10051上のサーバーへの接続が機能していないため、それに焦点を合わせる必要があります
あなたが提供した情報は誤解を招くものです:
Zabbix-serverには別のセキュリティグループがあり、ポート10050および10051にはルールが設定されていないため、ブロックする必要があります。 Iptablesはルールを返しません。
アクティブモードを使用しているため、ポートに関する上記は当てはまりません。サーバーがクライアントを接続するには、ポート10051が開いている必要があります。そうでない場合、パッシブモードを使用する必要があります。
そのため、間に必要なファイアウォールルールを確認し、クライアント/エージェントがこのポートでサーバーにアクセスできることを確認してください。他のエージェント(他の稼働中のサーバー上)がポート10051でZabbixサーバーに到達できると確信しています。