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まで下がります。