web-dev-qa-db-ja.com

Zabbixエージェントに到達できません

Zabbixによって監視されているサーバーの1つに到達できません。これが他のサーバーで正常に機能する理由はわかりません。

  • 監視対象サーバーのzabbix-agentサービスが実行されています。
  • いくつかのサーバーがあり、すべてzabbixによって監視されています。 /etc/zabbix/zabbix_agentd.confこの問題のあるサーバーと正常に動作する別のサーバーとの間に違いはありません。
  • Zabbixサーバーと監視対象サーバー(agent-server)の両方がAmazonによってホストされています。
  • すべてのzabbix監視対象サーバーは、zabbix-server IPのポート10050および10051に対する2つの受信ルールを持つセキュリティグループにリンクされています。そのため、zabbix-serverからこれらのサーバー上のzabbix-agentsへの着信要求を許可する必要があります。複数のサーバーで動作しますが、このサーバーでは動作しません。
  • Zabbix-serverには別のセキュリティグループがあり、ポート10050および10051にはルールが設定されていないため、ブロックする必要があります。 Iptablesはルールを返しません。
  • Zabbix-serverからエージェントへのtelnetセッションを開くことができます。自動的に切断されますが、接続されます。ですから、ファイアウォールは問題ではないと思います。
  • サーバー:Amazon Linux(Centosのような)
  • インストールされたファイル:http://repo.zabbix.com/zabbix/2.2/rhel/6/x86_64/zabbix-release-2.2-1.el6.noarch.rpm
  • これらのすべてのエージェントとサーバーでSELinuxが無効になっています。

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パッシブエージェント

  • 問題のあるエージェントIPのサーバーでポート10051を開きました。
  • Telnetは、エージェントからサーバーまで、それが機能することを示しています。
  • Zabbix-server-ipを値としてActiveServerオプションをアクティブ化しました。エージェントを再起動すると、エラーメッセージがログに表示されなくなります。
  • 問題はまだあります...

次の試み:

  • 動作中のエージェントについても同じことを行いました。エージェントからサーバーにTelnetで接続できます。
  • ActiveServerはzabbix-server-ipで設定され、エージェントが再起動されます
  • StartAgentsは0に設定され、アクティブエージェントを強制的に使用します。
  • Zabbixは、このサーバーに到達できないと報告しています...
  • 次に、パッシブにリセットします。

全体として、アクティブモードは複数のサーバーのエージェント構成で設定されている可能性があり、機能していません。すべてのレポートはパッシブエージェントからのものです。

エージェントインターフェイス

  • [監視]> [最新のデータ]から開き、[Host = all]を選択します。サーバー名をクリックし、[Host Inventory]を選択します
  • 作業エージェントは、独自のIPアドレスを表示します。
  • 問題のあるエージェントはzabbix-server-ipを表示します。

なぜこうなるのかはわかりませんが、奇妙に思えます。

この接続の問題の原因は何ですか?サーバーをエージェントに再接続するにはどうすればよいですか?

解決

ホスト構成で(Webインターフェースを介して)設定されたIPアドレスは、zabbix-server自体のIPアドレスであることがわかりました。もちろん、これはエージェントサーバーのアドレスでなければなりません。

3
SPRBRN

ホスト構成で(Webインターフェースを介して)設定されたIPアドレスは、zabbix-server自体のIPアドレスであることがわかりました。もちろん、これはエージェントサーバーのアドレスでなければなりません。

0
SPRBRN

エージェントボックスのSELinuxとiptablesの現在の設定はどうですか?エージェントTelnetからポート10051経由でサーバーに接続できますか?

エージェントでtcpdumpを使用して、ボックス間の接続を確認することができます:tcpdump -i your_interface tcp port 10050。これを使用して、着信/発信パケットを確認できます。

2
cuongnv23

問題を解決するには、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サーバーに到達できると確信しています。

2
Diamond