Editing Monitoring openvz resources using munin
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.
The edit can be undone.
Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 1: | Line 1: | ||
[[Category: Monitoring]] | [[Category: Monitoring]] | ||
− | + | {{wikify}} | |
− | + | == munin plugin == | |
− | |||
− | |||
− | |||
− | |||
− | = | ||
The plugin listed below grabs all the beancounters' values. | The plugin listed below grabs all the beancounters' values. | ||
Line 34: | Line 29: | ||
if [ "$1" = "suggest" ]; then | if [ "$1" = "suggest" ]; then | ||
+ | |||
if [ -r /proc/bc/0/resources ]; then | if [ -r /proc/bc/0/resources ]; then | ||
cat /proc/bc/0/resources | | cat /proc/bc/0/resources | | ||
while read str; do | while read str; do | ||
+ | |||
vals=($str) | vals=($str) | ||
echo ${vals[0]} | echo ${vals[0]} | ||
done | done | ||
+ | |||
exit 0 | exit 0 | ||
else | else | ||
Line 45: | Line 43: | ||
fi | fi | ||
fi | fi | ||
+ | |||
if [ "$1" = "config" ]; then | if [ "$1" = "config" ]; then | ||
+ | |||
# echo "graph_order down up" | # echo "graph_order down up" | ||
− | echo "graph_title $ATTR beancounter for | + | echo "graph_title $ATTR beancounter for VE's" |
echo 'graph_category system' | echo 'graph_category system' | ||
− | echo "graph_info ' | + | echo "graph_info 'VE bean counters info'" |
+ | |||
for CTID in `ls -d1 /proc/bc/???`; do | for CTID in `ls -d1 /proc/bc/???`; do | ||
Line 68: | Line 69: | ||
fi; | fi; | ||
− | for CTID in `ls -d1 /proc/bc/???`; do | + | |
− | + | for CTID in `ls -d1 /proc/bc/???`; do | |
− | + | id=`basename $CTID` | |
− | + | grep $ATTR $CTID/resources | | |
− | + | while read str; do | |
− | + | ||
− | + | vals=($str) | |
− | + | name=${vals[0]} | |
− | done | + | echo "$id.value ${vals[1]}" |
+ | done | ||
+ | done | ||
+ | |||
</source> | </source> | ||
− | + | Please note, you have to configure plugin to run as root: | |
+ | |||
+ | <code> | ||
+ | [vebc*] | ||
+ | user root | ||
+ | </code> | ||
+ | |||
+ | at /etc/munin/plugin-conf.d/ somewhere. | ||
+ | |||
+ | |||
+ | Extended Version for old system using user_beancounter. | ||
Put it with the munin plugins and make a link for every | Put it with the munin plugins and make a link for every | ||
Line 111: | Line 125: | ||
if [ "$1" = "suggest" ]; then | if [ "$1" = "suggest" ]; then | ||
+ | |||
if [ -r /proc/bc/0/resources ]; then | if [ -r /proc/bc/0/resources ]; then | ||
cat /proc/bc/0/resources | | cat /proc/bc/0/resources | | ||
while read str; do | while read str; do | ||
+ | |||
vals=($str) | vals=($str) | ||
echo ${vals[0]} | echo ${vals[0]} | ||
done | done | ||
+ | |||
exit 0 | exit 0 | ||
else | else | ||
Line 124: | Line 141: | ||
if [ "$1" = "config" ]; then | if [ "$1" = "config" ]; then | ||
+ | |||
# echo "graph_order down up" | # echo "graph_order down up" | ||
− | echo "graph_title beancounter for | + | echo "graph_title beancounter for VE$ATTR: $STATS" |
− | echo "graph_category | + | echo "graph_category VE$ATTR" |
− | echo "graph_info ' | + | echo "graph_info 'VE bean counters info'" |
readme="false" | readme="false" | ||
cat /proc/user_beancounters | while read myid stuff; do | cat /proc/user_beancounters | while read myid stuff; do | ||
+ | |||
line="" | line="" | ||
+ | |||
if [ "$myid" == "$ATTR:" ]; then | if [ "$myid" == "$ATTR:" ]; then | ||
+ | |||
readme="true" | readme="true" | ||
line="$stuff" | line="$stuff" | ||
echo $line | echo $line | ||
else | else | ||
+ | |||
loid=`echo $myid | sed -e 's/.*:/:/'` | loid=`echo $myid | sed -e 's/.*:/:/'` | ||
+ | |||
if [ "$loid" == ":" ]; then | if [ "$loid" == ":" ]; then | ||
+ | |||
readme="false" | readme="false" | ||
fi | fi | ||
if [ "$readme" == "true" ]; then | if [ "$readme" == "true" ]; then | ||
+ | |||
line="$myid $stuff" | line="$myid $stuff" | ||
echo $line | echo $line | ||
fi | fi | ||
fi | fi | ||
+ | |||
done | while read name value top warn max; do | done | while read name value top warn max; do | ||
+ | |||
okname="dummy" | okname="dummy" | ||
+ | |||
for statname in $STATS; do | for statname in $STATS; do | ||
+ | |||
if [ "$name" == "$statname" ]; then | if [ "$name" == "$statname" ]; then | ||
+ | |||
okname=$name | okname=$name | ||
fi | fi | ||
+ | |||
done | done | ||
if [ "$okname" != "dummy" ]; then | if [ "$okname" != "dummy" ]; then | ||
+ | |||
echo $okname.label $name | echo $okname.label $name | ||
echo $okname.warning $warn | echo $okname.warning $warn | ||
Line 160: | Line 192: | ||
fi | fi | ||
done | done | ||
+ | |||
exit 0 | exit 0 | ||
fi; | fi; | ||
+ | |||
readme="false" | readme="false" | ||
cat /proc/user_beancounters | while read myid stuff; do | cat /proc/user_beancounters | while read myid stuff; do | ||
+ | |||
line="" | line="" | ||
+ | |||
if [ "$myid" == "$ATTR:" ]; then | if [ "$myid" == "$ATTR:" ]; then | ||
+ | |||
readme="true" | readme="true" | ||
line="$stuff" | line="$stuff" | ||
echo $line | echo $line | ||
else | else | ||
+ | |||
loid=`echo $myid | sed -e 's/.*:/:/'` | loid=`echo $myid | sed -e 's/.*:/:/'` | ||
+ | |||
if [ "$loid" == ":" ]; then | if [ "$loid" == ":" ]; then | ||
+ | |||
readme="false" | readme="false" | ||
fi | fi | ||
+ | |||
if [ "$readme" == "true" ]; then | if [ "$readme" == "true" ]; then | ||
+ | |||
line="$myid $stuff" | line="$myid $stuff" | ||
echo $line | echo $line | ||
Line 181: | Line 223: | ||
fi | fi | ||
done | while read name value x; do | done | while read name value x; do | ||
+ | |||
okname="dummy" | okname="dummy" | ||
+ | |||
for statname in $STATS; do | for statname in $STATS; do | ||
+ | |||
if [ "$name" == "$statname" ]; then | if [ "$name" == "$statname" ]; then | ||
+ | |||
okname=$name | okname=$name | ||
fi | fi | ||
done | done | ||
+ | |||
if [ "$okname" != "dummy" ]; then | if [ "$okname" != "dummy" ]; then | ||
+ | |||
echo $okname.value $value | echo $okname.value $value | ||
fi | fi | ||
done | done | ||
+ | |||
</source> | </source> | ||
This is not too performant but should do and the graphs are much | This is not too performant but should do and the graphs are much | ||
more readable then the first solution. | more readable then the first solution. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− |