zabbix-agentが動作しない(windows)

お世話になっております。

下記の件、ご教示ください。

?新規でwindowsをagent対象にしたが、監視できていない。
?もともと監視できていた、アクティブチェックを動作させたい。

【インストール環境】
(zabbix-server:OS(Cent OS 5.3))
(zabbix-agent:OS(Cent OS 5.3)zabbix-server内で動作中、(Windows2003)別サーバで動作中)
どちらもzabbixバージョン1.8です。

【現象】
ローカルで監視しているagent(Cent OS 5.3)については監視できていますが、今回新規で設定したWindowsについて監視できていない。

[url=http://www.zabbix.jp/modules/newbb/viewtopic.php?viewmode=flat&topic_id=287&forum=4]本サイト内の似た用な質問[/url]

こちらで確認した設定事項については、すでに設定できており、Windows内ではagentは動作しております。
※ちなみにWindowsではファイアウォールの設定を無効にしています。

【ログ】
zabbix-server内で怪しいログがありましたので参考までに載せておきます。
Listener failed with error: Cannot bind to port 10051 for server IPアドレス. Error [Cannot assign requested address]. Another daemon already running on this port ?.

ちなみに
telnet IPアドレス 10051で接続しようとすると
Unable to connect to remote host: Connection refused
とログインできません。

さらにローカル(Cent OS 5.3)で動作中のagent.logを見てみると
Get active checks error: Cannot connect to [IPアドレス:10051] [Connection refused]
8886:20100217:151008 Getting list of active checks failed. Will retry after 60 seconds
logファイルをアクティブチェックしてましたが、急にとれなくなっていました。
※別問題の気がしますが。。。

iptables上では
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 10051 -j ACCEPT
とポートを開けております。。。

多少、わかりずらい質問になりましたが、ご教示願います。
((ノ(_ _ ノ)ヨロシクオネガイシマス

コメント表示オプション

お好みのコメント表示方法を選び「設定の保存」をクリックすると変更が反映されます。
ユーザー TNK の写真

エラーログを拝見すると、ポート番号 10051を別のプロセスが利用してしまっている可能性が考えられます。

一度、zabbix_serverを停止して、ポート番号 10051でLISTENしているプロセスがいないか確認してみてください。
lsofコマンドがインストールされているならば、

 lsof -i:10051

でも確認できると思います。

ユーザー robinmasuk の写真

TNK様

早々なご返信ありがとうございます。

一度、zabbix_serverを停止して、ポート番号 10051でLISTENしているプロセスがいないか確認してみてください。 lsofコマンドがインストールされているならば、

 lsof -i:10051

でも確認できると思います。

いやぁぁぁ
別問題です。(ワラ)
zabbix_serverを停止しようと思ったのですが、、、

# service zabbix_server stop
Shutting down zabbix_server: [失敗]

ps aux | grep zabbix
zabbix 10584 0.0 0.1 7252 488 ? SN 17:10 0:00 /usr/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf
zabbix 10586 0.0 0.5 7252 1524 ? SN 17:10 0:00 /usr/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf
zabbix 10587 0.0 0.1 7252 424 ? SN 17:10 0:00 /usr/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf
zabbix 10588 0.0 0.1 7252 424 ? SN 17:10 0:00 /usr/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf
zabbix 10589 0.0 0.1 7252 424 ? SN 17:10 0:00 /usr/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf
zabbix 10590 0.0 0.2 7316 536 ? SN 17:10 0:00 /usr/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf
root 10625 0.0 0.2 4988 748 pts/0 R+ 17:13 0:00 grep zabbix

てか動いてなさそうです。(/_<) ナケルネェ

service zabbix_server start
Starting zabbix_server:
[ OK ]
と動いていそうですが、psコマンド打つと動いていなさそうです。。。
上記コマンドを打った瞬間に
service zabbix_server statusを打つと
zabbix_server は停止していますがサブシテムがロックされています

/var/lock/zabbix_server
をrmで削除してstartしてもすぐ

service zabbix_server status
zabbix_server は停止していますがサブシテムがロックされていま

と同じ現象を繰り返しています。

webフロントエンドから
【レポート】→【zabbixserverの状態】を見てみると
”いいえ”になっているので、落ちてると思います。

ちなみに
lsof -i:10051
を打っても何のコメントもありませんでした。

試しに
service iptables stop
zabbix-server上のファイアウォールをきってもWindowsからは監視できませんでした。

なんか別問題も浮上しましたが、改めてご教示くださいませー。
エーン!!−=三ヾ(ヾ(ヾ(ヾ(ヾ(ヾ(*T□T)ツ

ユーザー TNK の写真

service zabbix_server startを実行して、psコマンドでzabbix_serverのプロセスがいないのであれば、zabbix_serverの起動時に問題がありそうですね。
そのservice zabbix_server startを実行したときに何らかのメッセージがログに出ていると思いますので再度ご確認下さい。

ユーザー robinmasuk の写真

TNK様

迅速な返信ありがとうございます。
(人-)謝謝(-人)謝謝

service zabbix_server startを実行して、psコマンドでzabbix_serverのプロセスがいないのであれば、zabbix_serverの起動時に問題がありそうですね。 そのservice zabbix_server startを実行したときに何らかのメッセージがログに出ていると思いますので再度ご確認下さい。

確認してみたのでご確認ください。

date
2010年 2月 17日 水曜日 18:28:34 JST

service zabbix_server start
Starting zabbix_server: [ OK ]
tail -n 30 /var/log/zabbix/zabbix_server.log

10644:20100217:171435.396 IPMI monitoring: NO
10644:20100217:171435.396 WEB monitoring: NO
10644:20100217:171435.397 Jabber notifications: NO
10644:20100217:171435.397 ODBC: NO
10644:20100217:171435.397 SSH2 support: NO
10644:20100217:171435.397 IPv6 support: NO
10644:20100217:171435.397 **************************
10644:20100217:171435.431 Listener failed with error: Cannot bind to port 10051 for server IPアドレス. Error [Cannot assign requested address]. Another daemon already running on this port ?.
10817:20100217:180200.953 Starting zabbix_server. Zabbix 1.8 (revision 8565).
10817:20100217:180200.953 **** Enabled features ****
10817:20100217:180200.953 SNMP monitoring: YES
10817:20100217:180200.953 IPMI monitoring: NO
10817:20100217:180200.953 WEB monitoring: NO
10817:20100217:180200.953 Jabber notifications: NO
10817:20100217:180200.953 ODBC: NO
10817:20100217:180200.953 SSH2 support: NO
10817:20100217:180200.953 IPv6 support: NO
10817:20100217:180200.953 **************************
10817:20100217:180201.085 Listener failed with error: Cannot bind to port 10051 for server IPアドレス. Error [Cannot assign requested address]. Another daemon already running on this port ?.
10922:20100217:182851.491 Starting zabbix_server. Zabbix 1.8 (revision 8565).
10922:20100217:182851.506 **** Enabled features ****
10922:20100217:182851.507 SNMP monitoring: YES
10922:20100217:182851.507 IPMI monitoring: NO
10922:20100217:182851.507 WEB monitoring: NO
10922:20100217:182851.507 Jabber notifications: NO
10922:20100217:182851.507 ODBC: NO
10922:20100217:182851.507 SSH2 support: NO
10922:20100217:182851.507 IPv6 support: NO
10922:20100217:182851.507 **************************
10922:20100217:182852.310 Listener failed with error: Cannot bind to port 10051 for server IPアドレス. Error [Cannot assign requested address]. Another daemon already running on this port ?.

dateを見る限りだと、サービスは走ってそうですね。

このあとログを見てみると、serverは止まった用なログはでませんが、
service zabbix_server statusを打つと
zabbix_server は停止していますがサブシテムがロックされています
とでます。。。。
止まっているのかなーーーー
(。´Д⊂) ウワァァァン!

ユーザー TNK の写真

ソースを見る限り、起動時にListener failed with errorが出たらexit(1)で終了するようですし、psコマンドで出てきていないのであれば、zabbix_serverは起動できていないでしょう。

やはり、ポート番号 10051が利用済みであると判断される状態を、まずは解決しないといけないと思います。

lsofでも出力されるはずなのですが、

 netstat -nap|grep 10051

でも何か表示されませんか?

ユーザー robinmasuk の写真

TNK様

 netstat -nap|grep 10051

でも何も表示されません。

ちなみに
netstat -nap | grep 10050だと

tcp 0 0 IPアドレス:10050 0.0.0.0:* LISTEN 12138/zabbix_agentd

agentはいけてそうです。

追記で各confファイルの情報も記載させて頂きます。
解決の糸口が見つかればよいかと・・・

【zabbix-server.conf】
ListenPort=10051
ListenIP=(ローカル内のIP)Cent OS 5.3 ※zabbix-agent
ListenIP=(外部IP)Windows ※zabbix-agent
PidFile=/var/run/zabbix/zabbix_server.pid
LogFile=/var/log/zabbix/zabbix_server.log
DBName=zabbix
DBUser=zabbix
DBPassword=z1x2c3

【zabbix-agentd.conf】※Cent OS 5.3
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/run/zabbix/zabbix_agentd.log
Server=zabbix-serverのIPアドレス
Hostname=web-test
ListenPort=10050
ListenIP=agentのIPアドレス
ServerPort=10051

【zabbix-agentd.conf】※windows
Server=zabbix-serverのIPアドレス
Hostname=windows
ListenPort=10050
ListenIP=agentのIPアドレス
ServerPort=10051

なんだろうserverportの10051がカブってるのがいけないのかなーーーーー。。・゚゚・( ̄┏Д┓ ̄°*) ・゚゚・。ウワァーン!!

ユーザー TNK の写真

zabbix-server.confの「ListenIP」の指定に誤りがあります。
zabbix-serverのIPアドレスを指定して下さい。
もしくは、ListenIPの行をコメントアウトして下さい。

ユーザー robinmasuk の写真

TNK様

おはようございます。
早速ですが、、、、

zabbix-server.confの「ListenIP」の指定に誤りがあります。 zabbix-serverのIPアドレスを指定して下さい。 もしくは、ListenIPの行をコメントアウトして下さい。

ご指摘頂いた通り、
【zabbix-server.conf】(変更前)
ListenIP=(ローカル内のIP)Cent OS 5.3 ※zabbix-agent
ListenIP=(外部IP)Windows ※zabbix-agent
           ↓
(変更後)
ListenIP=(ローカル内のIP)Cent OS 5.3 ※zabbix-agent
#ListenIP=(外部IP)Windows ※zabbix-agent

だけにしたがうまく動かず。
そこで、
【zabbix-agentd.conf】※windows(変更前)
ListenIP=agentのIPアドレス
       ↓
(変更後)
#ListenIP=agentのIPアドレス

て、zabbix-serverのサービスを再起動すると、、
うまく動きました。。

service zabbix_server status
pid動作中でした。。。

完璧です。。。。

すみません結局confファイルの設定ミスでした。
(ノω・、) ウゥ・・・

TNK様がご存知でしたら以下2点を教えて頂き、認識誤りでしたらご指摘願います。

?ListenIPは相手側(server→agent、agent→server)のIPアドレスを指定する。
監視するIPを指定する項目ではないのでしょうか?

?confファイルに記載するportは、そのportを使用して各データを受信したり送信したりするポートですか??
※わかりにくい質問ですね。すみません・・・

どういう仕組みで監視データを送受信しているかというのを理解できてないと思います。
なんかそういうことがわかるページとかあれば別途、教えてください。

お忙しい中、大変恐縮ですがご教示をご教示をお願いいたします。

ユーザー TNK の写真

ちょっと長くなってしまいましたが、設定に関しては以下のような感じだと理解しています。

> ?ListenIPは相手側(server→agent、agent→server)のIPアドレスを指定する。
> 監視するIPを指定する項目ではないのでしょうか?

ListenIPは、自分自身で情報を受け取るために利用するIPアドレスを指定します。

Zabbix Server用サーバ機上でListenIPがzabbix-server.confに指定されていない(コメントアウトされている)場合は、Zabbix Server用サーバ機が持っているネットワークインターフェイス全てでZabbix Agentからの報告を受信できるようにします。
例えば、ネットワークカードが1枚で、IPアドレスに192.168.1.1とつけていれば、そのネットワークカードと、ループバック用のインターフェイス(IPアドレス:127.0.0.1)があるので、

 192.168.1.1
 127.0.0.1

の2つのIPアドレスで受信できる状態になるわけです。
使用するポート番号は、zabbix-server.confのListenPortで指定できます。(デフォルトが10051)

zabbix-server.confでListenIPを指定した場合は、そのIPアドレスのみで受信できるように準備します。
127.0.0.1を指定した場合、Zabbix Serverが稼動しているサーバ機の内部でしか利用できないインターフェイスなので、外部のZabbix Agentからのメッセージを受け取ることができません。(内部のZabbix Agentからは受信可能)
つまり、外部にあるZabbix Agentからのメッセージを受け取るようにするならば、Zabbix ServerとZabbix AgentがやりとりできるIPアドレスを指定する必要があります。

こんどは、Zabbix Agent側です。
Zabbix Agent側のzabbix-agentd.confに指定するListenIPは、Zabbix Serverからのメッセージを受け取るためのIPアドレスです。
これも、Zabbix ServerとZabbix AgentがやりとりできるIPアドレスを指定する必要があります。

> ?confファイルに記載するportは、そのportを使用して各データを受信したり送信したりするポートですか??

その通りです。

zabbix-server.confのListenIPは、Zabbix Serverが受信するためのIPアドレスです。
zabbix-server.confのListenPortは、Zabbix Serverが受信するためのポート番号です。
このListenXXの情報で、Zabbix ServerがZabbix Agentからの通知を待ち受けます。

zabbix-agentd.confのListenIPは、Zabbix Agentが受信するためのIPアドレスです。
zabbix-agentd.confのListenPortは、Zabbix Agentが受信するためのポート番号です。
このListenXXの情報で、Zabbix AgentがZabbix Serverからの指示や要求を待ち受けます。

zabbix-agentd.confのServerは、Zabbix Serverが受信するためのIPアドレスです。
zabbix-agentd.confのServerPortは、Zabbix Serverが受信するためのポート番号です。
このServerとServerPortの情報で、Zabbix AgentがZabbix Serverの待ち受け口に接続して通知を行います。

zabbix-agentd.confのServerは、Zabbix AgentがZabbix Serverからの指示や要求であるかを照らし合わせるためにも利用されます。

誤っているところがあればご指摘下さい。>皆様

ユーザー KAZ の写真

TNKさん、robinmasukさん

簡単に補足します。
下記だけ設定すれば動くかと。

■zabbix_server.conf
LogFile=ログファイルの出力先
PidFile=PIDファイルの出力先
DBName=データベース名
DBUser=データベースの接続アカウント
DBPassword=データベースの接続パスワード
ListenIP=ZabbixサーバのIPアドレス

■zabbix_agentd.conf
PidFile=PIDファイルの出力先
LogFile=ログファイルの出力先
Server=ZabbixサーバのIPアドレス
Hostname=(フロントエンドに登録する)ホスト名
ListenIP=ZabbixエージェントのIPアドレス

ユーザー robinmasuk の写真

TNK様
KAZ様

お世話になっております
まずはTNK様から・・・

zabbix-server.confでListenIPを指定した場合は、そのIPアドレスのみで受信できるように準備します。 127.0.0.1を指定した場合、Zabbix Serverが稼動しているサーバ機の内部でしか利用できないインターフェイスなので、外部のZabbix Agentからのメッセージを受け取ることができません。(内部のZabbix Agentからは受信可能) つまり、外部にあるZabbix Agentからのメッセージを受け取るようにするならば、Zabbix ServerとZabbix AgentがやりとりできるIPアドレスを指定する必要があります。

なるほど・・・
内部のインターフェースでどれから受信するかを選択する項目ってことですかねーー。

なら設定する必要がないような気がするのですが・・・
↑認識間違ってたらごめんなさい。

設定しなければ内部のインターフェース全てから受信できるのですよね??

メリットを感じないというか・・・(w_−; ウゥ・・

zabbix-agentd.confのListenIPは、Zabbix Agentが受信するためのIPアドレスです。 zabbix-agentd.confのListenPortは、Zabbix Agentが受信するためのポート番号です。 このListenXXの情報で、Zabbix AgentがZabbix Serverからの指示や要求を待ち受けます

zabbix-agentて何を受信するのでしょうか?
僕のイメージですけど
【zabbix-server】
ただのDB
agentから送られる関数値をただ管理しているだけ

【agent】
zabbix-serverから送られる関数式を実行して値をzabbix-serverに返す。

zabbix-serverから送られる関数式=受信
という認識で宜しいですか??
もう一点。agent.confのListenIPになにも設定しない場合は、どのような動きになるのですか??

基本的なことがわかっていません。
お手数かけますが、知識をください。

KAZ様

簡単に補足します。 下記だけ設定すれば動くかと。 ■zabbix_server.conf LogFile=ログファイルの出力先 PidFile=PIDファイルの出力先 DBName=データベース名 DBUser=データベースの接続アカウント DBPassword=データベースの接続パスワード ListenIP=ZabbixサーバのIPアドレス ■zabbix_agentd.conf PidFile=PIDファイルの出力先 LogFile=ログファイルの出力先 Server=ZabbixサーバのIPアドレス Hostname=(フロントエンドに登録する)ホスト名 ListenIP=ZabbixエージェントのIPアドレス

ListenIPの設定が無くても、監視できませんか??
なんか自分の認識誤りでしたら正してくださいませ。。。

宜しくお願いします。。

ユーザー KAZ の写真

robinmasukさん

内部のインターフェースでどれから受信するかを選択する項目ってことですかねーー。

なら設定する必要がないような気がするのですが・・・
↑認識間違ってたらごめんなさい。

実際の比較をしてみました。
<code>
■ListenIP指定
[root@xxxxxxx ~]# netstat -an|grep 10051
tcp 0 0 192.168.xxx.xxx:10051 0.0.0.0:* LISTEN
tcp 0 0 192.168.xxx.xxx:38882 192.168.201.xxx:10051 TIME_WAIT

■ListenIP指定無し
[root@xxxxxxx ~]# netstat -an|grep 10051
tcp 0 0 192.168.xxx.xxx:38882 192.168.201.xxx:10051 TIME_WAIT
tcp 0 0 :::10051 :::* LISTEN
</code>
「192.168.xxx.xxx」はサーバのアドレスです。
指定しないと全アドレスの情報を収集しています。

例えば、1台のハードに2つIPを割り当てたとします。
一つは192.168.1.1、もう一つは192.168.1.2です。

ListenIPを指定しないとZabbixは192.168.1.1、192.168.1.2と2つのアドレスをListenします。ListenIPを指定すれば指定した側のIPのみListenします。

ちなみに、192.168.1.1:10051をZabbixで使用した時、ListenIPを使用していると192.168.1.2:10051は違うソフトで使用することも可能です。

ぶっちゃけ、受信する・しないの話なら設定に意味はないかと。
「このアドレスに来る情報のみ信頼し監視データとして扱う」と言うことなら意味があるかと。

【zabbix-server】
ただのDB
agentから送られる関数値をただ管理しているだけ

情報を収集するポーラーが定期的に動いていてZabbixエージェントやsnmpエージェント、fpingを使った情報収集を行います。
また、トリガーに設定された条件で取得した情報をチェックし、イベントをON/Offを切り分けます。その後、イベントがOn/Offしたらメール送信orリモートコマンド発行を実行します。

【agent】
zabbix-serverから送られる関数式を実行して値をzabbix-serverに返す。

ZabbixエージェントにはZabbixエージェントとZabbixエージェント(アクティブ)の2つの動きがあります。

ZabbixエージェントはZabbixサーバが定期的に接続してきて、情報収集を行います。Zabbixエージェント(アクティブ)は定期的に情報を集めたZabbixエージェントがZabbixサーバにデータを送信します。

ListenIPの設定が無くても、監視できませんか??

監視できるか否か?と言うならYesです。

安全であるか?とか、設定に意味があるか?となるとNoじゃないかと。

ユーザー kodai の写真

コンパイル時に--enable-ipv6を指定していると(ZABBIX-JPのバイナリでは有効)、zabbix_agentd.confにListenIPを指定しない場合、IPv6で通信を行うようになります。

その場合、Server=の設定もIPv6で設定しないと整合性がとれずに監視が行えません。

ということで、IPv4の環境ではListenIPに明示的にIPv4のアドレスを指定しておく必要があります。

RHELやCentOSではデフォルトでIPv6が動作するようになっているので、OS側でIPv4オンリーの設定になっている場合は上記の限りではないですが。

ユーザー KAZ の写真

kodaiさん

IPv6は失念してました。
私の使用している環境はIPV4のみなので(実はIPV6環境って触ったことないです。)

自分でconfgureする時も--enable-ipv6は指定した事がありませんでした。そういう動きになるのですね。
フォローありがとうございます。

ユーザー robinmasuk の写真

kodai様
KAZ様

お世話になっております。

すみません、基礎的な部分がわかっていなくて、題名とは異なった内容になってしまいました。

しかし、私にとっては大変勉強になりました。

TNK様、kodai様、KAZ様本当にありがとうございました。

本件、これにてクローズとさせていただきます。

また今後とも宜しくお願い致します。