zabbix_serverメモリリーク?
お世話になっております。hiroyukiです。
zabbix_serverのメモリ使用率が徐々に上がっている状況で、最終的にout of memory になって、zabbix_serverプロセスがダウンしてしまい困っております。
1週間で2GBほど空きメモリが減っていくような状態です。
zabbix_serverプロセスがメモリ使用率が一番高いのだけ分かっていますが、その後、どこが原因か調査は皆さんどのようにされていますでしょうか?
↓ZABBIXのダッシュボードに表示されている情報
**********************************************
ホスト数 (有効/無効/テンプレート) 296 177 / 25 / 94
アイテム数 (有効/無効/取得不可) 7594 7070 / 191 / 333
トリガー数 (有効/無効)[障害/不明/正常] 2076 1997 / 79 [0 / 0 / 1997]
ユーザー数 (オンライン) 44 5
1秒あたりの監視項目数(Zabbixサーバの要求パフォーマンス) 97.64 -
■topコマンドでメモリ使用率順にソートした情報
top - 11:10:47 up 58 days, 1:55, 2 users, load average: 0.09, 0.10, 0.13
Tasks: 141 total, 2 running, 138 sleeping, 0 stopped, 1 zombie
Cpu(s): 2.2%us, 0.6%sy, 0.0%ni, 96.9%id, 0.2%wa, 0.0%hi, 0.1%si, 0.0%st
Mem: 17525536k total, 17078004k used, 447532k free, 167684k buffers
Swap: 0k total, 0k used, 0k free, 4305516k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
316 zabbix 20 0 3402m 3.2g 4512 S 0 19.3 27:07.98 zabbix_server
323 zabbix 20 0 2188m 2.1g 29m S 0 12.3 94:29.69 zabbix_server
326 zabbix 20 0 2184m 2.1g 29m S 0 12.3 94:11.45 zabbix_server
324 zabbix 20 0 2170m 2.0g 29m S 0 12.2 93:35.97 zabbix_server
325 zabbix 20 0 2167m 2.0g 29m S 1 12.2 93:13.32 zabbix_server
13584 www-data 20 0 227m 40m 5016 S 2 0.2 0:03.17 apache2
14175 www-data 20 0 227m 40m 4944 R 0 0.2 0:00.98 apache2
13999 www-data 20 0 223m 36m 5016 S 4 0.2 0:03.84 apache2
14354 www-data 20 0 223m 36m 4908 S 0 0.2 0:00.42 apache2
14252 www-data 20 0 220m 34m 4912 S 0 0.2 0:00.51 apache2
14000 www-data 20 0 217m 30m 4992 S 0 0.2 0:00.71 apache2
309 zabbix 20 0 111m 30m 28m S 0 0.2 17:18.01 zabbix_server
308 zabbix 20 0 111m 30m 28m S 0 0.2 17:42.35 zabbix_server
312 zabbix 20 0 111m 30m 28m S 0 0.2 17:12.36 zabbix_server
310 zabbix 20 0 111m 29m 28m S 0 0.2 17:07.45 zabbix_server
311 zabbix 20 0 111m 29m 28m S 0 0.2 17:05.53 zabbix_server
302 zabbix 20 0 111m 29m 28m S 0 0.2 40:35.54 zabbix_server
■zabbixサーバ自体のスペック
ハイメモリ エクストララージ インスタンス(AWS)
17.1 GiB のメモリ
6.5 ECU(3.25 ECU × 2仮想コア)
420 GB インスタンスストレージ
64ビット プラットフォーム
I/O 性能: 標準
EBS 最適化: 使用不可
TNK - 投稿数: 4769
Zabbixのバージョンが書かれていませんが、どのバージョンを利用
されているのでしょうか。
バージョンによって対応状況が異なる場合がありますので、ご質問
いただく際には、利用されているバージョンもお教えください。
あと、監視アイテムでSSHを利用しているようなアイテムはありま
せんか?
あるならば、利用されているlibssh2のバージョンが、1.4.2以降で
あることをご確認ください。
ご参考:
https://support.zabbix.com/browse/ZBX-4857
https://support.zabbix.com/browse/ZBX-4602
tsuzuki - 投稿数: 78
tsuzuki - 投稿数: 78
hiroyuki - 投稿数: 43
>TNK様、tsuzuki様
迅速な返答ありがとうございます。
使用しているバージョンは下記になります。
$ zabbix_server -V
Zabbix server v2.0.2 (revision 29214) (31 July 2012)
Compilation time: Aug 27 2012 15:10:50
sshについては、使用しております、libsshのバージョンは、1.2でした。。
なので、1.4.2以降にあげてみます。。
$ dpkg -l |grep libssh
ii libssh2-1 1.2.8-1 SSH2 client-side library
>■2.0〜2.0.5までで2.0系で修正されたZabbix Server側のメモリリーク
については、2.0.2から2.0.5に上げてみるのはよさそうですね。。
"@"付きの正規表現を どこかのトリガーで使ってないか確認してみます。
以上よろしくお願いします
hiroyuki - 投稿数: 43
/var/log/zabbix_server.log
に、関しては、
1ヶ月以上前に再起動しており、起動時点のログは、なくなっておりました。。
手動再起動した後にどの役割のプロセスが高メモリ使用率なのか確認してみます。
hiroyuki - 投稿数: 43
度々すみません、
zabbix_server再起動して、しばらくしてから、メモリ使用率の高いプロセスを確認してみたところ、
全て、history syncerの役割プロセスでした。
又、よく確認したところssh監視は使用していませんでした。失礼しました。
このことを踏まえると、
>■2.0〜2.0.5までで2.0系で修正されたZabbix Server側のメモリリーク
>・2.0.5で history syncer でのメモリリークが修正 [ZBX-5988]
> 発生条件は、トリガー条件式またはLLDで"@"付きの正規表現を "regexp()", "iregexp()", "logeventid()" の関数内で使用している場合
>・2.0.3で history syncer、timer、escalator でのメモリリークが修正 [ZBX-5435]
> 発生条件は、トリガー使っていると発生する可能性がある
こちらの可能性が高いのかなと思ってます。
history syncerとは、ログ収集プロセスなのでしょうか?
以前、ログ監視で、大量にログを読み込んでDBの容量が大きくなった経緯があり、history期間を1日にして暫定処置をしたと言うことがあります。
今もログは割と大量に受けてとしたら、メモリリークに関係あったりするでしょうか?
以上よろしくお願いします。
tsuzuki - 投稿数: 78
Zabbix Server は収集した監視データを一旦メモリ上に保管するのですが、それを定期的にDBに書き込みしています。
このメモリ上からDBへ収集した監視データを書き込むのが history syncer の役割になります。
その処理の中で同時にトリガーの評価とかもしていますが、基本的にはDBへ監視データ書き込みの役割です。
ログ収集自体は別のプロセスの担当になります。
ただ、ログの量が多ければDBへの書き込みやトリガーの評価数も多くなるので、メモリリークが増えるという相関関係はありえます。
hiroyuki - 投稿数: 43
>tsuzuki様
丁寧な返答ありがとうございます。なるほどです、
とりあえず、2.0.5にアップデートしました。しばらくしたら、結果をご報告したいと思います。
以上ですがどうぞよろしくお願い致します。
hiroyuki - 投稿数: 43
お世話になっております、hiroyukiです。
メモリリーク止まりました!(2.0.2から2.0.5にしたことで解決しました)
良かったです、ありがとうございました!
今後ともどうぞよろしくお願いします。