Zabbixでapcuの利用率を計測する
apache上のmod_phpのキャッシュとしてapcuを利用しています。時折パフォーマンスが落ちることがあって、キャッシュの利用率ってどうなってるんだろうということで調査。
どうせなら、zabbixで監視して履歴を取ってみようってことでやってみました。
ほぼここにかかれているのをzabbixに置き換えただけです。
こんなファイルを用意
適当に名前をつけて、apacheで参照できるところにこんなファイルを作成します。
<?php print(json_encode(apc_sma_info())); ?>
こいつをGETすると、apcuのセグメントごとに使ったサイズがjson形式ででてきます。
ここでは仮に apcu.php として保存したことにします。
jqで利用率を計算する
zabbixエージェントで計算します。こんな行をzabbix_agentd.confに追加。
UserParameter=hoge.apcu_use_racio.curl -s http://localhost/apcu.php | jq '100 - .avail_mem / .num_seg / .seg_size * 100'
jqはjsonを食わせるプロセッサ。 .seg_sizeって書くと、jsonのエレメントがいくつあっても合計値をだしてくれるみたい。便利。しらなかった。これで利用率を計算できる。
zabbix_agentd.confを編集したらzabbix agentを再起動。
あとはアイテムを追加
あとはzabbixサーバでアイテムを追加。キーは上記でUserParameterにつづいて書いたもの。上記例だとapcu_use_racioですね。
結果
512Mほど確保しているんですが、50%程度の利用率で安定しているみたい。当然ですが、再起動すると0まで下がります。