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 の写真

追記です

実は自分でインストールした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 の写真

こんにちは。

/etc/zabbix/zabbix_server.confにCacheSize=の設定があるので、その設定を増やしてZabbixサーバを再起動すれば良いと思います。

デフォルト8MBなので、設定が多くなり足りなくなってしまったんでしょうね。

ユーザー BRS の写真

返信ありがとうございます
同時刻に書き込みでしたね。。

zabbix_server.confの書式が違うので確認していたのですが、
わからないので、最後尾に

CacheSize=32M

追記で修復しました。

32M以上の値だと正常に動かないのも気になりますが。。。。

ユーザー TNK の写真

32M以上の値だと正常に動かないのも気になりますが。。。。

もしかして、
<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 の写真

試してみたのですが、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 の写真

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ですが他のプロセスで利用する分も考慮して調整して下さい。