munin プラグイン作成方法 [ user_beancounters の failcnt値 ]

2019-07-08

ServerMan@vpsで動作が遅くなる時は、仮想マシンのシステムリソースの割り当てに失敗するケースです。失敗しているかの確認は、「/proc/user_beancounters」のfailcnt値が見ると確認できます。この値はその都度確認するのは面倒なので、muninのプラグインを作成しました

参考URL:ServersMan@VPSで仮想マシンの動作が重い

プラグインの仕様は、cat /proc/user_beancountersを叩いて、tcpsndbuf, tcprcvbuffailcnt値をグラフ化します

failcnt値取得

下記のコマンドで、tcpsndbuf、tcpsndbufのfailcnt値を取得できるので、その値をグラフで利用します。
tcpsndbuf、tcpsndbufの値のみ取得するのは筆者の環境だと、その項目でEntryプランの時にfailcnt値が上がっていたためです

# cat /proc/user_beancounters | grep tcpsndbuf | awk '{print $6}'
# cat /proc/user_beancounters | grep tcpsndbuf | awk '{print $6}'

 

プラグイン作成

/usr/share/munin/plugins/beancounters_failcntのプラグインを作成し、そのファイルに実行権限をつけてます。/etc/munin/plugins/ 以下でシンボリックリンクを作成してmunin nodeを再起動するとグラフ化できます

/usr/share/munin/plugins/beancounters_failcntのプラグインを作成

プラグインをそのまま記載しています。参考にしてください

# vi /usr/share/munin/plugins/beancounters_failcnt
#!/bin/bash
#
# Plugin for /proc/user_beancounters failcnt (tcpsndbuf, tcprcvbuf)
#


#
# autoconf
#
if [ "$1" = "autoconf" ]; then
  echo "yes"
  exit 0
fi

#
# config
#
if [ "$1" = "config" ]; then

	echo "graph_title user_beancounters failcnt"
	echo 'graph_args -l 0'
	echo 'graph_vlabel Value'
	echo "graph_info This graph cat /proc/user_beancounters failcnt (tcpsndbuf, tcprcvbuf)"
	echo 'graph_category system'

	echo 'SND.label tcpsndbuf'
	echo 'RCV.label tcprcvbuf'

	exit 0
fi

#
# Main
#
echo -n "SND.value "
cat /proc/user_beancounters | grep tcpsndbuf | awk '{print $6}'
echo -n "RCV.value "
cat /proc/user_beancounters | grep tcprcvbuf | awk '{print $6}'

実行権付与とシンボリックリンク

実行権をつけます

# chmod +x /usr/share/munin/plugins/beancounters_failcnt

シンボリックリンクを作ります
# cd /etc/munin/plugins/
# ln -s /usr/share/munin/plugins/beancounters_failcnt beancounters_failcnt
# ls -l | grep beancounters_failcnt
lrwxrwxrwx 1 root root 45 Dec 14 15:06 beancounters_failcnt -> /usr/share/munin/plugins/beancounters_failcnt

rootで実行しないと、下記のように「Permission denied」とエラーとなるのでrootで実行できるようにします
# /usr/sbin/munin-run beancounters_failcnt
SND.value cat: /proc/user_beancounters: Permission denied
RCV.value cat: /proc/user_beancounters: Permission denied

/etc/munin/plugin-conf.d/beancounters_failcntのファイルを作成して、rootで実行するように設定します
# vi /etc/munin/plugin-conf.d/beancounters_failcnt
[beancounters_failcnt]
user root
# 動作確認
# /usr/sbin/munin-run beancounters_failcnt
SND.value 12
RCV.value 0

munin-nodeを再起動します

CentOS 6.x

# /etc/init.d/munin-node restart

CentOS 7.x

# systemctl restart munin-node

動作確認

5分ほど経過してから、muninの画面にアクセスします。「system」の箇所に「user_beancounters failcnt」のグラフができているか確認します

スポンサーリンク