Memcached のメトリクスを Zabbix で監視できるようにしてみた.忘れないようにメモっておく.
UserParameter
以下で定義した.ポイントは grep "STAT $1 "
の部分で,もし grep "$1"
のように単純化してしまうと,bytes
などのキーで複数行取得できてしまう.
- STAT bytes_read
- STAT bytes_written
- STAT limit_maxbytes
- STAT bytes
UserParameter=memcached.stats[*],echo "stats" | nc localhost 11211 | grep "STAT $1 " | awk '{print $$3}'
stats で取得できるキー一覧
ローカルの Vagrant 環境で実行した stats
の結果を載せておく.どのキーも重要だとは思うけど,特に以下のキーはグラフで可視化できるようにした.
- bytes ... アイテム全体のバイト数
- evictions ... メモリ上限を超えたために削除されたアイテム数(押し出されて削除されるイメージ)
- hits_percentage ... キーのヒット率(★独自計算項目なので後述する)
- get_hits ... キーがヒットした累計回数
- get_misses ... キーがヒットしなかった累計回数
- curr_items ... 現在のアイテム数
- curr_connections ... 現在のコネクション数
$ echo "stats" | nc localhost 11211 STAT pid 14909 STAT uptime 81610 STAT time 1459403731 STAT version 1.4.4 STAT pointer_size 64 STAT rusage_user 3.762428 STAT rusage_system 1.693742 STAT curr_connections 10 STAT total_connections 14 STAT connection_structures 11 STAT cmd_get 50 STAT cmd_set 50 STAT cmd_flush 0 STAT get_hits 50 STAT get_misses 0 STAT delete_misses 0 STAT delete_hits 0 STAT incr_misses 0 STAT incr_hits 0 STAT decr_misses 0 STAT decr_hits 0 STAT cas_misses 0 STAT cas_hits 0 STAT cas_badval 0 STAT auth_cmds 0 STAT auth_errors 0 STAT bytes_read 18852 STAT bytes_written 20853 STAT limit_maxbytes 855638016 STAT accepting_conns 1 STAT listen_disabled_num 0 STAT threads 4 STAT conn_yields 0 STAT bytes 18533 STAT curr_items 50 STAT total_items 50 STAT evictions 0 END
キーの意味
調べてて Memcached ってドキュメントが少ないなという印象を受けた.
キーの意味に関しては,GitHub の protocol.txt
に定義が書かれていてここを読んだりした.
Zabbix アイテム
以下のようにアイテムを定義する.get_hits
を例にしている.
項目 | 値 |
---|---|
名前 | get_hits |
タイプ | Zabbix エージェント |
キー | memcached.stats[get_hits] |
データ型 | 数値 (整数) |
データの形式 | 10進数 |
Zabbix 計算アイテム
キーのヒット率を可視化したかったため hits_percentage
という計算アイテムを作った.
値としては get_hits
と cmd_get
の値から計算している.
項目 | 値 |
---|---|
名前 | hits_percentage |
タイプ | 計算 |
キー | memcached.stats[hits_percentage] |
式 | last(memcached.stats[get_hits]) / last(memcached.stats[cmd_get]) * 100 |
データの形式 | 10進数 |
まとめ
Memcached の状況を可視化できるようになって運用しやすくなった.
Zabbix に詳しくなくて,試行錯誤しながらメトリクスを収集してるけど,困ったときは実戦入門本を読んだりしている.
改訂版 Zabbix統合監視実践入門 ~障害通知、傾向分析、可視化による省力運用 (Software Design plus)
- 作者: 寺島広大
- 出版社/メーカー: 技術評論社
- 発売日: 2014/06/17
- メディア: 大型本
- この商品を含むブログ (1件) を見る
Mackerel なら
Plugin が出ているし全く同じことができそう.