<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.openvz.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=MiXus</id>
	<title>OpenVZ Virtuozzo Containers Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.openvz.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=MiXus"/>
	<link rel="alternate" type="text/html" href="https://wiki.openvz.org/Special:Contributions/MiXus"/>
	<updated>2026-05-15T18:53:49Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.1</generator>
	<entry>
		<id>https://wiki.openvz.org/index.php?title=Monitoring_openvz_resources_using_nagios_and_snmp&amp;diff=3092</id>
		<title>Monitoring openvz resources using nagios and snmp</title>
		<link rel="alternate" type="text/html" href="https://wiki.openvz.org/index.php?title=Monitoring_openvz_resources_using_nagios_and_snmp&amp;diff=3092"/>
		<updated>2007-05-10T10:02:21Z</updated>

		<summary type="html">&lt;p&gt;MiXus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== snmpd configuration ==&lt;br /&gt;
Debian Etch example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-get install snmpd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
edit '''/etc/default/snmpd''' : remove ''-u snmp'' and replace ''127.0.0.1'' with your ip, Full'''/etc/default/snmpd''' example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export MIBDIRS=/usr/share/snmp/mibs&lt;br /&gt;
SNMPDRUN=yes&lt;br /&gt;
SNMPDOPTS='-Lsd -Lf /dev/null  -I -smux -p /var/run/snmpd.pid 207.46.250.119'&lt;br /&gt;
TRAPDRUN=no&lt;br /&gt;
TRAPDOPTS='-Lsd -p /var/run/snmptrapd.pid'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For Debian 4.x:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export MIBDIRS=/usr/share/snmp/mibs&lt;br /&gt;
SNMPDRUN=yes&lt;br /&gt;
SNMPDOPTS='-Lsd -Lf /dev/null  -I -smux -p /var/run/snmpd.pid'&lt;br /&gt;
TRAPDRUN=no&lt;br /&gt;
TRAPDOPTS='-Lsd -p /var/run/snmptrapd.pid'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create user(my_username) and add new mib. Password need a min. of 8 charactes. Username only characters:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/etc/init.d/snmpd stop&lt;br /&gt;
echo rouser my_username priv &amp;gt; /etc/snmp/snmpd.conf&lt;br /&gt;
echo &amp;quot;extend  .1.3.6.1.4.1.2021.51  beancounters  /bin/cat /proc/user_beancounters&amp;quot; &amp;gt;&amp;gt; /etc/snmp/snmpd.conf&lt;br /&gt;
echo &amp;quot;extend  .1.3.6.1.4.1.2021.52  vzquota  /bin/cat /proc/vz/vzquota&amp;quot; &amp;gt;&amp;gt; /etc/snmp/snmpd.conf&lt;br /&gt;
echo  createUser my_username MD5 my_password DES &amp;gt;&amp;gt; /var/lib/snmp/snmpd.conf&lt;br /&gt;
/etc/init.d/snmpd start &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Testing snmp:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
snmpwalk   -v 3  -u my_usrname -l authPriv   -a MD5 -A my_password -x DES -X my_password  207.46.250.119&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Warning: the minimum pass phrase length is 8 characters.&lt;br /&gt;
&lt;br /&gt;
== nagios configuration ==&lt;br /&gt;
=== example nagios configuration ===&lt;br /&gt;
add to configuration:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define command {&lt;br /&gt;
command_name check_snmp_openvz_on_port&lt;br /&gt;
# command_line /usr/local/bin/check_snmp_openvz.sh  $HOSTADDRESS$ PORT    USER    PASSWORD&lt;br /&gt;
command_line /usr/local/bin/check_snmp_openvz.sh  $HOSTADDRESS$ $ARG1$  $ARG2$  $ARG3$&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define host {&lt;br /&gt;
        host_name   openvz-server&lt;br /&gt;
        alias       Serwer Openvz&lt;br /&gt;
        address     207.46.250.119&lt;br /&gt;
        use         generic-host&lt;br /&gt;
        contact_groups  admins&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define service{&lt;br /&gt;
        use                             generic-service&lt;br /&gt;
        host_name                       openvz-server&lt;br /&gt;
        service_description             Virtual Machines Limits&lt;br /&gt;
        check_command                   check_snmp_openvz_on_port!161!my_username!my_password&lt;br /&gt;
        max_check_attempts              1&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== nagios plugin ===&lt;br /&gt;
It is shell script:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /usr/local/bin/check_snmp_openvz.sh&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
HOST=$1&lt;br /&gt;
PORT=$2&lt;br /&gt;
USER=$3&lt;br /&gt;
PASS=$4&lt;br /&gt;
export FILE=/tmp/$HOST.beancounters&lt;br /&gt;
RET=0&lt;br /&gt;
&lt;br /&gt;
DATA=`snmpwalk   -v 3  -u $USER -l authPriv   -a MD5 -A $PASS -x DES -X $PASS $HOST:$PORT .1.3.6.1.4.1.2021.51.4 \&lt;br /&gt;
|  perl -ne '/&amp;quot;(.*)&amp;quot;/ ; print &amp;quot;$1\n&amp;quot; ;'`&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$?&amp;quot; != &amp;quot;0&amp;quot; ]; then&lt;br /&gt;
        echo &amp;quot;Unknown snmp error&amp;quot;&lt;br /&gt;
        exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ -f $FILE ]; then&lt;br /&gt;
echo &amp;quot;$DATA&amp;quot; | perl  -n -e'&lt;br /&gt;
use Data::Dumper;&lt;br /&gt;
my $file=$ENV{&amp;quot;FILE&amp;quot;};&lt;br /&gt;
my $ret=0 ;&lt;br /&gt;
my $vid ;&lt;br /&gt;
my $resource ;&lt;br /&gt;
my $held ;&lt;br /&gt;
my $maxheld ;&lt;br /&gt;
my $barrier ;&lt;br /&gt;
my $limit ;&lt;br /&gt;
my $failcnt ;&lt;br /&gt;
my %beancounters ;&lt;br /&gt;
my %beancounters_old ;&lt;br /&gt;
while(&amp;lt;STDIN&amp;gt;){&lt;br /&gt;
        my %vmachine;&lt;br /&gt;
        if ( /\D*(\d+):.*/ ){ $vid=$1; $beancounters{$vid}=\%vmachine ; }&lt;br /&gt;
        if ( /^[\W\d]+([a-z]+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+).*/ ) {&lt;br /&gt;
                $resource=$1 ;&lt;br /&gt;
                $held=$2 ;&lt;br /&gt;
                $maxheld=$3 ;&lt;br /&gt;
                $barrier=$4 ;&lt;br /&gt;
                $limit=$5 ;&lt;br /&gt;
                $failcnt=$6 ;&lt;br /&gt;
                ${beancounters{$vid}}{$resource}=[$held , $maxheld , $barrier , $limit ,$failcnt ];&lt;br /&gt;
                if ( ($held  &amp;gt; $barrier) &amp;amp;&amp;amp; ($barrier != 0) ) {&lt;br /&gt;
                        print &amp;quot;WARNING: Limits on $vid: $resource  held-&amp;gt;$held , barrier-&amp;gt;$barrier ( limit-&amp;gt;$limit ) &amp;quot; ;&lt;br /&gt;
                        $ret=1;&lt;br /&gt;
                }&lt;br /&gt;
        }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# read and parse old data&lt;br /&gt;
open(MYINPUTFILE, &amp;quot;&amp;lt;$file&amp;quot;);&lt;br /&gt;
while(&amp;lt;MYINPUTFILE&amp;gt;){&lt;br /&gt;
        my %vmachine;&lt;br /&gt;
        if ( /\D*(\d+):.*/ ){ $vid=$1; $beancounters_old{$vid}=\%vmachine ; }&lt;br /&gt;
        if ( /^[\W\d]+([a-z]+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+).*/ ) {&lt;br /&gt;
                $resource=$1 ;&lt;br /&gt;
                $held=$2 ;&lt;br /&gt;
                $maxheld=$3 ;&lt;br /&gt;
                $barrier=$4 ;&lt;br /&gt;
                $limit=$5 ;&lt;br /&gt;
                $failcnt=$6 ;&lt;br /&gt;
                ${beancounters_old{$vid}}{$resource}=[$held , $maxheld , $barrier , $limit ,$failcnt ];&lt;br /&gt;
        }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
foreach my $vmachine_id (keys %beancounters) {&lt;br /&gt;
        foreach my $resource (keys %{$beancounters{$vmachine_id}} ) {&lt;br /&gt;
                if ( defined($beancounters{$vmachine_id}{$resource}[4]) &amp;amp;&amp;amp; defined($beancounters_old{$vmachine_id}{$resource}[4]) ){&lt;br /&gt;
                        my $failcnt=$beancounters{$vmachine_id}{$resource}[4];&lt;br /&gt;
                        my $failcnt_old=$beancounters_old{$vmachine_id}{$resource}[4];&lt;br /&gt;
                        my $held=$beancounters{$vmachine_id}{$resource}[0];&lt;br /&gt;
                        my $maxheld=$beancounters{$vmachine_id}{$resource}[1];&lt;br /&gt;
                        my $barrier=$beancounters{$vmachine_id}{$resource}[2];&lt;br /&gt;
                        my $limit=$beancounters{$vmachine_id}{$resource}[3];&lt;br /&gt;
                        if ( $failcnt_old &amp;lt; $failcnt ){&lt;br /&gt;
                                print &amp;quot;CRITICAL: Incrased failcnt  $vmachine_id: $resource from $failcnt_old to $failcnt (held-&amp;gt;$held , maxheld-&amp;gt;$maxheld , barrier-&amp;gt;$barrier , limit-&amp;gt;$limit ) &amp;quot; ;&lt;br /&gt;
                                $ret=2;&lt;br /&gt;
                        }&lt;br /&gt;
                }&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# if ($ret == 0 ) { print &amp;quot;Ok. \n&amp;quot; ; }&lt;br /&gt;
# print Dumper(%beancounters_old) ;&lt;br /&gt;
# print &amp;quot;\n&amp;quot;;&lt;br /&gt;
exit($ret);&lt;br /&gt;
'&lt;br /&gt;
&lt;br /&gt;
RET1=$?&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;$DATA&amp;quot; &amp;gt; $FILE&lt;br /&gt;
#####################################################################################&lt;br /&gt;
######### quota check&lt;br /&gt;
#####################################################################################&lt;br /&gt;
&lt;br /&gt;
DATA=`snmpwalk   -v 3  -u $USER -l authPriv   -a MD5 -A $PASS -x DES -X $PASS $HOST:$PORT .1.3.6.1.4.1.2021.52.4 \&lt;br /&gt;
|  perl -ne '/&amp;quot;(.*)&amp;quot;/ ; print &amp;quot;$1\n&amp;quot; ;'`&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$?&amp;quot; != &amp;quot;0&amp;quot; ]; then&lt;br /&gt;
        echo &amp;quot;Unknown snmp error&amp;quot;&lt;br /&gt;
        exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;$DATA&amp;quot; | perl  -n -e'&lt;br /&gt;
my $vid ;&lt;br /&gt;
my $ret=0 ;&lt;br /&gt;
while(&amp;lt;STDIN&amp;gt;){&lt;br /&gt;
        my %vid;&lt;br /&gt;
        if ( /\D*(\d+):.*/ ){ $vid=$1; }&lt;br /&gt;
        if ( /\s*(\S+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+).*/ ){&lt;br /&gt;
                $resource=$1 ;&lt;br /&gt;
                $usage=$2 ;&lt;br /&gt;
                $softlimit=$3 ;&lt;br /&gt;
                $hardlimit=$4 ;&lt;br /&gt;
                $time=$5 ;&lt;br /&gt;
                $expire=$6 ;&lt;br /&gt;
                if ( $usage &amp;gt;= $softlimit ){&lt;br /&gt;
                        print &amp;quot;WARNING: VZquota limit exceeded on $vid: $resource  usage-&amp;gt;$usage, softlimit-&amp;gt;$softlimit, hardlimit-&amp;gt;$hardlimit, time-&amp;gt;$time, expire-&amp;gt;$expire  &amp;quot; ;&lt;br /&gt;
                        $ret=1;&lt;br /&gt;
                }&lt;br /&gt;
        }&lt;br /&gt;
}&lt;br /&gt;
exit($ret);&lt;br /&gt;
'&lt;br /&gt;
RET2=$?&lt;br /&gt;
&lt;br /&gt;
#####################################################################################&lt;br /&gt;
########### return&lt;br /&gt;
#####################################################################################&lt;br /&gt;
&lt;br /&gt;
if [  $RET1  -gt $RET2  ]; then&lt;br /&gt;
        RET=$RET1&lt;br /&gt;
        else&lt;br /&gt;
        RET=$RET2&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [  $RET  = 0  ]; then&lt;br /&gt;
        echo Ok.&lt;br /&gt;
fi&lt;br /&gt;
exit $RET&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: HOWTO]]&lt;/div&gt;</summary>
		<author><name>MiXus</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.openvz.org/index.php?title=Monitoring_openvz_resources_using_nagios_and_snmp&amp;diff=3091</id>
		<title>Monitoring openvz resources using nagios and snmp</title>
		<link rel="alternate" type="text/html" href="https://wiki.openvz.org/index.php?title=Monitoring_openvz_resources_using_nagios_and_snmp&amp;diff=3091"/>
		<updated>2007-05-10T10:01:11Z</updated>

		<summary type="html">&lt;p&gt;MiXus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== snmpd configuration ==&lt;br /&gt;
Debian Etch example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-get install snmpd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
edit '''/etc/default/snmpd''' : remove ''-u snmp'' and replace ''127.0.0.1'' with your ip, Full'''/etc/default/snmpd''' example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export MIBDIRS=/usr/share/snmp/mibs&lt;br /&gt;
SNMPDRUN=yes&lt;br /&gt;
SNMPDOPTS='-Lsd -Lf /dev/null  -I -smux -p /var/run/snmpd.pid 207.46.250.119'&lt;br /&gt;
TRAPDRUN=no&lt;br /&gt;
TRAPDOPTS='-Lsd -p /var/run/snmptrapd.pid'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For Debian 4.x:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export MIBDIRS=/usr/share/snmp/mibs&lt;br /&gt;
SNMPDRUN=yes&lt;br /&gt;
SNMPDOPTS='-Lsd -Lf /dev/null  -I -smux -p /var/run/snmpd.pid'&lt;br /&gt;
TRAPDRUN=no&lt;br /&gt;
TRAPDOPTS='-Lsd -p /var/run/snmptrapd.pid'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create user(my_username) and add new mib:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/etc/init.d/snmpd stop&lt;br /&gt;
echo rouser my_username priv &amp;gt; /etc/snmp/snmpd.conf&lt;br /&gt;
echo &amp;quot;extend  .1.3.6.1.4.1.2021.51  beancounters  /bin/cat /proc/user_beancounters&amp;quot; &amp;gt;&amp;gt; /etc/snmp/snmpd.conf&lt;br /&gt;
echo &amp;quot;extend  .1.3.6.1.4.1.2021.52  vzquota  /bin/cat /proc/vz/vzquota&amp;quot; &amp;gt;&amp;gt; /etc/snmp/snmpd.conf&lt;br /&gt;
echo  createUser my_username MD5 my_password DES &amp;gt;&amp;gt; /var/lib/snmp/snmpd.conf&lt;br /&gt;
/etc/init.d/snmpd start &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Testing snmp:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
snmpwalk   -v 3  -u my_usrname -l authPriv   -a MD5 -A my_password -x DES -X my_password  207.46.250.119&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Warning: the minimum pass phrase length is 8 characters.&lt;br /&gt;
&lt;br /&gt;
== nagios configuration ==&lt;br /&gt;
=== example nagios configuration ===&lt;br /&gt;
add to configuration:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define command {&lt;br /&gt;
command_name check_snmp_openvz_on_port&lt;br /&gt;
# command_line /usr/local/bin/check_snmp_openvz.sh  $HOSTADDRESS$ PORT    USER    PASSWORD&lt;br /&gt;
command_line /usr/local/bin/check_snmp_openvz.sh  $HOSTADDRESS$ $ARG1$  $ARG2$  $ARG3$&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define host {&lt;br /&gt;
        host_name   openvz-server&lt;br /&gt;
        alias       Serwer Openvz&lt;br /&gt;
        address     207.46.250.119&lt;br /&gt;
        use         generic-host&lt;br /&gt;
        contact_groups  admins&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define service{&lt;br /&gt;
        use                             generic-service&lt;br /&gt;
        host_name                       openvz-server&lt;br /&gt;
        service_description             Virtual Machines Limits&lt;br /&gt;
        check_command                   check_snmp_openvz_on_port!161!my_username!my_password&lt;br /&gt;
        max_check_attempts              1&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== nagios plugin ===&lt;br /&gt;
It is shell script:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /usr/local/bin/check_snmp_openvz.sh&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
HOST=$1&lt;br /&gt;
PORT=$2&lt;br /&gt;
USER=$3&lt;br /&gt;
PASS=$4&lt;br /&gt;
export FILE=/tmp/$HOST.beancounters&lt;br /&gt;
RET=0&lt;br /&gt;
&lt;br /&gt;
DATA=`snmpwalk   -v 3  -u $USER -l authPriv   -a MD5 -A $PASS -x DES -X $PASS $HOST:$PORT .1.3.6.1.4.1.2021.51.4 \&lt;br /&gt;
|  perl -ne '/&amp;quot;(.*)&amp;quot;/ ; print &amp;quot;$1\n&amp;quot; ;'`&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$?&amp;quot; != &amp;quot;0&amp;quot; ]; then&lt;br /&gt;
        echo &amp;quot;Unknown snmp error&amp;quot;&lt;br /&gt;
        exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ -f $FILE ]; then&lt;br /&gt;
echo &amp;quot;$DATA&amp;quot; | perl  -n -e'&lt;br /&gt;
use Data::Dumper;&lt;br /&gt;
my $file=$ENV{&amp;quot;FILE&amp;quot;};&lt;br /&gt;
my $ret=0 ;&lt;br /&gt;
my $vid ;&lt;br /&gt;
my $resource ;&lt;br /&gt;
my $held ;&lt;br /&gt;
my $maxheld ;&lt;br /&gt;
my $barrier ;&lt;br /&gt;
my $limit ;&lt;br /&gt;
my $failcnt ;&lt;br /&gt;
my %beancounters ;&lt;br /&gt;
my %beancounters_old ;&lt;br /&gt;
while(&amp;lt;STDIN&amp;gt;){&lt;br /&gt;
        my %vmachine;&lt;br /&gt;
        if ( /\D*(\d+):.*/ ){ $vid=$1; $beancounters{$vid}=\%vmachine ; }&lt;br /&gt;
        if ( /^[\W\d]+([a-z]+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+).*/ ) {&lt;br /&gt;
                $resource=$1 ;&lt;br /&gt;
                $held=$2 ;&lt;br /&gt;
                $maxheld=$3 ;&lt;br /&gt;
                $barrier=$4 ;&lt;br /&gt;
                $limit=$5 ;&lt;br /&gt;
                $failcnt=$6 ;&lt;br /&gt;
                ${beancounters{$vid}}{$resource}=[$held , $maxheld , $barrier , $limit ,$failcnt ];&lt;br /&gt;
                if ( ($held  &amp;gt; $barrier) &amp;amp;&amp;amp; ($barrier != 0) ) {&lt;br /&gt;
                        print &amp;quot;WARNING: Limits on $vid: $resource  held-&amp;gt;$held , barrier-&amp;gt;$barrier ( limit-&amp;gt;$limit ) &amp;quot; ;&lt;br /&gt;
                        $ret=1;&lt;br /&gt;
                }&lt;br /&gt;
        }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# read and parse old data&lt;br /&gt;
open(MYINPUTFILE, &amp;quot;&amp;lt;$file&amp;quot;);&lt;br /&gt;
while(&amp;lt;MYINPUTFILE&amp;gt;){&lt;br /&gt;
        my %vmachine;&lt;br /&gt;
        if ( /\D*(\d+):.*/ ){ $vid=$1; $beancounters_old{$vid}=\%vmachine ; }&lt;br /&gt;
        if ( /^[\W\d]+([a-z]+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+).*/ ) {&lt;br /&gt;
                $resource=$1 ;&lt;br /&gt;
                $held=$2 ;&lt;br /&gt;
                $maxheld=$3 ;&lt;br /&gt;
                $barrier=$4 ;&lt;br /&gt;
                $limit=$5 ;&lt;br /&gt;
                $failcnt=$6 ;&lt;br /&gt;
                ${beancounters_old{$vid}}{$resource}=[$held , $maxheld , $barrier , $limit ,$failcnt ];&lt;br /&gt;
        }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
foreach my $vmachine_id (keys %beancounters) {&lt;br /&gt;
        foreach my $resource (keys %{$beancounters{$vmachine_id}} ) {&lt;br /&gt;
                if ( defined($beancounters{$vmachine_id}{$resource}[4]) &amp;amp;&amp;amp; defined($beancounters_old{$vmachine_id}{$resource}[4]) ){&lt;br /&gt;
                        my $failcnt=$beancounters{$vmachine_id}{$resource}[4];&lt;br /&gt;
                        my $failcnt_old=$beancounters_old{$vmachine_id}{$resource}[4];&lt;br /&gt;
                        my $held=$beancounters{$vmachine_id}{$resource}[0];&lt;br /&gt;
                        my $maxheld=$beancounters{$vmachine_id}{$resource}[1];&lt;br /&gt;
                        my $barrier=$beancounters{$vmachine_id}{$resource}[2];&lt;br /&gt;
                        my $limit=$beancounters{$vmachine_id}{$resource}[3];&lt;br /&gt;
                        if ( $failcnt_old &amp;lt; $failcnt ){&lt;br /&gt;
                                print &amp;quot;CRITICAL: Incrased failcnt  $vmachine_id: $resource from $failcnt_old to $failcnt (held-&amp;gt;$held , maxheld-&amp;gt;$maxheld , barrier-&amp;gt;$barrier , limit-&amp;gt;$limit ) &amp;quot; ;&lt;br /&gt;
                                $ret=2;&lt;br /&gt;
                        }&lt;br /&gt;
                }&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# if ($ret == 0 ) { print &amp;quot;Ok. \n&amp;quot; ; }&lt;br /&gt;
# print Dumper(%beancounters_old) ;&lt;br /&gt;
# print &amp;quot;\n&amp;quot;;&lt;br /&gt;
exit($ret);&lt;br /&gt;
'&lt;br /&gt;
&lt;br /&gt;
RET1=$?&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;$DATA&amp;quot; &amp;gt; $FILE&lt;br /&gt;
#####################################################################################&lt;br /&gt;
######### quota check&lt;br /&gt;
#####################################################################################&lt;br /&gt;
&lt;br /&gt;
DATA=`snmpwalk   -v 3  -u $USER -l authPriv   -a MD5 -A $PASS -x DES -X $PASS $HOST:$PORT .1.3.6.1.4.1.2021.52.4 \&lt;br /&gt;
|  perl -ne '/&amp;quot;(.*)&amp;quot;/ ; print &amp;quot;$1\n&amp;quot; ;'`&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$?&amp;quot; != &amp;quot;0&amp;quot; ]; then&lt;br /&gt;
        echo &amp;quot;Unknown snmp error&amp;quot;&lt;br /&gt;
        exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;$DATA&amp;quot; | perl  -n -e'&lt;br /&gt;
my $vid ;&lt;br /&gt;
my $ret=0 ;&lt;br /&gt;
while(&amp;lt;STDIN&amp;gt;){&lt;br /&gt;
        my %vid;&lt;br /&gt;
        if ( /\D*(\d+):.*/ ){ $vid=$1; }&lt;br /&gt;
        if ( /\s*(\S+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+).*/ ){&lt;br /&gt;
                $resource=$1 ;&lt;br /&gt;
                $usage=$2 ;&lt;br /&gt;
                $softlimit=$3 ;&lt;br /&gt;
                $hardlimit=$4 ;&lt;br /&gt;
                $time=$5 ;&lt;br /&gt;
                $expire=$6 ;&lt;br /&gt;
                if ( $usage &amp;gt;= $softlimit ){&lt;br /&gt;
                        print &amp;quot;WARNING: VZquota limit exceeded on $vid: $resource  usage-&amp;gt;$usage, softlimit-&amp;gt;$softlimit, hardlimit-&amp;gt;$hardlimit, time-&amp;gt;$time, expire-&amp;gt;$expire  &amp;quot; ;&lt;br /&gt;
                        $ret=1;&lt;br /&gt;
                }&lt;br /&gt;
        }&lt;br /&gt;
}&lt;br /&gt;
exit($ret);&lt;br /&gt;
'&lt;br /&gt;
RET2=$?&lt;br /&gt;
&lt;br /&gt;
#####################################################################################&lt;br /&gt;
########### return&lt;br /&gt;
#####################################################################################&lt;br /&gt;
&lt;br /&gt;
if [  $RET1  -gt $RET2  ]; then&lt;br /&gt;
        RET=$RET1&lt;br /&gt;
        else&lt;br /&gt;
        RET=$RET2&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [  $RET  = 0  ]; then&lt;br /&gt;
        echo Ok.&lt;br /&gt;
fi&lt;br /&gt;
exit $RET&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: HOWTO]]&lt;/div&gt;</summary>
		<author><name>MiXus</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.openvz.org/index.php?title=Control_panels&amp;diff=2843</id>
		<title>Control panels</title>
		<link rel="alternate" type="text/html" href="https://wiki.openvz.org/index.php?title=Control_panels&amp;diff=2843"/>
		<updated>2007-03-13T18:18:41Z</updated>

		<summary type="html">&lt;p&gt;MiXus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page contains links to different control panels for OpenVZ, written by third parties. If you know the project that's missing here, please add it.&lt;br /&gt;
&lt;br /&gt;
== Free software ==&lt;br /&gt;
* EasyVZ: [http://easyvz.sourceforge.net/ screenshots] | [http://sourceforge.net/projects/easyvz sf.net project page]&lt;br /&gt;
* Webmin: [http://www.webmin.com/index8.html homepage] | [http://webadminmodules.sourceforge.net/?page=Search&amp;amp;action=search OpenVZ plugin] (search for OpenVZ)&lt;br /&gt;
&lt;br /&gt;
== Non-free ==&lt;br /&gt;
* VZ-Manager: [http://vzmanager.de/ homepage (German)]&lt;br /&gt;
* HyperVM: [http://lxlabs.com/software/hypervm/ homepage]&lt;br /&gt;
* vzAdmin: [http://www.vzAdmin.info/ homepage (German)]&lt;br /&gt;
&lt;br /&gt;
== Unknown license ==&lt;br /&gt;
* OpenVZ Control panel for Windows(r): {{forum|1491}} | [http://downloads.qmailrocks.ru/vz/ downloads] ''unknown license''&lt;br /&gt;
&lt;br /&gt;
== Frozen projects ==&lt;br /&gt;
* VZAdmin: [http://www.ronny-goerner.de/ homepage] ''seems not available now''&lt;br /&gt;
* WVZ: [http://homaly.dunanet.hu/wvz/ homepage] ''seems frozen''&lt;br /&gt;
* New OpenVZ Web Based Control Panel by rsailor: {{forum|230}} ''seems not available now''&lt;/div&gt;</summary>
		<author><name>MiXus</name></author>
		
	</entry>
</feed>