muninのプラグインを作ろうと思ったので、作ってみた。
MySQLのクエリキャッシュヒット率をグラフ表示するだけだけど・・・。
ちなみに、僕はシェルが書けないので、
PHPで値を出力してシェルに渡すという面倒な手法を使っています。
サーバのOSは CentOS6 です。
<?php //キャッシュヒット率を計算する exec('mysqladmin -u root --password=server_password extended-status | grep Qcache', $output); $cache_items = array( 'Qcache_free_blocks', 'Qcache_free_memory', 'Qcache_hits', 'Qcache_inserts', 'Qcache_lowmem_prunes', 'Qcache_not_cached', 'Qcache_queries_in_cache', 'Qcache_total_blocks' ); $cache_data = array(); foreach($output as $str){ $str = str_replace(array('|', ' '), '', $str); foreach($cache_items as $cache_item){ if(strpos($str, $cache_item) !== false){ $cache_data[$cache_item] = str_replace($cache_item, '', $str); } } } echo round($cache_data['Qcache_hits'] / ($cache_data['Qcache_hits'] + $cache_data['Qcache_inserts'] + $cache_data['Qcache_not_cached']) * 100, 0); ?>
以下のシェルスクリプトでヒット率をグラフ化する。
#!/bin/sh #%# family=auto #%# capabilities=autoconf #値を返すスクリプトの実行コマンド GETNUM=`php /var/lib/mysql/get_db_sprex_query_cache.php` if [ "$1" = "autoconf" ]; then if [ -n ${GETNUM} ] ; then echo yes exit 0 else echo no exit 0 fi fi if [ "$1" = "config" ]; then echo 'graph_title mysql_query_cache' echo 'graph_args -r --lower-limit 0 --upper-limit 100' echo 'graph_vlabel hit' echo 'graph_category mysql2' echo 'total.label hit' echo 'total.min 0' echo 'total.draw LINE2' echo 'total.type GAUGE' exit 0 fi echo "total.value $GETNUM";
シェルスクリプトは以下のものをそのままコピーして使っています。
ありがとうございます、とても参考になりました。
問題があれば削除します。
http://www.seeds-std.co.jp/seedsblog/671.html
あとは実行権限を与えて
# chmod 777 -R /usr/share/munin/plugins/random_number
リンクを貼って
# ln -s /usr/share/munin/plugins/random_number /etc/munin/plugins/random_number
再起動するだけ
# /etc/init.d/munin-node restart