zabbix-serverが落ちました
いつもお世話になっております。
サーバ起動後にzabbix-serverが落ちました。
■環境
サーバ:CentOS6.2 64bit
zabbix-server:1.8.16
zabbix-agent:1.8.16
IPアドレス:xxx.xxx.15.13
■zabbix-server.conf(#から始まる行は割愛)
LogFile=/var/log/zabbix/zabbix_server.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_server.pid
DBName=zabbix
DBUser=xxxx
DBPassword=xxxx
ListenIP=xxx.xxx.15.13 #サーバのローカルIPアドレス
AlertScriptsPath=/etc/zabbix/alertscripts
ExternalScripts=/etc/zabbix/externalscripts
■zabbix_server.log
1570:20130918:083802.243 Starting Zabbix Server. Zabbix 1.8.16 (revision 32809).
1570:20130918:083802.376 ****** Enabled features ******
1570:20130918:083802.376 SNMP monitoring: YES
1570:20130918:083802.376 IPMI monitoring: YES
1570:20130918:083802.376 WEB monitoring: YES
1570:20130918:083802.377 Jabber notifications: YES
1570:20130918:083802.377 Ez Texting notifications: YES
1570:20130918:083802.377 ODBC: YES
1570:20130918:083802.377 SSH2 support: YES
1570:20130918:083802.377 IPv6 support: YES
1570:20130918:083802.377 ******************************
1570:20130918:083803.094 listener failed: bind() for [[xxx.xxx.15.13]:10051] failed: [99] Cannot assign requested address
1635:20130919:105514.938 Starting Zabbix Server. Zabbix 1.8.16 (revision 32809).
1635:20130919:105514.938 ****** Enabled features ******
1635:20130919:105514.938 SNMP monitoring: YES
1635:20130919:105514.938 IPMI monitoring: YES
1635:20130919:105514.938 WEB monitoring: YES
1635:20130919:105514.938 Jabber notifications: YES
1635:20130919:105514.938 Ez Texting notifications: YES
1635:20130919:105514.938 ODBC: YES
1635:20130919:105514.938 SSH2 support: YES
1635:20130919:105514.938 IPv6 support: YES
1635:20130919:105514.938 ******************************
1719:20130919:105518.979 server #1 started [configuration syncer #1]
1720:20130919:105518.980 server #2 started [db watchdog #1]
1729:20130919:105519.218 server #9 started [trapper #1]
1730:20130919:105519.218 server #10 started [trapper #2]
1731:20130919:105519.221 server #11 started [trapper #3]
1732:20130919:105519.337 server #12 started [trapper #4]
1739:20130919:105519.451 server #14 started [icmp pinger #1]
1738:20130919:105519.465 server #13 started [trapper #5]
1742:20130919:105519.561 server #16 started [housekeeper #1]
1742:20130919:105519.561 executing housekeeper
1743:20130919:105519.561 server #17 started [timer #1]
1741:20130919:105519.562 server #15 started [alerter #1]
1748:20130919:105519.584 server #18 started [http poller #1]
1751:20130919:105519.688 server #20 started [history syncer #1]
1752:20130919:105519.688 server #21 started [history syncer #2]
1755:20130919:105519.695 server #22 started [history syncer #3]
1756:20130919:105519.699 server #23 started [history syncer #4]
1759:20130919:105519.803 server #24 started [escalator #1]
1760:20130919:105519.804 server #25 started [proxy poller #1]
1635:20130919:105519.805 server #0 started [main process]
1763:20130919:105519.811 server #26 started [self-monitoring #1]
1723:20130919:105519.944 server #5 started [poller #3]
1722:20130919:105519.945 server #4 started [poller #2]
1721:20130919:105520.890 server #3 started [poller #1]
1749:20130919:105521.005 server #19 started [discoverer #1]
1726:20130919:105521.479 server #6 started [poller #4]
1728:20130919:105521.487 server #8 started [unreachable poller #1]
1727:20130919:105521.975 server #7 started [poller #5]
1742:20130919:105525.548 housekeeper deleted: 8180 records from history and trends, 0 records of deleted items, 0 events, 0 alerts, 0 sessions
9/18のサーバ起動時にzabbix-serverは起動したようですがその後落ちたようです。
ログにはこれ以上何も表示されておりません。/var/logのログファイルも見てみましたが、zabbix-serverに関するログはありませんでした。
9/19にzabbix-serverが落ちていることに気付いてサーバの再起動を実施したところです。
説明を求めらていますが、原因がわからず困っています。
忙しいところすみませんが、教えていただけないでしょうか。よろしくお願いします。
fripper - 投稿数: 495
1570:20130918:083803.094 listener failed: bind() for [[xxx.xxx.15.13]:10051] failed: [99] Cannot assign requested address
このログが原因を示していると思います
zabbix_server が trapper (zabbix_agentd のアクティブ監視などの報告データを受け入れるための部分) で利用する
ポート番号10051 が、zabbix_server 起動の時点で、既に他のプログラム等で利用されており、
ポートのオープンに失敗してしまったようです
そのため、異常終了したのだと思われます
同時に実行されている他のプログラムで、10051 番ポートが使われるような設定になっていないか、を
ご確認ください
katosai - 投稿数: 36
fripper様
回答ありがとうございます。
zabbix-serverを落とした状態で、「lsof -i:10051」や「netstat -nap | grep 10051」を実行してみましたが、何も表示されませんでした。
サーバ起動の度に発生するわけではないので、調査が難しいのですが。。。
他の確認方法や解決方法がございましたら、教えていただけないでしょうか?
KAZ - 投稿数: 1085
Katosaiさん
Zabbix_serverが落ちたタイミングでポートの使用状況はサーバは調べられますか?
また、根本解決ではないですがサーバのポートを10051からずらすと言う手もあるかと…f(^_^;
fripper - 投稿数: 495
OS 全般の話になってしまうのですが、通信ソケットの「From」側に使われるポート範囲の設定を
変更したりしていませんか?
CentOS のデフォルトですと、以下のようになっているかと思います
# cat /proc/sys/net/ipv4/ip_local_port_range
32768 61000
上記の例ですと、ネットワーク通信ソケットの From ポートをOSが自動選択する際に、32768-61000の中で
空いているポートを使う、という設定になるわけですが、これが
1024-61000
みたいな感じになってしまっているようですと、zabbix_server が起動しようとした瞬間に、他のプログラムが
何らかのネットワーク通信をしていて、それに 10051番ポートが割り当てられてしまっている可能性があります
設定の確認は、上記のコマンドにて。
設定の変更は、
/etc/sysctl.conf に、以下のような1行を書いて
net.ipv4.ip_local_port_range = 32768 65500
/sbin/sysctl -p /etc/sysctl.conf
とすれば、大丈夫なはずです。
他のプログラムの動作にも影響する部分ですので、変更した覚えがないのに設定が変わっている場合などには
十分注意して設定を変更してください
katosai - 投稿数: 36
KAZ様、fripper様
回答ありがとうございます。
変更はしておりません。/proc/sys/net/ipv4/ip_local_port_rangeを確認してみましたが、「32768 61000」のままでした。
サーバ起動の度に落ちているわけではないので、次回落ちたタイミングでポートの使用状況を見ることになります。
その際の調べ方は「lsof -i:10051」や「netstat -nap | grep 10051」でよいでしょうか?
TNK - 投稿数: 4760
もう一つ可能性として考えられることとして、ネットワークの設定
をあげておきます。
ネットワークの設定管理にNetworkManagerを利用されていませんか?
他のものを利用している場合にも発生する可能性もあるかもしれま
せんが、環境によっては、NetworkManagerなどでネットワークを有
効化する前に、zabbix_serverが起動しようとされていたりしませ
んでしょうか?
そうすると、特定のIPを利用してバインド(ネットワーク通信口の
登録)をしようとした際に、そのIPが有効化されていなければ、同
様にバインドできないエラーになる可能性が考えられます。
私自身はそのような現象になったことはありませんが、可能性の一
つとしてあげさせていただきます。
対策としては、zabbix_server.confでListenIPにIPアドレスを指定
しないで、設定行自体をコメントアウトしてしまって、サーバの全
アドレス(0.0.0.0)を利用してバインドするようにしてみてはいか
がでしょうか?
zabbix_serverのネットワークの受付口が特定のネットワークI/Fに
限定できなくなりますが、ネットワークの有効化が遅延した場合の
対策としては有効かもしれません。
他のプロセスがzabbix_server用のポートを使用していないかを確
認されるのであれば、
でよいと思います。
katosai - 投稿数: 36
TNK様
返信が遅くなりすみません。回答ありがとうございます。
NetworkManagerは使用しておりませんでした。
原因がわかっておりませんので、少し様子見していきます。
TNK - 投稿数: 4760
NetworkManagerを利用していなくても、IPアドレスの有効化が
遅れた場合に発生する可能性があります。
0.0.0.0でバインドする方法は試して頂けないのでしょうか?
もしくは、完全な対策ではありませんが、zabbix_serverの起動
スクリプト内で、zabbix_server起動前にsleepで10秒程度待つとか
も有効かもしれません。
ご検討ください。