Configuration buffer サイズ
UbuntuServer に 1.8.1をインストールし利用しています。
数ヶ月正常に運用していたのですが、ホストの追加をしたところ、全てのホストが更新されなくなりました。
SNMPを投げていないようです。
Zabbixをリスタートしたところ、下記エラーがzabbix_server.logに記録されました
/usr/sbin/zabbix_server [15984]: ERROR: Configuration buffer is too small. Please increase CacheSize parameter.
現在の登録数は
ホスト数:155
アイテム数:5322
トリガー数:1347
です。
CacheSizeはどこで増やせるのでしょうか?
宜しくお願い致します
BRS - 投稿数: 6
追記です
実は自分でインストールしたZABBIXと他者が行ったもの二つあります。
どちらも1.8.1なのですが、私がインストールした方のzabbix_server.confには、
### Option: CacheSize
# Size of configuration cache, in bytes.
# Shared memory size for storing hosts and items data.
#
# Mandatory: no
# Range: 128K-1G
# Default:
# CacheSize=8M
がありました。
こちらで変更可能ですかね。。
ただ、他者がインストールしたものは、confファイルの書式が異なり、同パラメータは存在していません。
確認中です
kodai - 投稿数: 1341
こんにちは。
/etc/zabbix/zabbix_server.confにCacheSize=の設定があるので、その設定を増やしてZabbixサーバを再起動すれば良いと思います。
デフォルト8MBなので、設定が多くなり足りなくなってしまったんでしょうね。
BRS - 投稿数: 6
返信ありがとうございます
同時刻に書き込みでしたね。。
zabbix_server.confの書式が違うので確認していたのですが、
わからないので、最後尾に
CacheSize=32M
追記で修復しました。
32M以上の値だと正常に動かないのも気になりますが。。。。
TNK - 投稿数: 4731
もしかして、
<code>
ERROR: Can't allocate shared memory for configuration cache.
</code>
というメッセージがでるのではありませんか?
そうであるならば、カーネルの共有メモリサイズの調整は行われていますか?
CentOS 5の場合は、
<code>
kernel.shmmax = 4294967295
kernel.shmall = 268435456
</code>
となっているので、試しにCacheSizeを64Mとかに変更してもzabbix_serverを起動できました。
現在のshmmaxの設定値は、
<code>
cat /proc/sys/kernel/shmmax
</code>
で確認できると思います。その結果が32MBになっていませんか?
ご確認下さい。
ご参考:
/procによるLinuxチューニング [後編]
http://www.atmarkit.co.jp/flinux/special/proctune/proctune02a.html
kodai - 投稿数: 1341
試してみたのですが、CacheSize=64Mや128MでもZabbixサーバは起動できました。ソースも見た限りは設定ファイルのコメント同様1GBまで設定できるようです。
ただ、設定を変更してservice zabbix-server restartを実行しただけだと、zabbix_server.logに
<code>Listener failed with error: zbx_tcp_listen() Fatal error: unable to serve on any address. [[(null)]:10051].</code>
と出て起動できなかったのですが、再度service zabbix-server startを実行すると起動できました。
もしかすると、正常に動かないというのはこの問題ではないでしょうか?
起動スクリプトに問題があるようなので、この問題は修正しておこうと思います。
TNK - 投稿数: 4731
Ubuntu Server 10.04の環境を構築し、Zabbixサーバをインストールしてみました。
やはり、shmmaxの値がデフォルトだと32MBしか指定されておらす、zabbix-server.confのCacheSizeを32M以上にすると、
<code>
ERROR: Can't allocate shared memory for configuration cache.
</code>
というメッセージが出力されてzabbix_serverを起動できませんでした。
つまり、Ubuntu Serverの場合、shmmaxの値の設定を行わない限り、デフォルトの状態では、CacheSizeを64Mとか128Mとか指定するとエラーとなりzabbix_serverを起動できません。
128Mを指定するために、shmmaxに134217728以上の値を設定後、CacheSizeを128Mに指定したところ、zabbix_serverを起動できました。
繰り返しになりますが、
<code>
ERROR: Can't allocate shared memory for configuration cache.
</code>
というメッセージが出力されてzabbix_serverを起動できない場合は、/etc/sysctl.confに
<code>
kernel.shmmax = 134217728
</code>
などとデフォルト値から拡張してみてください。
上記の値の例は、128MBですが他のプロセスで利用する分も考慮して調整して下さい。