読者です 読者をやめる 読者になる 読者になる

Zabbixでmemcached監視

Zabbixでの簡単なmemcached監視方法を紹介します。
外部監視を使うので作業はZabbixサーバのみです。

まずはpecl-memcacheをインストール

[root@zabbix ~]# yum install php-pecl-memcache
もしくは
[root@zabbix ~]# pecl install memcache

どんな情報がとれるか見てみる

[root@zabbix ~]# php -r '$m=new Memcache;$m->connect("192.168.0.1");print_r($m->getstats());'
Array
(
    [pid] => 12458
    [uptime] => 1447846
    [time] => 1277565342
    [version] => 1.2.2
    [pointer_size] => 64
    [rusage_user] => 420.879016
    [rusage_system] => 737.528878
    [curr_items] => 23334
    [total_items] => 5298808
    [bytes] => 43796111
    [curr_connections] => 246
    [total_connections] => 94298
    [connection_structures] => 319
    [cmd_get] => 52581893
    [cmd_set] => 5298808
    [get_hits] => 47607547
    [get_misses] => 4974346
    [evictions] => 0
    [bytes_read] => 8204429908
    [bytes_written] => 38882266185
    [limit_maxbytes] => 4294967296
    [threads] => 4
)


取得できる情報の詳細はソース添付のドキュメントを参照してください。
http://github.com/memcached/memcached/blob/1.2.2/doc/protocol.txt
サブコマンドを使えばスラブ使用状況なども取れるみたいですね。

監視スクリプトを配置

ものすごく簡単な仕様にしました。

[root@zabbix ~]# cat /etc/zabbix/externalscripts/memcached.stats
#!/usr/bin/php
<?php

$host = $argv[1];
$key  = $argv[2];
$port = array_key_exists(3, $argv) ? $argv[3] : 11211;

$memcache = new Memcache;
$memcache->connect($host, $port);

$stats = $memcache->getstats();
echo $stats[$key];

?>

アイテム作成

テンプレートを作成してアイテム作ります。
秒あたりのGetリクエスト数だとこんな感じになるでしょう。

ホスト Template_App_memcached
説明 Memcached Get Requets / Sec
タイプ 外部チェック
キー memcached.stats[cmd_get]
データ型 数値(浮動小数
単位
乗数を使用 仕様しない
更新間隔(秒) 300
例外の更新間隔(秒)
例外の更新間隔の作成
ヒストリの保存期間(日) 90
トレンドの保存期間(日) 365
ステータス 有効
保存時の計算 差分/時間
アプリケーションの作成
アプリケーション Memcached


こんな感じで情報収集できます。


キャッシュヒット率なども計算アイテムが使えれば監視スクリプトの改修は必要ありません。

ホスト Template_App_memcached
説明 Memcached Cache Hit Rate
タイプ 計算
キー memcached.hit_rate
条件式 100 * last("memcached_stats[get_hits]") / last("memcached_stats[cmd_get]")
データ型 数値(浮動小数
単位 %
乗数を使用
更新間隔(秒) 300
例外の更新間隔(秒) 例外の更新間隔はありません
ヒストリの保存期間(日) 90
トレンドの保存期間(日) 365
ステータス 有効
保存時の計算 なし
アプリケーション Memcached


テンプレは後日Wikiで公開します。