Hostが繋がらず、Got empty string from…[agent.ping]とエラーが表示されます
初めて質問させて頂きます。
現在、AmazonEC2でDebianLinuxにZABBIXをインストールして、
サーバとクライアントをつなげようとしているのですが、
上手くいかず悩んでいます。
Configuration⇒Hostsで確認すると、
Got empty string from [ホスト名] IP [184.11.11.11] Parameter[agent.ping]
と表示されています。
?クライアント[184.11.11.11]側では
zabbix_agentd.conf で以下の設定をしています。
zabbix_agent.conf は何もしていません。
Server=175.22.22.22
ServerPort=10051
ListenIP=184.11.11.11
ListenPort=10050
?サーバ[175.22.22.22]側では
zabbix_server.conf で以下の設定をしています。
ListenIP=175.22.22.22
ListenPort=10051
confファイル変更後は、
etc/init.d/zabbix-server start
etc/init.d/zabbix-agent start
を実行しています。
[agent.ping]というエラーメッセージからして
ポート番号の解放が正しくないと推測しているのですが、
どういった点を調べればよいでしょうか。
詳しい方がいましたら教えて頂ければと思います。
よろしくお願いします。
なお、設定には下記サイトを参考にしました。
http://www.server-world.info/query?os=CentOS_5&p=zabbix&f=7
http://d.hatena.ne.jp/aiueo88/20090827/
TNK - 投稿数: 4730
zabbix_agentd.confのDebugLevelを一時的に4などにして、zabbix-agentdを再起動し、ログファイルの内容を確認してみてください。
1.ログに
Listener error: Connection from [::ffff:nnn.nnn.nnn.nnn] rejected.
というようなメッセージが出ている
→
IPv6が有効になっていませんか?
その場合は、zabbix_agentd.conf内のServerにzabbix_serverのIPv6のアドレスもカンマ区切りで追記してみてください。
2.zabbix_serverからtelnetを利用してzabbix_agentに接続できるか
注:zabbix_agentdのポート番号は10050のはず。
例: $ telnet 184.11.11.11 10050
→
接続できないならば、EC2のSecurity GroupやOS上の設定などで制限していないか確認して下さい。
または、zabbix_agentdのプロセスが起動しているか確認して下さい。
→
接続できたならば、「system.uname」などのキーを入力して応答が返却されるか確認してください。
Lloyd - 投稿数: 25
TNK様
返信ありがとうございます。
職場のシステムに関して質問させて頂いているので、
教えて頂いた内容で月曜日に試してみます。
>「system.uname」などのキー
とは、ZABBIX上のいずれかの画面から入力するのでしょうか?
TNK - 投稿数: 4730
Zabbixの画面上からではありません。
ポート番号10050を利用してtelnetコマンドで接続した後に入力します。
短時間で接続は切られてしまいますので、ターミナルのコピーアンドペーストを活用すると良いと思います。
Lloyd - 投稿数: 25
アドバイス頂いたことを試してみました。
・ログにIPv6と見られる記述は出てきませんでした。
・コマンドプロンプトからtelnetを利用してzabbix_agentに接続できたのですが、
右クリック>貼り付けで「system.uname」を入力する度に接続が切られてしまい、
応答が返却されるかは確認できませんでした。
ログを見ていると、下記メッセージが表示されていました。
【監視サーバ[175.22.22.22]のログ(zabbix_agentd.log)】
zabbix_agentd [8179]: Warning: ZABBIX semaphores already exist, trying to recreate.
zabbix_agentd started. ZABBIX 1.4.6.
Listener failed with error: Cannot bind to port 10050 for server 184.11.11.11. Error [Cannot assign requested address]. Another zabbix_agentd already running ?.
原因としてひとつ思い当たるのが、
監視サーバに対してサーバだけでなくエージェントもインストールしたことです。
インストールは下記コマンドをputtyjpで実行しました。
・aptitude install zabbix-server-mysql
・aptitude install zabbix-agent
このせいでエージェントが重複し、
Another zabbix_agentd already runningと言われているような気がします。
アンインストール方法など引き続き探ってみますが、
皆様のアドバイスを頂けたらうれしいです。
よろしくお願いします。
TNK - 投稿数: 4730
ご参考までに、telnetでエージェントに接続でき、「system.uname」を入力した場合は以下のような応答が返却されます。(例:CentOS 5)
<code>
$ telnet ホスト名 10050
Trying xxx.xxx.xxx.xxx...
Connected to ホスト名 (xxx.xxx.xxx.xxx).
Escape character is '^]'.
system.uname
ZBXDeLinux ホスト名 2.6.18-194.11.3.el5 #1 SMP Mon Aug 30 16:19:16 EDT 2010 x86_64 x86_64 x86_64 GNU/LinuxConnection closed by foreign host.
$
</code>
また、
に関してですが、「semaphores already exist」は、単純にzabbix_agentdが既に起動しているにも関わらず、再度起動しようとしたのが問題だったのではないでしょうか。
まずは、一度、zabbix_agentdを全て終了させ、psコマンドなども利用してプロセスが残っていないかを再確認してからzabbix_agentdを起動してみてください。
そして、「Cannot bind to port 10050 for server 184.11.11.11.」ですが、これが監視サーバ[175.22.22.22]上のログであるならば、zabbix_agentd.confのListenIPの設定が誤っているようです。zabbix_agentd.confのListenIPは、自分自身のIPアドレスを指定することが必要ですので、再度、zabbix_agentd.confの設定をご確認下さい。
クライアント[184.11.11.11]上のログであれば、上と同じく、すでにzabbix_agentdが起動された状態であったのが問題でしょう。
また、Debianのバージョンやそのインスタンスを起動する際に利用したAMIのAMI IDもわかるようでしたらお教え下さい。
Debianのパッケージングがどうなっているかわからないので、確実な情報ではありませんが、サーバとエージェントの両方をインストールしたとしても、プロセスは別なので問題は無いと思います。
Lloyd - 投稿数: 25
無事接続できました!
クライアント[184.11.11.11]側の zabbix_agentd.conf で、
ListenIP=184.11.11.11
↓
#ListenIP=184.11.11.11
と変更することでConfiguration画面のAvailabilityがAvailableになりました。
細かい監視設定はこれから勉強しながら行っていきますが、
ひとまずこのトピックはクローズさせて頂きます。ありがとうございました。
なお、AMI IDは「ami-b1f38ce3」です。
サーバとエージェントの両方をインストールしている件はそのままにしています。
また、下記トピックを参考にさせて頂きました。
http://www.zabbix.jp/modules/newbb/viewtopic.php?topic_id=417&forum=5&start=0