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 containers" | echo "graph_title $ATTR beancounter for containers" | ||
echo 'graph_category system' | echo 'graph_category system' | ||
echo "graph_info 'Containers beancounters info'" | echo "graph_info 'Containers beancounters 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 CT$ATTR: $STATS" | echo "graph_title beancounter for CT$ATTR: $STATS" | ||
Line 131: | Line 149: | ||
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> | ||
Line 198: | Line 247: | ||
− | = | + | == Another plugin from Jan Tomasek == |
− | + | Jan has posted another plugin on http://forum.openvz.org/index.php?t=msg&goto=15122, where I've fixed two things: | |
− | + | 1. "exit 0" in the "config" block | |
− | + | 2. Replaced "vals=($str); echo ${vals[0]}" with "echo ${str%% *}" (the former was causing problems I don't remember anymore) | |
− | + | ||
− | |||
<source lang="bash"> | <source lang="bash"> | ||
#!/bin/sh | #!/bin/sh | ||
Line 219: | Line 267: | ||
# - "exit 0" in "config" block | # - "exit 0" in "config" block | ||
# - Use "echo ${str%% *}" in "suggest", instead of "vals=($str); echo ${vals[0]}" | # - Use "echo ${str%% *}" in "suggest", instead of "vals=($str); echo ${vals[0]}" | ||
− | |||
− | |||
− | |||
− | |||
# | # | ||
# Original revision taken from: | # Original revision taken from: | ||
Line 229: | Line 273: | ||
#%# family=auto | #%# family=auto | ||
#%# capabilities=autoconf suggest | #%# capabilities=autoconf suggest | ||
− | + | ||
VEID=`basename $0 | sed -e 's/^vebc_.*_//'`; | VEID=`basename $0 | sed -e 's/^vebc_.*_//'`; | ||
STATS=`basename $0 | sed -e 's/^vebc_//' -e 's/_[0-9]*$//' -e 's/_/ /g'` | STATS=`basename $0 | sed -e 's/^vebc_//' -e 's/_[0-9]*$//' -e 's/_/ /g'` | ||
− | + | ||
− | |||
if [ "$1" = "autoconf" ]; then | if [ "$1" = "autoconf" ]; then | ||
if [ -r /proc/bc/0/resources ]; then | if [ -r /proc/bc/0/resources ]; then | ||
Line 243: | Line 286: | ||
fi | fi | ||
fi | fi | ||
− | + | ||
if [ "$1" = "suggest" ]; then | if [ "$1" = "suggest" ]; then | ||
if [ -r /proc/bc/0/resources ]; then | if [ -r /proc/bc/0/resources ]; then | ||
Line 255: | Line 298: | ||
fi | fi | ||
fi | fi | ||
− | + | ||
if [ ! -f /proc/bc/$VEID/resources ]; then | if [ ! -f /proc/bc/$VEID/resources ]; then | ||
exit 0; | exit 0; | ||
fi | fi | ||
− | + | ||
if [ "$1" = "config" ]; then | if [ "$1" = "config" ]; then | ||
#echo "graph_order down up" | #echo "graph_order down up" | ||
Line 265: | Line 308: | ||
echo "graph_vlabel bean counters" | echo "graph_vlabel bean counters" | ||
echo "graph_category VE$VEID" | echo "graph_category VE$VEID" | ||
− | |||
# Note on URLs. General graph info is by munin version 1.2.5 | # Note on URLs. General graph info is by munin version 1.2.5 | ||
# accepted even with HTML code. But for value.info it escapes URL, | # accepted even with HTML code. But for value.info it escapes URL, | ||
Line 272: | Line 314: | ||
echo "graph_info VE bean counters info. Documentation of the OpenVZ resource management is located at <a href=\" | echo "graph_info VE bean counters info. Documentation of the OpenVZ resource management is located at <a href=\" | ||
http://wiki.openvz.org/UBC\">http://wiki.openvz.org/UBC</a>." | http://wiki.openvz.org/UBC\">http://wiki.openvz.org/UBC</a>." | ||
− | + | ||
cat /proc/bc/$VEID/resources | while read name value top warn max stuff ; do | cat /proc/bc/$VEID/resources | while read name value top warn max stuff ; do | ||
for statname in $STATS; do | for statname in $STATS; do | ||
Line 287: | Line 329: | ||
done | done | ||
done | done | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
exit 0 | exit 0 | ||
fi; | fi; | ||
− | + | ||
− | cat /proc/bc/$VEID/resources | while read name value | + | cat /proc/bc/$VEID/resources | while read name value stuff ; do |
for statname in $STATS; do | for statname in $STATS; do | ||
if [ "$name" = "$statname" ]; then | if [ "$name" = "$statname" ]; then | ||
echo $name".value "$value; | echo $name".value "$value; | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
fi | fi | ||
done | done | ||
− | done</source> | + | done |
+ | </source> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
To install this, you can use the following script: | To install this, you can use the following script: | ||
<source lang="bash"> | <source lang="bash"> | ||
Line 360: | Line 375: | ||
rm $FILE | rm $FILE | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
</source> | </source> |