<?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=Vincent</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=Vincent"/>
	<link rel="alternate" type="text/html" href="https://wiki.openvz.org/Special:Contributions/Vincent"/>
	<updated>2026-06-13T23:42:02Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.1</generator>
	<entry>
		<id>https://wiki.openvz.org/index.php?title=Monitoring_openvz_resources_using_rrdtool&amp;diff=6181</id>
		<title>Monitoring openvz resources using rrdtool</title>
		<link rel="alternate" type="text/html" href="https://wiki.openvz.org/index.php?title=Monitoring_openvz_resources_using_rrdtool&amp;diff=6181"/>
		<updated>2008-07-11T11:38:34Z</updated>

		<summary type="html">&lt;p&gt;Vincent: Fixed headline&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Monitoring]]&lt;br /&gt;
&lt;br /&gt;
In this setup we're using [http://oss.oetiker.ch/rrdtool/ rrdtool] to collect data from several openvz hardware nodes to a central [http://oss.oetiker.ch/rrdtool/doc/rrdtool.en.html#IRRD_Server rrd server].&lt;br /&gt;
&lt;br /&gt;
=== Setting up rrd server ===&lt;br /&gt;
&lt;br /&gt;
Create a directory /var/rrd on central server.&lt;br /&gt;
&lt;br /&gt;
 mkdir /var/rrd&lt;br /&gt;
&lt;br /&gt;
In /etc/xinetd.d create a file rrdsrv and adjust addresses and paths according to local settings.&lt;br /&gt;
&lt;br /&gt;
 service rrdsrv&lt;br /&gt;
 {&lt;br /&gt;
   disable         = no&lt;br /&gt;
   socket_type     = stream&lt;br /&gt;
   protocol        = tcp&lt;br /&gt;
   wait            = no&lt;br /&gt;
   user            = root&lt;br /&gt;
   only_from       = 192.168.2.0/24&lt;br /&gt;
   server          = /usr/bin/rrdtool&lt;br /&gt;
   server_args     = - /var/rrd&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Add 'rrdsrv' to /etc/services&lt;br /&gt;
 rrdsrv                13900/tcp&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Collect script ===&lt;br /&gt;
&lt;br /&gt;
Put the following script on the openvz hardware nodes (ubc_rrd_collect.sh):&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 &lt;br /&gt;
 PATH=&amp;quot;/bin:/sbin:/usr/bin:/usr/sbin&amp;quot;&lt;br /&gt;
 SENDCOMMAND='netcat 192.168.2.1 13900'&lt;br /&gt;
 HEARTBEAT=600&lt;br /&gt;
 &lt;br /&gt;
 function error {&lt;br /&gt;
         echo $1&lt;br /&gt;
         exit 1&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 test -r /proc/bc/0/resources || error &amp;quot;Not openvz kernel?&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 command='cat'&lt;br /&gt;
 init=0&lt;br /&gt;
 update=0&lt;br /&gt;
 send=0&lt;br /&gt;
 &lt;br /&gt;
 while [ ! -z &amp;quot;$1&amp;quot; ]; do&lt;br /&gt;
         case &amp;quot;$1&amp;quot; in&lt;br /&gt;
                 send)&lt;br /&gt;
                         send=1&lt;br /&gt;
                         command=$SENDCOMMAND&lt;br /&gt;
                         ;;&lt;br /&gt;
                 init)&lt;br /&gt;
                         init=1&lt;br /&gt;
                         ;;&lt;br /&gt;
                 update)&lt;br /&gt;
                         update=1&lt;br /&gt;
                         ;;&lt;br /&gt;
         esac&lt;br /&gt;
         shift&lt;br /&gt;
 done&lt;br /&gt;
 &lt;br /&gt;
 VPSIDS=$(vzlist -H -o veid)&lt;br /&gt;
 &lt;br /&gt;
 PARAMS=$(cat /proc/bc/0/resources | awk '{ print $1 }'| sort -u | xargs)&lt;br /&gt;
 if [ &amp;quot;$send&amp;quot; -eq 1 ]; then&lt;br /&gt;
         # to spread the load we sleep for a random while (between 0 and 60 sec)&lt;br /&gt;
         number=$RANDOM&lt;br /&gt;
         let &amp;quot;number %= 60&amp;quot;&lt;br /&gt;
         sleep $number&lt;br /&gt;
 fi&lt;br /&gt;
 &lt;br /&gt;
 for VPSID in $VPSIDS; do&lt;br /&gt;
        RRDFILENAME=&amp;quot;ubc_${VPSID}.rrd&amp;quot; &lt;br /&gt;
 &lt;br /&gt;
         if [ &amp;quot;$init&amp;quot; -eq 1 ]; then&lt;br /&gt;
                 exists=0&lt;br /&gt;
                 if [ &amp;quot;$send&amp;quot; -eq 1 ]; then&lt;br /&gt;
                         echo &amp;quot;info $RRDFILENAME&amp;quot; | $command | grep -q &amp;quot;No such file or directory&amp;quot; || exists=1&lt;br /&gt;
                 fi      &lt;br /&gt;
                 &lt;br /&gt;
                 if [ &amp;quot;$exists&amp;quot; -eq 0 ]; then&lt;br /&gt;
                 (&lt;br /&gt;
                         echo -n &amp;quot;create ${RRDFILENAME} &amp;quot;&lt;br /&gt;
                         for param in $PARAMS; do&lt;br /&gt;
                                 echo -n &amp;quot;DS:${param}_f:DERIVE:$HEARTBEAT:0:U &amp;quot;&lt;br /&gt;
                                 echo -n &amp;quot;DS:${param}_h:GAUGE:$HEARTBEAT:0:U &amp;quot;&lt;br /&gt;
                                 echo -n &amp;quot;DS:${param}_b:GAUGE:$HEARTBEAT:0:U &amp;quot;&lt;br /&gt;
                         done&lt;br /&gt;
                         echo -n &amp;quot;RRA:AVERAGE:0.5:1:600 &amp;quot;&lt;br /&gt;
                         echo -n &amp;quot;RRA:AVERAGE:0.5:6:700 &amp;quot;&lt;br /&gt;
                         echo -n &amp;quot;RRA:AVERAGE:0.5:24:775 &amp;quot;&lt;br /&gt;
                         echo -n &amp;quot;RRA:AVERAGE:0.5:288:797 &amp;quot;&lt;br /&gt;
                         echo -n &amp;quot;RRA:MAX:0.5:1:600 &amp;quot;&lt;br /&gt;
                         echo -n &amp;quot;RRA:MAX:0.5:6:700 &amp;quot;&lt;br /&gt;
                         echo -n &amp;quot;RRA:MAX:0.5:24:775 &amp;quot;&lt;br /&gt;
                         echo &amp;quot;RRA:MAX:0.5:288:797&amp;quot;&lt;br /&gt;
                 ) | $command&lt;br /&gt;
                 fi&lt;br /&gt;
         fi&lt;br /&gt;
  &lt;br /&gt;
         if [ &amp;quot;$update&amp;quot; -eq 1 ]; then&lt;br /&gt;
                 (&lt;br /&gt;
                         cat /proc/bc/$VPSID/resources | awk -v rrdfile=$RRDFILENAME '&lt;br /&gt;
                         BEGIN { &lt;br /&gt;
                                 ORS=&amp;quot;&amp;quot;; &lt;br /&gt;
                                 getline&lt;br /&gt;
                                 keys=$1 &amp;quot;_f&amp;quot;; values=$6;&lt;br /&gt;
                                 keys=keys &amp;quot;:&amp;quot; $1 &amp;quot;_h&amp;quot;; values=values &amp;quot;:&amp;quot; $2;&lt;br /&gt;
                                 keys=keys &amp;quot;:&amp;quot; $1 &amp;quot;_b&amp;quot;; values=values &amp;quot;:&amp;quot; $4;&lt;br /&gt;
                         } &lt;br /&gt;
                         {&lt;br /&gt;
                                 keys=keys &amp;quot;:&amp;quot; $1 &amp;quot;_f&amp;quot;; values=values &amp;quot;:&amp;quot; $6;&lt;br /&gt;
                                 keys=keys &amp;quot;:&amp;quot; $1 &amp;quot;_h&amp;quot;; values=values &amp;quot;:&amp;quot; $2;&lt;br /&gt;
                                 keys=keys &amp;quot;:&amp;quot; $1 &amp;quot;_b&amp;quot;; values=values &amp;quot;:&amp;quot; $4;&lt;br /&gt;
                         }&lt;br /&gt;
                         END { print &amp;quot;update &amp;quot; rrdfile &amp;quot; -t &amp;quot; keys &amp;quot; N:&amp;quot; values &amp;quot;\n&amp;quot;; } '&lt;br /&gt;
                 ) | $command&lt;br /&gt;
         fi&lt;br /&gt;
 done&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
&lt;br /&gt;
 ubc_rrd_collect.sh [update] [init] [send]&lt;br /&gt;
 &lt;br /&gt;
   update - run this to update rrd files&lt;br /&gt;
   init   - scan system and create rrd files&lt;br /&gt;
   send   - use this to send commands to rddtool&lt;br /&gt;
&lt;br /&gt;
=== Migration and new container ===&lt;br /&gt;
&lt;br /&gt;
When you have this script running in cron on every hardware node and you're migrating a container from one node to the other the script will automatically detect this and pick it up on the other node. &lt;br /&gt;
&lt;br /&gt;
When you create a new container you have to run &amp;lt;code&amp;gt;ubc_rrd_collect.sh init send&amp;lt;/code&amp;gt; and it will ping rddtool to create a new rrd database. It won't overwrite existing databases because it first checks if a database already exists.&lt;br /&gt;
&lt;br /&gt;
=== Setting up cron ===&lt;br /&gt;
&lt;br /&gt;
Run update every 5 minutes:&lt;br /&gt;
&lt;br /&gt;
 */5     *       *       *       *       /path/to/ubc_rrd_collect.sh update send | grep -v '^OK'&lt;br /&gt;
&lt;br /&gt;
Run init every hour (or run it manually when needed):&lt;br /&gt;
 0       *       *       *       *       /path/to/ubc_rrd_collect.sh init send | grep -v '^OK'&lt;/div&gt;</summary>
		<author><name>Vincent</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.openvz.org/index.php?title=Monitoring_openvz_resources_using_rrdtool&amp;diff=6165</id>
		<title>Monitoring openvz resources using rrdtool</title>
		<link rel="alternate" type="text/html" href="https://wiki.openvz.org/index.php?title=Monitoring_openvz_resources_using_rrdtool&amp;diff=6165"/>
		<updated>2008-07-09T07:50:02Z</updated>

		<summary type="html">&lt;p&gt;Vincent: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Monitoring]]&lt;br /&gt;
&lt;br /&gt;
In this setup we're using [http://oss.oetiker.ch/rrdtool/ rrdtool] to collect data from several openvz hardware nodes to a central [http://oss.oetiker.ch/rrdtool/doc/rrdtool.en.html#IRRD_Server rrd server].&lt;br /&gt;
&lt;br /&gt;
=== Setting up rrd server ===&lt;br /&gt;
&lt;br /&gt;
Create a directory /var/rrd on central server.&lt;br /&gt;
&lt;br /&gt;
 mkdir /var/rrd&lt;br /&gt;
&lt;br /&gt;
In /etc/xinetd.d create a file rrdsrv and adjust addresses and paths according to local settings.&lt;br /&gt;
&lt;br /&gt;
 service rrdsrv&lt;br /&gt;
 {&lt;br /&gt;
   disable         = no&lt;br /&gt;
   socket_type     = stream&lt;br /&gt;
   protocol        = tcp&lt;br /&gt;
   wait            = no&lt;br /&gt;
   user            = root&lt;br /&gt;
   only_from       = 192.168.2.0/24&lt;br /&gt;
   server          = /usr/bin/rrdtool&lt;br /&gt;
   server_args     = - /var/rrd&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Add 'rrdsrv' to /etc/services&lt;br /&gt;
 rrdsrv                13900/tcp&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Collect script ===&lt;br /&gt;
&lt;br /&gt;
Put the following script on the openvz hardware nodes (ubc_rrd_collect.sh):&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 &lt;br /&gt;
 PATH=&amp;quot;/bin:/sbin:/usr/bin:/usr/sbin&amp;quot;&lt;br /&gt;
 SENDCOMMAND='netcat 192.168.2.1 13900'&lt;br /&gt;
 HEARTBEAT=600&lt;br /&gt;
 &lt;br /&gt;
 function error {&lt;br /&gt;
         echo $1&lt;br /&gt;
         exit 1&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 test -r /proc/bc/0/resources || error &amp;quot;Not openvz kernel?&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 command='cat'&lt;br /&gt;
 init=0&lt;br /&gt;
 update=0&lt;br /&gt;
 send=0&lt;br /&gt;
 &lt;br /&gt;
 while [ ! -z &amp;quot;$1&amp;quot; ]; do&lt;br /&gt;
         case &amp;quot;$1&amp;quot; in&lt;br /&gt;
                 send)&lt;br /&gt;
                         send=1&lt;br /&gt;
                         command=$SENDCOMMAND&lt;br /&gt;
                         ;;&lt;br /&gt;
                 init)&lt;br /&gt;
                         init=1&lt;br /&gt;
                         ;;&lt;br /&gt;
                 update)&lt;br /&gt;
                         update=1&lt;br /&gt;
                         ;;&lt;br /&gt;
         esac&lt;br /&gt;
         shift&lt;br /&gt;
 done&lt;br /&gt;
 &lt;br /&gt;
 VPSIDS=$(vzlist | awk ' BEGIN { ORS=&amp;quot; &amp;quot;; getline } { print $1 }')&lt;br /&gt;
 &lt;br /&gt;
 PARAMS=$(cat /proc/bc/0/resources | awk '{ print $1 }'| sort -u | xargs)&lt;br /&gt;
 if [ &amp;quot;$send&amp;quot; -eq 1 ]; then&lt;br /&gt;
         # to spread the load we sleep for a random while (between 0 and 60 sec)&lt;br /&gt;
         number=$RANDOM&lt;br /&gt;
         let &amp;quot;number %= 60&amp;quot;&lt;br /&gt;
         sleep $number&lt;br /&gt;
 fi&lt;br /&gt;
 &lt;br /&gt;
 for VPSID in $VPSIDS; do&lt;br /&gt;
        RRDFILENAME=&amp;quot;ubc_${VPSID}.rrd&amp;quot; &lt;br /&gt;
 &lt;br /&gt;
         if [ &amp;quot;$init&amp;quot; -eq 1 ]; then&lt;br /&gt;
                 exists=0&lt;br /&gt;
                 if [ &amp;quot;$send&amp;quot; -eq 1 ]; then&lt;br /&gt;
                         echo &amp;quot;info $RRDFILENAME&amp;quot; | $command | grep -q &amp;quot;No such file or directory&amp;quot; || exists=1&lt;br /&gt;
                 fi      &lt;br /&gt;
                 &lt;br /&gt;
                 if [ &amp;quot;$exists&amp;quot; -eq 0 ]; then&lt;br /&gt;
                 (&lt;br /&gt;
                         echo -n &amp;quot;create ${RRDFILENAME} &amp;quot;&lt;br /&gt;
                         for param in $PARAMS; do&lt;br /&gt;
                                 echo -n &amp;quot;DS:${param}_f:DERIVE:$HEARTBEAT:0:U &amp;quot;&lt;br /&gt;
                                 echo -n &amp;quot;DS:${param}_h:GAUGE:$HEARTBEAT:0:U &amp;quot;&lt;br /&gt;
                                 echo -n &amp;quot;DS:${param}_b:GAUGE:$HEARTBEAT:0:U &amp;quot;&lt;br /&gt;
                         done&lt;br /&gt;
                         echo -n &amp;quot;RRA:AVERAGE:0.5:1:600 &amp;quot;&lt;br /&gt;
                         echo -n &amp;quot;RRA:AVERAGE:0.5:6:700 &amp;quot;&lt;br /&gt;
                         echo -n &amp;quot;RRA:AVERAGE:0.5:24:775 &amp;quot;&lt;br /&gt;
                         echo -n &amp;quot;RRA:AVERAGE:0.5:288:797 &amp;quot;&lt;br /&gt;
                         echo -n &amp;quot;RRA:MAX:0.5:1:600 &amp;quot;&lt;br /&gt;
                         echo -n &amp;quot;RRA:MAX:0.5:6:700 &amp;quot;&lt;br /&gt;
                         echo -n &amp;quot;RRA:MAX:0.5:24:775 &amp;quot;&lt;br /&gt;
                         echo &amp;quot;RRA:MAX:0.5:288:797&amp;quot;&lt;br /&gt;
                 ) | $command&lt;br /&gt;
                 fi&lt;br /&gt;
         fi&lt;br /&gt;
  &lt;br /&gt;
         if [ &amp;quot;$update&amp;quot; -eq 1 ]; then&lt;br /&gt;
                 (&lt;br /&gt;
                         cat /proc/bc/$VPSID/resources | awk -v rrdfile=$RRDFILENAME '&lt;br /&gt;
                         BEGIN { &lt;br /&gt;
                                 ORS=&amp;quot;&amp;quot;; &lt;br /&gt;
                                 getline&lt;br /&gt;
                                 keys=$1 &amp;quot;_f&amp;quot;; values=$6;&lt;br /&gt;
                                 keys=keys &amp;quot;:&amp;quot; $1 &amp;quot;_h&amp;quot;; values=values &amp;quot;:&amp;quot; $2;&lt;br /&gt;
                                 keys=keys &amp;quot;:&amp;quot; $1 &amp;quot;_b&amp;quot;; values=values &amp;quot;:&amp;quot; $4;&lt;br /&gt;
                         } &lt;br /&gt;
                         {&lt;br /&gt;
                                 keys=keys &amp;quot;:&amp;quot; $1 &amp;quot;_f&amp;quot;; values=values &amp;quot;:&amp;quot; $6;&lt;br /&gt;
                                 keys=keys &amp;quot;:&amp;quot; $1 &amp;quot;_h&amp;quot;; values=values &amp;quot;:&amp;quot; $2;&lt;br /&gt;
                                 keys=keys &amp;quot;:&amp;quot; $1 &amp;quot;_b&amp;quot;; values=values &amp;quot;:&amp;quot; $4;&lt;br /&gt;
                         }&lt;br /&gt;
                         END { print &amp;quot;update &amp;quot; rrdfile &amp;quot; -t &amp;quot; keys &amp;quot; N:&amp;quot; values &amp;quot;\n&amp;quot;; } '&lt;br /&gt;
                 ) | $command&lt;br /&gt;
         fi&lt;br /&gt;
 done&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
&lt;br /&gt;
 ubc_rrd_collect.sh [update] [init] [send]&lt;br /&gt;
 &lt;br /&gt;
   update - run this to update rrd files&lt;br /&gt;
   init   - scan system and create rrd files&lt;br /&gt;
   send   - use this to send commands to rddtool&lt;br /&gt;
&lt;br /&gt;
== Migration and new vps ==&lt;br /&gt;
&lt;br /&gt;
When you have this script running in cron on every hardware node and you're migrating a vps from one node to the other the script will automatically detect this and pick it up on the other node. &lt;br /&gt;
&lt;br /&gt;
When you create a new vps you have to run &amp;lt;code&amp;gt;ubc_rrd_collect.sh init send&amp;lt;/code&amp;gt; and it will ping rddtool to create a new rrd database. It won't overwrite existing databases because it first checks if a database already exists.&lt;br /&gt;
&lt;br /&gt;
=== Setting up cron ===&lt;br /&gt;
&lt;br /&gt;
Run update every 5 minutes:&lt;br /&gt;
&lt;br /&gt;
 */5     *       *       *       *       /path/to/ubc_rrd_collect.sh update send | grep -v '^OK'&lt;br /&gt;
&lt;br /&gt;
Run init every hour (or run it manually when needed):&lt;br /&gt;
 0       *       *       *       *       /path/to/ubc_rrd_collect.sh init send | grep -v '^OK'&lt;/div&gt;</summary>
		<author><name>Vincent</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.openvz.org/index.php?title=Monitoring_openvz_resources_using_rrdtool&amp;diff=6164</id>
		<title>Monitoring openvz resources using rrdtool</title>
		<link rel="alternate" type="text/html" href="https://wiki.openvz.org/index.php?title=Monitoring_openvz_resources_using_rrdtool&amp;diff=6164"/>
		<updated>2008-07-09T07:49:16Z</updated>

		<summary type="html">&lt;p&gt;Vincent: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Monitoring]]&lt;br /&gt;
&lt;br /&gt;
In this setup we're using [http://oss.oetiker.ch/rrdtool/ rrdtool] to collect data collects data from several openvz hardware nodes to a central [http://oss.oetiker.ch/rrdtool/doc/rrdtool.en.html#IRRD_Server rrd server].&lt;br /&gt;
&lt;br /&gt;
=== Setting up rrd server ===&lt;br /&gt;
&lt;br /&gt;
Create a directory /var/rrd on central server.&lt;br /&gt;
&lt;br /&gt;
 mkdir /var/rrd&lt;br /&gt;
&lt;br /&gt;
In /etc/xinetd.d create a file rrdsrv and adjust addresses and paths according to local settings.&lt;br /&gt;
&lt;br /&gt;
 service rrdsrv&lt;br /&gt;
 {&lt;br /&gt;
   disable         = no&lt;br /&gt;
   socket_type     = stream&lt;br /&gt;
   protocol        = tcp&lt;br /&gt;
   wait            = no&lt;br /&gt;
   user            = root&lt;br /&gt;
   only_from       = 192.168.2.0/24&lt;br /&gt;
   server          = /usr/bin/rrdtool&lt;br /&gt;
   server_args     = - /var/rrd&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Add 'rrdsrv' to /etc/services&lt;br /&gt;
 rrdsrv                13900/tcp&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Collect script ===&lt;br /&gt;
&lt;br /&gt;
Put the following script on the openvz hardware nodes (ubc_rrd_collect.sh):&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 &lt;br /&gt;
 PATH=&amp;quot;/bin:/sbin:/usr/bin:/usr/sbin&amp;quot;&lt;br /&gt;
 SENDCOMMAND='netcat 192.168.2.1 13900'&lt;br /&gt;
 HEARTBEAT=600&lt;br /&gt;
 &lt;br /&gt;
 function error {&lt;br /&gt;
         echo $1&lt;br /&gt;
         exit 1&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 test -r /proc/bc/0/resources || error &amp;quot;Not openvz kernel?&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 command='cat'&lt;br /&gt;
 init=0&lt;br /&gt;
 update=0&lt;br /&gt;
 send=0&lt;br /&gt;
 &lt;br /&gt;
 while [ ! -z &amp;quot;$1&amp;quot; ]; do&lt;br /&gt;
         case &amp;quot;$1&amp;quot; in&lt;br /&gt;
                 send)&lt;br /&gt;
                         send=1&lt;br /&gt;
                         command=$SENDCOMMAND&lt;br /&gt;
                         ;;&lt;br /&gt;
                 init)&lt;br /&gt;
                         init=1&lt;br /&gt;
                         ;;&lt;br /&gt;
                 update)&lt;br /&gt;
                         update=1&lt;br /&gt;
                         ;;&lt;br /&gt;
         esac&lt;br /&gt;
         shift&lt;br /&gt;
 done&lt;br /&gt;
 &lt;br /&gt;
 VPSIDS=$(vzlist | awk ' BEGIN { ORS=&amp;quot; &amp;quot;; getline } { print $1 }')&lt;br /&gt;
 &lt;br /&gt;
 PARAMS=$(cat /proc/bc/0/resources | awk '{ print $1 }'| sort -u | xargs)&lt;br /&gt;
 if [ &amp;quot;$send&amp;quot; -eq 1 ]; then&lt;br /&gt;
         # to spread the load we sleep for a random while (between 0 and 60 sec)&lt;br /&gt;
         number=$RANDOM&lt;br /&gt;
         let &amp;quot;number %= 60&amp;quot;&lt;br /&gt;
         sleep $number&lt;br /&gt;
 fi&lt;br /&gt;
 &lt;br /&gt;
 for VPSID in $VPSIDS; do&lt;br /&gt;
        RRDFILENAME=&amp;quot;ubc_${VPSID}.rrd&amp;quot; &lt;br /&gt;
 &lt;br /&gt;
         if [ &amp;quot;$init&amp;quot; -eq 1 ]; then&lt;br /&gt;
                 exists=0&lt;br /&gt;
                 if [ &amp;quot;$send&amp;quot; -eq 1 ]; then&lt;br /&gt;
                         echo &amp;quot;info $RRDFILENAME&amp;quot; | $command | grep -q &amp;quot;No such file or directory&amp;quot; || exists=1&lt;br /&gt;
                 fi      &lt;br /&gt;
                 &lt;br /&gt;
                 if [ &amp;quot;$exists&amp;quot; -eq 0 ]; then&lt;br /&gt;
                 (&lt;br /&gt;
                         echo -n &amp;quot;create ${RRDFILENAME} &amp;quot;&lt;br /&gt;
                         for param in $PARAMS; do&lt;br /&gt;
                                 echo -n &amp;quot;DS:${param}_f:DERIVE:$HEARTBEAT:0:U &amp;quot;&lt;br /&gt;
                                 echo -n &amp;quot;DS:${param}_h:GAUGE:$HEARTBEAT:0:U &amp;quot;&lt;br /&gt;
                                 echo -n &amp;quot;DS:${param}_b:GAUGE:$HEARTBEAT:0:U &amp;quot;&lt;br /&gt;
                         done&lt;br /&gt;
                         echo -n &amp;quot;RRA:AVERAGE:0.5:1:600 &amp;quot;&lt;br /&gt;
                         echo -n &amp;quot;RRA:AVERAGE:0.5:6:700 &amp;quot;&lt;br /&gt;
                         echo -n &amp;quot;RRA:AVERAGE:0.5:24:775 &amp;quot;&lt;br /&gt;
                         echo -n &amp;quot;RRA:AVERAGE:0.5:288:797 &amp;quot;&lt;br /&gt;
                         echo -n &amp;quot;RRA:MAX:0.5:1:600 &amp;quot;&lt;br /&gt;
                         echo -n &amp;quot;RRA:MAX:0.5:6:700 &amp;quot;&lt;br /&gt;
                         echo -n &amp;quot;RRA:MAX:0.5:24:775 &amp;quot;&lt;br /&gt;
                         echo &amp;quot;RRA:MAX:0.5:288:797&amp;quot;&lt;br /&gt;
                 ) | $command&lt;br /&gt;
                 fi&lt;br /&gt;
         fi&lt;br /&gt;
  &lt;br /&gt;
         if [ &amp;quot;$update&amp;quot; -eq 1 ]; then&lt;br /&gt;
                 (&lt;br /&gt;
                         cat /proc/bc/$VPSID/resources | awk -v rrdfile=$RRDFILENAME '&lt;br /&gt;
                         BEGIN { &lt;br /&gt;
                                 ORS=&amp;quot;&amp;quot;; &lt;br /&gt;
                                 getline&lt;br /&gt;
                                 keys=$1 &amp;quot;_f&amp;quot;; values=$6;&lt;br /&gt;
                                 keys=keys &amp;quot;:&amp;quot; $1 &amp;quot;_h&amp;quot;; values=values &amp;quot;:&amp;quot; $2;&lt;br /&gt;
                                 keys=keys &amp;quot;:&amp;quot; $1 &amp;quot;_b&amp;quot;; values=values &amp;quot;:&amp;quot; $4;&lt;br /&gt;
                         } &lt;br /&gt;
                         {&lt;br /&gt;
                                 keys=keys &amp;quot;:&amp;quot; $1 &amp;quot;_f&amp;quot;; values=values &amp;quot;:&amp;quot; $6;&lt;br /&gt;
                                 keys=keys &amp;quot;:&amp;quot; $1 &amp;quot;_h&amp;quot;; values=values &amp;quot;:&amp;quot; $2;&lt;br /&gt;
                                 keys=keys &amp;quot;:&amp;quot; $1 &amp;quot;_b&amp;quot;; values=values &amp;quot;:&amp;quot; $4;&lt;br /&gt;
                         }&lt;br /&gt;
                         END { print &amp;quot;update &amp;quot; rrdfile &amp;quot; -t &amp;quot; keys &amp;quot; N:&amp;quot; values &amp;quot;\n&amp;quot;; } '&lt;br /&gt;
                 ) | $command&lt;br /&gt;
         fi&lt;br /&gt;
 done&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
&lt;br /&gt;
 ubc_rrd_collect.sh [update] [init] [send]&lt;br /&gt;
 &lt;br /&gt;
   update - run this to update rrd files&lt;br /&gt;
   init   - scan system and create rrd files&lt;br /&gt;
   send   - use this to send commands to rddtool&lt;br /&gt;
&lt;br /&gt;
== Migration and new vps ==&lt;br /&gt;
&lt;br /&gt;
When you have this script running in cron on every hardware node and you're migrating a vps from one node to the other the script will automatically detect this and pick it up on the other node. &lt;br /&gt;
&lt;br /&gt;
When you create a new vps you have to run &amp;lt;code&amp;gt;ubc_rrd_collect.sh init send&amp;lt;/code&amp;gt; and it will ping rddtool to create a new rrd database. It won't overwrite existing databases because it first checks if a database already exists.&lt;br /&gt;
&lt;br /&gt;
=== Setting up cron ===&lt;br /&gt;
&lt;br /&gt;
Run update every 5 minutes:&lt;br /&gt;
&lt;br /&gt;
 */5     *       *       *       *       /path/to/ubc_rrd_collect.sh update send | grep -v '^OK'&lt;br /&gt;
&lt;br /&gt;
Run init every hour (or run it manually when needed):&lt;br /&gt;
 0       *       *       *       *       /path/to/ubc_rrd_collect.sh init send | grep -v '^OK'&lt;/div&gt;</summary>
		<author><name>Vincent</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.openvz.org/index.php?title=Monitoring_openvz_resources_using_rrdtool&amp;diff=6163</id>
		<title>Monitoring openvz resources using rrdtool</title>
		<link rel="alternate" type="text/html" href="https://wiki.openvz.org/index.php?title=Monitoring_openvz_resources_using_rrdtool&amp;diff=6163"/>
		<updated>2008-07-09T07:27:54Z</updated>

		<summary type="html">&lt;p&gt;Vincent: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Monitoring]]&lt;br /&gt;
&lt;br /&gt;
In this setup there is a central rrd server that collects data from several openvz hardware nodes.&lt;br /&gt;
&lt;br /&gt;
=== Setting up rrd server ===&lt;br /&gt;
&lt;br /&gt;
Create a directory /var/rrd on central server.&lt;br /&gt;
&lt;br /&gt;
 mkdir /var/rrd&lt;br /&gt;
&lt;br /&gt;
In /etc/xinetd.d create a file rrdsrv and adjust addresses and paths according to local settings.&lt;br /&gt;
&lt;br /&gt;
 service rrdsrv&lt;br /&gt;
 {&lt;br /&gt;
   disable         = no&lt;br /&gt;
   socket_type     = stream&lt;br /&gt;
   protocol        = tcp&lt;br /&gt;
   wait            = no&lt;br /&gt;
   user            = root&lt;br /&gt;
   only_from       = 192.168.2.0/24&lt;br /&gt;
   server          = /usr/bin/rrdtool&lt;br /&gt;
   server_args     = - /var/rrd&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Add service in /etc/services&lt;br /&gt;
 rrdsrv                13900/tcp&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Collect script ===&lt;br /&gt;
&lt;br /&gt;
Put the following script on the openvz hardware nodes (ubc_rrd_collect.sh):&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 &lt;br /&gt;
 PATH=&amp;quot;/bin:/sbin:/usr/bin:/usr/sbin&amp;quot;&lt;br /&gt;
 SENDCOMMAND='netcat 192.168.2.1 13900'&lt;br /&gt;
 HEARTBEAT=600&lt;br /&gt;
 &lt;br /&gt;
 function error {&lt;br /&gt;
         echo $1&lt;br /&gt;
         exit 1&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 test -r /proc/bc/0/resources || error &amp;quot;Not openvz kernel?&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 command='cat'&lt;br /&gt;
 init=0&lt;br /&gt;
 update=0&lt;br /&gt;
 send=0&lt;br /&gt;
 &lt;br /&gt;
 while [ ! -z &amp;quot;$1&amp;quot; ]; do&lt;br /&gt;
         case &amp;quot;$1&amp;quot; in&lt;br /&gt;
                 send)&lt;br /&gt;
                         send=1&lt;br /&gt;
                         command=$SENDCOMMAND&lt;br /&gt;
                         ;;&lt;br /&gt;
                 init)&lt;br /&gt;
                         init=1&lt;br /&gt;
                         ;;&lt;br /&gt;
                 update)&lt;br /&gt;
                         update=1&lt;br /&gt;
                         ;;&lt;br /&gt;
         esac&lt;br /&gt;
         shift&lt;br /&gt;
 done&lt;br /&gt;
 &lt;br /&gt;
 VPSIDS=$(vzlist | awk ' BEGIN { ORS=&amp;quot; &amp;quot;; getline } { print $1 }')&lt;br /&gt;
 &lt;br /&gt;
 PARAMS=$(cat /proc/bc/0/resources | awk '{ print $1 }'| sort -u | xargs)&lt;br /&gt;
 if [ &amp;quot;$send&amp;quot; -eq 1 ]; then&lt;br /&gt;
         # to spread the load we sleep for a random while (between 0 and 60 sec)&lt;br /&gt;
         number=$RANDOM&lt;br /&gt;
         let &amp;quot;number %= 60&amp;quot;&lt;br /&gt;
         sleep $number&lt;br /&gt;
 fi&lt;br /&gt;
 &lt;br /&gt;
 for VPSID in $VPSIDS; do&lt;br /&gt;
        RRDFILENAME=&amp;quot;ubc_${VPSID}.rrd&amp;quot; &lt;br /&gt;
 &lt;br /&gt;
         if [ &amp;quot;$init&amp;quot; -eq 1 ]; then&lt;br /&gt;
                 exists=0&lt;br /&gt;
                 if [ &amp;quot;$send&amp;quot; -eq 1 ]; then&lt;br /&gt;
                         echo &amp;quot;info $RRDFILENAME&amp;quot; | $command | grep -q &amp;quot;No such file or directory&amp;quot; || exists=1&lt;br /&gt;
                 fi      &lt;br /&gt;
                 &lt;br /&gt;
                 if [ &amp;quot;$exists&amp;quot; -eq 0 ]; then&lt;br /&gt;
                 (&lt;br /&gt;
                         echo -n &amp;quot;create ${RRDFILENAME} &amp;quot;&lt;br /&gt;
                         for param in $PARAMS; do&lt;br /&gt;
                                 echo -n &amp;quot;DS:${param}_f:DERIVE:$HEARTBEAT:0:U &amp;quot;&lt;br /&gt;
                                 echo -n &amp;quot;DS:${param}_h:GAUGE:$HEARTBEAT:0:U &amp;quot;&lt;br /&gt;
                                 echo -n &amp;quot;DS:${param}_b:GAUGE:$HEARTBEAT:0:U &amp;quot;&lt;br /&gt;
                         done&lt;br /&gt;
                         echo -n &amp;quot;RRA:AVERAGE:0.5:1:600 &amp;quot;&lt;br /&gt;
                         echo -n &amp;quot;RRA:AVERAGE:0.5:6:700 &amp;quot;&lt;br /&gt;
                         echo -n &amp;quot;RRA:AVERAGE:0.5:24:775 &amp;quot;&lt;br /&gt;
                         echo -n &amp;quot;RRA:AVERAGE:0.5:288:797 &amp;quot;&lt;br /&gt;
                         echo -n &amp;quot;RRA:MAX:0.5:1:600 &amp;quot;&lt;br /&gt;
                         echo -n &amp;quot;RRA:MAX:0.5:6:700 &amp;quot;&lt;br /&gt;
                         echo -n &amp;quot;RRA:MAX:0.5:24:775 &amp;quot;&lt;br /&gt;
                         echo &amp;quot;RRA:MAX:0.5:288:797&amp;quot;&lt;br /&gt;
                 ) | $command&lt;br /&gt;
                 fi&lt;br /&gt;
         fi&lt;br /&gt;
  &lt;br /&gt;
         if [ &amp;quot;$update&amp;quot; -eq 1 ]; then&lt;br /&gt;
                 (&lt;br /&gt;
                         cat /proc/bc/$VPSID/resources | awk -v rrdfile=$RRDFILENAME '&lt;br /&gt;
                         BEGIN { &lt;br /&gt;
                                 ORS=&amp;quot;&amp;quot;; &lt;br /&gt;
                                 getline&lt;br /&gt;
                                 keys=$1 &amp;quot;_f&amp;quot;; values=$6;&lt;br /&gt;
                                 keys=keys &amp;quot;:&amp;quot; $1 &amp;quot;_h&amp;quot;; values=values &amp;quot;:&amp;quot; $2;&lt;br /&gt;
                                 keys=keys &amp;quot;:&amp;quot; $1 &amp;quot;_b&amp;quot;; values=values &amp;quot;:&amp;quot; $4;&lt;br /&gt;
                         } &lt;br /&gt;
                         {&lt;br /&gt;
                                 keys=keys &amp;quot;:&amp;quot; $1 &amp;quot;_f&amp;quot;; values=values &amp;quot;:&amp;quot; $6;&lt;br /&gt;
                                 keys=keys &amp;quot;:&amp;quot; $1 &amp;quot;_h&amp;quot;; values=values &amp;quot;:&amp;quot; $2;&lt;br /&gt;
                                 keys=keys &amp;quot;:&amp;quot; $1 &amp;quot;_b&amp;quot;; values=values &amp;quot;:&amp;quot; $4;&lt;br /&gt;
                         }&lt;br /&gt;
                         END { print &amp;quot;update &amp;quot; rrdfile &amp;quot; -t &amp;quot; keys &amp;quot; N:&amp;quot; values &amp;quot;\n&amp;quot;; } '&lt;br /&gt;
                 ) | $command&lt;br /&gt;
         fi&lt;br /&gt;
 done&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
&lt;br /&gt;
 ubc_rrd_collect.sh [update] [init] [send]&lt;br /&gt;
 &lt;br /&gt;
   update - run this to update rrd files&lt;br /&gt;
   init   - scan system and create rrd files&lt;br /&gt;
   send   - use this to send commands to rddtool&lt;br /&gt;
&lt;br /&gt;
== Migration and new vps ==&lt;br /&gt;
&lt;br /&gt;
When you have this script running in cron on every hardware node and you're migrating a vps from one node to the other the script will automatically detect this and pick it up on the other node. &lt;br /&gt;
&lt;br /&gt;
When you create a new vps you have to run &amp;lt;code&amp;gt;ubc_rrd_collect.sh init send&amp;lt;/code&amp;gt; and it will ping rddtool to create a new rrd database. It won't overwrite existing databases because it first checks if a database already exists.&lt;br /&gt;
&lt;br /&gt;
=== Setting up cron ===&lt;br /&gt;
&lt;br /&gt;
Run update every 5 minutes:&lt;br /&gt;
&lt;br /&gt;
 */5     *       *       *       *       /path/to/ubc_rrd_collect.sh update send | grep -v '^OK'&lt;br /&gt;
&lt;br /&gt;
Run init every hour (or run it manually when needed):&lt;br /&gt;
 0       *       *       *       *       /path/to/ubc_rrd_collect.sh init send | grep -v '^OK'&lt;/div&gt;</summary>
		<author><name>Vincent</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.openvz.org/index.php?title=Monitoring_openvz_resources_using_rrdtool&amp;diff=6162</id>
		<title>Monitoring openvz resources using rrdtool</title>
		<link rel="alternate" type="text/html" href="https://wiki.openvz.org/index.php?title=Monitoring_openvz_resources_using_rrdtool&amp;diff=6162"/>
		<updated>2008-07-09T07:26:58Z</updated>

		<summary type="html">&lt;p&gt;Vincent: /* Usage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Monitoring]]&lt;br /&gt;
&lt;br /&gt;
In this setup there is a central rrd server that collects data from several openvz hardware nodes&lt;br /&gt;
&lt;br /&gt;
=== Setting up rrd server ===&lt;br /&gt;
&lt;br /&gt;
Create a directory /var/rrd on central server.&lt;br /&gt;
&lt;br /&gt;
 mkdir /var/rrd&lt;br /&gt;
&lt;br /&gt;
In /etc/xinetd.d create a file rrdsrv and adjust addresses and paths according to local settings.&lt;br /&gt;
&lt;br /&gt;
 service rrdsrv&lt;br /&gt;
 {&lt;br /&gt;
   disable         = no&lt;br /&gt;
   socket_type     = stream&lt;br /&gt;
   protocol        = tcp&lt;br /&gt;
   wait            = no&lt;br /&gt;
   user            = root&lt;br /&gt;
   only_from       = 192.168.2.0/24&lt;br /&gt;
   server          = /usr/bin/rrdtool&lt;br /&gt;
   server_args     = - /var/rrd&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Add service in /etc/services&lt;br /&gt;
 rrdsrv                13900/tcp&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Collect script ===&lt;br /&gt;
&lt;br /&gt;
Put the following script on the openvz hardware nodes (ubc_rrd_collect.sh):&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 &lt;br /&gt;
 PATH=&amp;quot;/bin:/sbin:/usr/bin:/usr/sbin&amp;quot;&lt;br /&gt;
 SENDCOMMAND='netcat 192.168.2.1 13900'&lt;br /&gt;
 HEARTBEAT=600&lt;br /&gt;
 &lt;br /&gt;
 function error {&lt;br /&gt;
         echo $1&lt;br /&gt;
         exit 1&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 test -r /proc/bc/0/resources || error &amp;quot;Not openvz kernel?&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 command='cat'&lt;br /&gt;
 init=0&lt;br /&gt;
 update=0&lt;br /&gt;
 send=0&lt;br /&gt;
 &lt;br /&gt;
 while [ ! -z &amp;quot;$1&amp;quot; ]; do&lt;br /&gt;
         case &amp;quot;$1&amp;quot; in&lt;br /&gt;
                 send)&lt;br /&gt;
                         send=1&lt;br /&gt;
                         command=$SENDCOMMAND&lt;br /&gt;
                         ;;&lt;br /&gt;
                 init)&lt;br /&gt;
                         init=1&lt;br /&gt;
                         ;;&lt;br /&gt;
                 update)&lt;br /&gt;
                         update=1&lt;br /&gt;
                         ;;&lt;br /&gt;
         esac&lt;br /&gt;
         shift&lt;br /&gt;
 done&lt;br /&gt;
 &lt;br /&gt;
 VPSIDS=$(vzlist | awk ' BEGIN { ORS=&amp;quot; &amp;quot;; getline } { print $1 }')&lt;br /&gt;
 &lt;br /&gt;
 PARAMS=$(cat /proc/bc/0/resources | awk '{ print $1 }'| sort -u | xargs)&lt;br /&gt;
 if [ &amp;quot;$send&amp;quot; -eq 1 ]; then&lt;br /&gt;
         # to spread the load we sleep for a random while (between 0 and 60 sec)&lt;br /&gt;
         number=$RANDOM&lt;br /&gt;
         let &amp;quot;number %= 60&amp;quot;&lt;br /&gt;
         sleep $number&lt;br /&gt;
 fi&lt;br /&gt;
 &lt;br /&gt;
 for VPSID in $VPSIDS; do&lt;br /&gt;
        RRDFILENAME=&amp;quot;ubc_${VPSID}.rrd&amp;quot; &lt;br /&gt;
 &lt;br /&gt;
         if [ &amp;quot;$init&amp;quot; -eq 1 ]; then&lt;br /&gt;
                 exists=0&lt;br /&gt;
                 if [ &amp;quot;$send&amp;quot; -eq 1 ]; then&lt;br /&gt;
                         echo &amp;quot;info $RRDFILENAME&amp;quot; | $command | grep -q &amp;quot;No such file or directory&amp;quot; || exists=1&lt;br /&gt;
                 fi      &lt;br /&gt;
                 &lt;br /&gt;
                 if [ &amp;quot;$exists&amp;quot; -eq 0 ]; then&lt;br /&gt;
                 (&lt;br /&gt;
                         echo -n &amp;quot;create ${RRDFILENAME} &amp;quot;&lt;br /&gt;
                         for param in $PARAMS; do&lt;br /&gt;
                                 echo -n &amp;quot;DS:${param}_f:DERIVE:$HEARTBEAT:0:U &amp;quot;&lt;br /&gt;
                                 echo -n &amp;quot;DS:${param}_h:GAUGE:$HEARTBEAT:0:U &amp;quot;&lt;br /&gt;
                                 echo -n &amp;quot;DS:${param}_b:GAUGE:$HEARTBEAT:0:U &amp;quot;&lt;br /&gt;
                         done&lt;br /&gt;
                         echo -n &amp;quot;RRA:AVERAGE:0.5:1:600 &amp;quot;&lt;br /&gt;
                         echo -n &amp;quot;RRA:AVERAGE:0.5:6:700 &amp;quot;&lt;br /&gt;
                         echo -n &amp;quot;RRA:AVERAGE:0.5:24:775 &amp;quot;&lt;br /&gt;
                         echo -n &amp;quot;RRA:AVERAGE:0.5:288:797 &amp;quot;&lt;br /&gt;
                         echo -n &amp;quot;RRA:MAX:0.5:1:600 &amp;quot;&lt;br /&gt;
                         echo -n &amp;quot;RRA:MAX:0.5:6:700 &amp;quot;&lt;br /&gt;
                         echo -n &amp;quot;RRA:MAX:0.5:24:775 &amp;quot;&lt;br /&gt;
                         echo &amp;quot;RRA:MAX:0.5:288:797&amp;quot;&lt;br /&gt;
                 ) | $command&lt;br /&gt;
                 fi&lt;br /&gt;
         fi&lt;br /&gt;
  &lt;br /&gt;
         if [ &amp;quot;$update&amp;quot; -eq 1 ]; then&lt;br /&gt;
                 (&lt;br /&gt;
                         cat /proc/bc/$VPSID/resources | awk -v rrdfile=$RRDFILENAME '&lt;br /&gt;
                         BEGIN { &lt;br /&gt;
                                 ORS=&amp;quot;&amp;quot;; &lt;br /&gt;
                                 getline&lt;br /&gt;
                                 keys=$1 &amp;quot;_f&amp;quot;; values=$6;&lt;br /&gt;
                                 keys=keys &amp;quot;:&amp;quot; $1 &amp;quot;_h&amp;quot;; values=values &amp;quot;:&amp;quot; $2;&lt;br /&gt;
                                 keys=keys &amp;quot;:&amp;quot; $1 &amp;quot;_b&amp;quot;; values=values &amp;quot;:&amp;quot; $4;&lt;br /&gt;
                         } &lt;br /&gt;
                         {&lt;br /&gt;
                                 keys=keys &amp;quot;:&amp;quot; $1 &amp;quot;_f&amp;quot;; values=values &amp;quot;:&amp;quot; $6;&lt;br /&gt;
                                 keys=keys &amp;quot;:&amp;quot; $1 &amp;quot;_h&amp;quot;; values=values &amp;quot;:&amp;quot; $2;&lt;br /&gt;
                                 keys=keys &amp;quot;:&amp;quot; $1 &amp;quot;_b&amp;quot;; values=values &amp;quot;:&amp;quot; $4;&lt;br /&gt;
                         }&lt;br /&gt;
                         END { print &amp;quot;update &amp;quot; rrdfile &amp;quot; -t &amp;quot; keys &amp;quot; N:&amp;quot; values &amp;quot;\n&amp;quot;; } '&lt;br /&gt;
                 ) | $command&lt;br /&gt;
         fi&lt;br /&gt;
 done&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
&lt;br /&gt;
 ubc_rrd_collect.sh [update] [init] [send]&lt;br /&gt;
 &lt;br /&gt;
   update - run this to update rrd files&lt;br /&gt;
   init   - scan system and create rrd files&lt;br /&gt;
   send   - use this to send commands to rddtool&lt;br /&gt;
&lt;br /&gt;
== Migration and new vps ==&lt;br /&gt;
&lt;br /&gt;
When you have this script running in cron on every hardware node and you're migrating a vps from one node to the other the script will automatically detect this and pick it up on the other node. &lt;br /&gt;
&lt;br /&gt;
When you create a new vps you have to run &amp;lt;code&amp;gt;ubc_rrd_collect.sh init send&amp;lt;/code&amp;gt; and it will ping rddtool to create a new rrd database. It won't overwrite existing databases because it first checks if a database already exists.&lt;br /&gt;
&lt;br /&gt;
=== Setting up cron ===&lt;br /&gt;
&lt;br /&gt;
Run update every 5 minutes:&lt;br /&gt;
&lt;br /&gt;
 */5     *       *       *       *       /path/to/ubc_rrd_collect.sh update send | grep -v '^OK'&lt;br /&gt;
&lt;br /&gt;
Run init every hour (or run it manually when needed):&lt;br /&gt;
 0       *       *       *       *       /path/to/ubc_rrd_collect.sh init send | grep -v '^OK'&lt;/div&gt;</summary>
		<author><name>Vincent</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.openvz.org/index.php?title=Monitoring_openvz_resources_using_rrdtool&amp;diff=6161</id>
		<title>Monitoring openvz resources using rrdtool</title>
		<link rel="alternate" type="text/html" href="https://wiki.openvz.org/index.php?title=Monitoring_openvz_resources_using_rrdtool&amp;diff=6161"/>
		<updated>2008-07-09T07:19:45Z</updated>

		<summary type="html">&lt;p&gt;Vincent: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Monitoring]]&lt;br /&gt;
&lt;br /&gt;
In this setup there is a central rrd server that collects data from several openvz hardware nodes&lt;br /&gt;
&lt;br /&gt;
=== Setting up rrd server ===&lt;br /&gt;
&lt;br /&gt;
Create a directory /var/rrd on central server.&lt;br /&gt;
&lt;br /&gt;
 mkdir /var/rrd&lt;br /&gt;
&lt;br /&gt;
In /etc/xinetd.d create a file rrdsrv and adjust addresses and paths according to local settings.&lt;br /&gt;
&lt;br /&gt;
 service rrdsrv&lt;br /&gt;
 {&lt;br /&gt;
   disable         = no&lt;br /&gt;
   socket_type     = stream&lt;br /&gt;
   protocol        = tcp&lt;br /&gt;
   wait            = no&lt;br /&gt;
   user            = root&lt;br /&gt;
   only_from       = 192.168.2.0/24&lt;br /&gt;
   server          = /usr/bin/rrdtool&lt;br /&gt;
   server_args     = - /var/rrd&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Add service in /etc/services&lt;br /&gt;
 rrdsrv                13900/tcp&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Collect script ===&lt;br /&gt;
&lt;br /&gt;
Put the following script on the openvz hardware nodes (ubc_rrd_collect.sh):&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 &lt;br /&gt;
 PATH=&amp;quot;/bin:/sbin:/usr/bin:/usr/sbin&amp;quot;&lt;br /&gt;
 SENDCOMMAND='netcat 192.168.2.1 13900'&lt;br /&gt;
 HEARTBEAT=600&lt;br /&gt;
 &lt;br /&gt;
 function error {&lt;br /&gt;
         echo $1&lt;br /&gt;
         exit 1&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 test -r /proc/bc/0/resources || error &amp;quot;Not openvz kernel?&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 command='cat'&lt;br /&gt;
 init=0&lt;br /&gt;
 update=0&lt;br /&gt;
 send=0&lt;br /&gt;
 &lt;br /&gt;
 while [ ! -z &amp;quot;$1&amp;quot; ]; do&lt;br /&gt;
         case &amp;quot;$1&amp;quot; in&lt;br /&gt;
                 send)&lt;br /&gt;
                         send=1&lt;br /&gt;
                         command=$SENDCOMMAND&lt;br /&gt;
                         ;;&lt;br /&gt;
                 init)&lt;br /&gt;
                         init=1&lt;br /&gt;
                         ;;&lt;br /&gt;
                 update)&lt;br /&gt;
                         update=1&lt;br /&gt;
                         ;;&lt;br /&gt;
         esac&lt;br /&gt;
         shift&lt;br /&gt;
 done&lt;br /&gt;
 &lt;br /&gt;
 VPSIDS=$(vzlist | awk ' BEGIN { ORS=&amp;quot; &amp;quot;; getline } { print $1 }')&lt;br /&gt;
 &lt;br /&gt;
 PARAMS=$(cat /proc/bc/0/resources | awk '{ print $1 }'| sort -u | xargs)&lt;br /&gt;
 if [ &amp;quot;$send&amp;quot; -eq 1 ]; then&lt;br /&gt;
         # to spread the load we sleep for a random while (between 0 and 60 sec)&lt;br /&gt;
         number=$RANDOM&lt;br /&gt;
         let &amp;quot;number %= 60&amp;quot;&lt;br /&gt;
         sleep $number&lt;br /&gt;
 fi&lt;br /&gt;
 &lt;br /&gt;
 for VPSID in $VPSIDS; do&lt;br /&gt;
        RRDFILENAME=&amp;quot;ubc_${VPSID}.rrd&amp;quot; &lt;br /&gt;
 &lt;br /&gt;
         if [ &amp;quot;$init&amp;quot; -eq 1 ]; then&lt;br /&gt;
                 exists=0&lt;br /&gt;
                 if [ &amp;quot;$send&amp;quot; -eq 1 ]; then&lt;br /&gt;
                         echo &amp;quot;info $RRDFILENAME&amp;quot; | $command | grep -q &amp;quot;No such file or directory&amp;quot; || exists=1&lt;br /&gt;
                 fi      &lt;br /&gt;
                 &lt;br /&gt;
                 if [ &amp;quot;$exists&amp;quot; -eq 0 ]; then&lt;br /&gt;
                 (&lt;br /&gt;
                         echo -n &amp;quot;create ${RRDFILENAME} &amp;quot;&lt;br /&gt;
                         for param in $PARAMS; do&lt;br /&gt;
                                 echo -n &amp;quot;DS:${param}_f:DERIVE:$HEARTBEAT:0:U &amp;quot;&lt;br /&gt;
                                 echo -n &amp;quot;DS:${param}_h:GAUGE:$HEARTBEAT:0:U &amp;quot;&lt;br /&gt;
                                 echo -n &amp;quot;DS:${param}_b:GAUGE:$HEARTBEAT:0:U &amp;quot;&lt;br /&gt;
                         done&lt;br /&gt;
                         echo -n &amp;quot;RRA:AVERAGE:0.5:1:600 &amp;quot;&lt;br /&gt;
                         echo -n &amp;quot;RRA:AVERAGE:0.5:6:700 &amp;quot;&lt;br /&gt;
                         echo -n &amp;quot;RRA:AVERAGE:0.5:24:775 &amp;quot;&lt;br /&gt;
                         echo -n &amp;quot;RRA:AVERAGE:0.5:288:797 &amp;quot;&lt;br /&gt;
                         echo -n &amp;quot;RRA:MAX:0.5:1:600 &amp;quot;&lt;br /&gt;
                         echo -n &amp;quot;RRA:MAX:0.5:6:700 &amp;quot;&lt;br /&gt;
                         echo -n &amp;quot;RRA:MAX:0.5:24:775 &amp;quot;&lt;br /&gt;
                         echo &amp;quot;RRA:MAX:0.5:288:797&amp;quot;&lt;br /&gt;
                 ) | $command&lt;br /&gt;
                 fi&lt;br /&gt;
         fi&lt;br /&gt;
  &lt;br /&gt;
         if [ &amp;quot;$update&amp;quot; -eq 1 ]; then&lt;br /&gt;
                 (&lt;br /&gt;
                         cat /proc/bc/$VPSID/resources | awk -v rrdfile=$RRDFILENAME '&lt;br /&gt;
                         BEGIN { &lt;br /&gt;
                                 ORS=&amp;quot;&amp;quot;; &lt;br /&gt;
                                 getline&lt;br /&gt;
                                 keys=$1 &amp;quot;_f&amp;quot;; values=$6;&lt;br /&gt;
                                 keys=keys &amp;quot;:&amp;quot; $1 &amp;quot;_h&amp;quot;; values=values &amp;quot;:&amp;quot; $2;&lt;br /&gt;
                                 keys=keys &amp;quot;:&amp;quot; $1 &amp;quot;_b&amp;quot;; values=values &amp;quot;:&amp;quot; $4;&lt;br /&gt;
                         } &lt;br /&gt;
                         {&lt;br /&gt;
                                 keys=keys &amp;quot;:&amp;quot; $1 &amp;quot;_f&amp;quot;; values=values &amp;quot;:&amp;quot; $6;&lt;br /&gt;
                                 keys=keys &amp;quot;:&amp;quot; $1 &amp;quot;_h&amp;quot;; values=values &amp;quot;:&amp;quot; $2;&lt;br /&gt;
                                 keys=keys &amp;quot;:&amp;quot; $1 &amp;quot;_b&amp;quot;; values=values &amp;quot;:&amp;quot; $4;&lt;br /&gt;
                         }&lt;br /&gt;
                         END { print &amp;quot;update &amp;quot; rrdfile &amp;quot; -t &amp;quot; keys &amp;quot; N:&amp;quot; values &amp;quot;\n&amp;quot;; } '&lt;br /&gt;
                 ) | $command&lt;br /&gt;
         fi&lt;br /&gt;
 done&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
&lt;br /&gt;
 ubc_rrd_collect.sh [update] [init] [send]&lt;br /&gt;
&lt;br /&gt;
   update - run this to update rrd files&lt;br /&gt;
   init   - scan system and create rrd files&lt;br /&gt;
   send   - use this to send commands to rddtool&lt;br /&gt;
&lt;br /&gt;
=== Setting up cron ===&lt;br /&gt;
&lt;br /&gt;
Run update every 5 minutes:&lt;br /&gt;
&lt;br /&gt;
 */5     *       *       *       *       /path/to/ubc_rrd_collect.sh update send | grep -v '^OK'&lt;br /&gt;
&lt;br /&gt;
Run init every hour (or run it manually when needed):&lt;br /&gt;
 0       *       *       *       *       /path/to/ubc_rrd_collect.sh init send | grep -v '^OK'&lt;/div&gt;</summary>
		<author><name>Vincent</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.openvz.org/index.php?title=Monitoring_openvz_resources_using_rrdtool&amp;diff=6157</id>
		<title>Monitoring openvz resources using rrdtool</title>
		<link rel="alternate" type="text/html" href="https://wiki.openvz.org/index.php?title=Monitoring_openvz_resources_using_rrdtool&amp;diff=6157"/>
		<updated>2008-07-08T15:02:22Z</updated>

		<summary type="html">&lt;p&gt;Vincent: /* Collect script */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Monitoring]]&lt;br /&gt;
&lt;br /&gt;
In this setup there is a central rrd server that collects data from several openvz hardware nodes&lt;br /&gt;
&lt;br /&gt;
=== Setting up rrd server ===&lt;br /&gt;
&lt;br /&gt;
Create a directory /var/rrd on central server.&lt;br /&gt;
&lt;br /&gt;
 mkdir /var/rrd&lt;br /&gt;
&lt;br /&gt;
In /etc/xinetd.d create a file rrdsrv and adjust addresses and paths according to local settings.&lt;br /&gt;
&lt;br /&gt;
 service rrdsrv&lt;br /&gt;
 {&lt;br /&gt;
   disable         = no&lt;br /&gt;
   socket_type     = stream&lt;br /&gt;
   protocol        = tcp&lt;br /&gt;
   wait            = no&lt;br /&gt;
   user            = root&lt;br /&gt;
   only_from       = 192.168.2.0/24&lt;br /&gt;
   server          = /usr/bin/rrdtool&lt;br /&gt;
   server_args     = - /var/rrd&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Add service in /etc/services&lt;br /&gt;
 rrdsrv                13900/tcp&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Collect script ===&lt;br /&gt;
&lt;br /&gt;
Put the following script on the openvz hardware nodes:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 &lt;br /&gt;
 PATH=&amp;quot;/bin:/sbin:/usr/bin:/usr/sbin&amp;quot;&lt;br /&gt;
 SENDCOMMAND='netcat 192.168.2.1 13900'&lt;br /&gt;
 HEARTBEAT=600&lt;br /&gt;
 &lt;br /&gt;
 function error {&lt;br /&gt;
         echo $1&lt;br /&gt;
         exit 1&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 test -r /proc/bc/0/resources || error &amp;quot;Not openvz kernel?&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 command='cat'&lt;br /&gt;
 init=0&lt;br /&gt;
 update=0&lt;br /&gt;
 send=0&lt;br /&gt;
 &lt;br /&gt;
 while [ ! -z &amp;quot;$1&amp;quot; ]; do&lt;br /&gt;
         case &amp;quot;$1&amp;quot; in&lt;br /&gt;
                 send)&lt;br /&gt;
                         send=1&lt;br /&gt;
                         command=$SENDCOMMAND&lt;br /&gt;
                         ;;&lt;br /&gt;
                 init)&lt;br /&gt;
                         init=1&lt;br /&gt;
                         ;;&lt;br /&gt;
                 update)&lt;br /&gt;
                         update=1&lt;br /&gt;
                         ;;&lt;br /&gt;
         esac&lt;br /&gt;
         shift&lt;br /&gt;
 done&lt;br /&gt;
 &lt;br /&gt;
 VPSIDS=$(vzlist | awk ' BEGIN { ORS=&amp;quot; &amp;quot;; getline } { print $1 }')&lt;br /&gt;
 &lt;br /&gt;
 PARAMS=$(cat /proc/bc/0/resources | awk '{ print $1 }'| sort -u | xargs)&lt;br /&gt;
 if [ &amp;quot;$send&amp;quot; -eq 1 ]; then&lt;br /&gt;
         # to spread the load we sleep for a random while (between 0 and 60 sec)&lt;br /&gt;
         number=$RANDOM&lt;br /&gt;
         let &amp;quot;number %= 60&amp;quot;&lt;br /&gt;
         sleep $number&lt;br /&gt;
 fi&lt;br /&gt;
 &lt;br /&gt;
 for VPSID in $VPSIDS; do&lt;br /&gt;
        RRDFILENAME=&amp;quot;ubc_${VPSID}.rrd&amp;quot; &lt;br /&gt;
 &lt;br /&gt;
         if [ &amp;quot;$init&amp;quot; -eq 1 ]; then&lt;br /&gt;
                 exists=0&lt;br /&gt;
                 if [ &amp;quot;$send&amp;quot; -eq 1 ]; then&lt;br /&gt;
                         echo &amp;quot;info $RRDFILENAME&amp;quot; | $command | grep -q &amp;quot;No such file or directory&amp;quot; || exists=1&lt;br /&gt;
                 fi      &lt;br /&gt;
                 &lt;br /&gt;
                 if [ &amp;quot;$exists&amp;quot; -eq 0 ]; then&lt;br /&gt;
                 (&lt;br /&gt;
                         echo -n &amp;quot;create ${RRDFILENAME} &amp;quot;&lt;br /&gt;
                         for param in $PARAMS; do&lt;br /&gt;
                                 echo -n &amp;quot;DS:${param}_f:DERIVE:$HEARTBEAT:0:U &amp;quot;&lt;br /&gt;
                                 echo -n &amp;quot;DS:${param}_h:GAUGE:$HEARTBEAT:0:U &amp;quot;&lt;br /&gt;
                                 echo -n &amp;quot;DS:${param}_b:GAUGE:$HEARTBEAT:0:U &amp;quot;&lt;br /&gt;
                         done&lt;br /&gt;
                         echo -n &amp;quot;RRA:AVERAGE:0.5:1:600 &amp;quot;&lt;br /&gt;
                         echo -n &amp;quot;RRA:AVERAGE:0.5:6:700 &amp;quot;&lt;br /&gt;
                         echo -n &amp;quot;RRA:AVERAGE:0.5:24:775 &amp;quot;&lt;br /&gt;
                         echo -n &amp;quot;RRA:AVERAGE:0.5:288:797 &amp;quot;&lt;br /&gt;
                         echo -n &amp;quot;RRA:MAX:0.5:1:600 &amp;quot;&lt;br /&gt;
                         echo -n &amp;quot;RRA:MAX:0.5:6:700 &amp;quot;&lt;br /&gt;
                         echo -n &amp;quot;RRA:MAX:0.5:24:775 &amp;quot;&lt;br /&gt;
                         echo &amp;quot;RRA:MAX:0.5:288:797&amp;quot;&lt;br /&gt;
                 ) | $command&lt;br /&gt;
                 fi&lt;br /&gt;
         fi&lt;br /&gt;
  &lt;br /&gt;
         if [ &amp;quot;$update&amp;quot; -eq 1 ]; then&lt;br /&gt;
                 (&lt;br /&gt;
                         cat /proc/bc/$VPSID/resources | awk -v rrdfile=$RRDFILENAME '&lt;br /&gt;
                         BEGIN { &lt;br /&gt;
                                 ORS=&amp;quot;&amp;quot;; &lt;br /&gt;
                                 getline&lt;br /&gt;
                                 keys=$1 &amp;quot;_f&amp;quot;; values=$6;&lt;br /&gt;
                                 keys=keys &amp;quot;:&amp;quot; $1 &amp;quot;_h&amp;quot;; values=values &amp;quot;:&amp;quot; $2;&lt;br /&gt;
                                 keys=keys &amp;quot;:&amp;quot; $1 &amp;quot;_b&amp;quot;; values=values &amp;quot;:&amp;quot; $4;&lt;br /&gt;
                         } &lt;br /&gt;
                         {&lt;br /&gt;
                                 keys=keys &amp;quot;:&amp;quot; $1 &amp;quot;_f&amp;quot;; values=values &amp;quot;:&amp;quot; $6;&lt;br /&gt;
                                 keys=keys &amp;quot;:&amp;quot; $1 &amp;quot;_h&amp;quot;; values=values &amp;quot;:&amp;quot; $2;&lt;br /&gt;
                                 keys=keys &amp;quot;:&amp;quot; $1 &amp;quot;_b&amp;quot;; values=values &amp;quot;:&amp;quot; $4;&lt;br /&gt;
                         }&lt;br /&gt;
                         END { print &amp;quot;update &amp;quot; rrdfile &amp;quot; -t &amp;quot; keys &amp;quot; N:&amp;quot; values &amp;quot;\n&amp;quot;; } '&lt;br /&gt;
                 ) | $command&lt;br /&gt;
         fi&lt;br /&gt;
 done&lt;/div&gt;</summary>
		<author><name>Vincent</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.openvz.org/index.php?title=Monitoring_openvz_resources_using_rrdtool&amp;diff=6156</id>
		<title>Monitoring openvz resources using rrdtool</title>
		<link rel="alternate" type="text/html" href="https://wiki.openvz.org/index.php?title=Monitoring_openvz_resources_using_rrdtool&amp;diff=6156"/>
		<updated>2008-07-08T15:01:34Z</updated>

		<summary type="html">&lt;p&gt;Vincent: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Monitoring]]&lt;br /&gt;
&lt;br /&gt;
In this setup there is a central rrd server that collects data from several openvz hardware nodes&lt;br /&gt;
&lt;br /&gt;
=== Setting up rrd server ===&lt;br /&gt;
&lt;br /&gt;
Create a directory /var/rrd on central server.&lt;br /&gt;
&lt;br /&gt;
 mkdir /var/rrd&lt;br /&gt;
&lt;br /&gt;
In /etc/xinetd.d create a file rrdsrv and adjust addresses and paths according to local settings.&lt;br /&gt;
&lt;br /&gt;
 service rrdsrv&lt;br /&gt;
 {&lt;br /&gt;
   disable         = no&lt;br /&gt;
   socket_type     = stream&lt;br /&gt;
   protocol        = tcp&lt;br /&gt;
   wait            = no&lt;br /&gt;
   user            = root&lt;br /&gt;
   only_from       = 192.168.2.0/24&lt;br /&gt;
   server          = /usr/bin/rrdtool&lt;br /&gt;
   server_args     = - /var/rrd&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Add service in /etc/services&lt;br /&gt;
 rrdsrv                13900/tcp&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Collect script ===&lt;br /&gt;
&lt;br /&gt;
Put the following script on the openvz hardware nodes:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 &lt;br /&gt;
 PATH=&amp;quot;/bin:/sbin:/usr/bin:/usr/sbin&amp;quot;&lt;br /&gt;
 SENDCOMMAND='netcat 192.168.2.1 13900'&lt;br /&gt;
 HEARTBEAT=600&lt;br /&gt;
 &lt;br /&gt;
 function error {&lt;br /&gt;
         echo $1&lt;br /&gt;
         exit 1&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 test -r /proc/bc/0/resources || error &amp;quot;Not openvz kernel?&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 command='cat'&lt;br /&gt;
 init=0&lt;br /&gt;
 update=0&lt;br /&gt;
 send=0&lt;br /&gt;
 &lt;br /&gt;
 while [ ! -z &amp;quot;$1&amp;quot; ]; do&lt;br /&gt;
         case &amp;quot;$1&amp;quot; in&lt;br /&gt;
                 send)&lt;br /&gt;
                         send=1&lt;br /&gt;
                         command=$SENDCOMMAND&lt;br /&gt;
                         ;;&lt;br /&gt;
                 init)&lt;br /&gt;
                         init=1&lt;br /&gt;
                         ;;&lt;br /&gt;
                 update)&lt;br /&gt;
                         update=1&lt;br /&gt;
                         ;;&lt;br /&gt;
         esac&lt;br /&gt;
         shift&lt;br /&gt;
 done&lt;br /&gt;
 &lt;br /&gt;
 VPSIDS=$(vzlist | awk ' BEGIN { ORS=&amp;quot; &amp;quot;; getline } { print $1 }')&lt;br /&gt;
 &lt;br /&gt;
 PARAMS=$(cat /proc/bc/0/resources | awk '{ print $1 }'| sort -u | xargs)&lt;br /&gt;
 if [ &amp;quot;$send&amp;quot; -eq 1 ]; then&lt;br /&gt;
         # to spread the load we sleep for a random while (between 0 and 60 sec)&lt;br /&gt;
         number=$RANDOM&lt;br /&gt;
         let &amp;quot;number %= 60&amp;quot;&lt;br /&gt;
         sleep $number&lt;br /&gt;
 fi&lt;br /&gt;
 &lt;br /&gt;
 for VPSID in $VPSIDS; do&lt;br /&gt;
        RRDFILENAME=&amp;quot;ubc_${VPSID}.rrd&amp;quot; &lt;br /&gt;
 &lt;br /&gt;
         if [ &amp;quot;$init&amp;quot; -eq 1 ]; then&lt;br /&gt;
                 exists=0&lt;br /&gt;
                 if [ &amp;quot;$send&amp;quot; -eq 1 ]; then&lt;br /&gt;
                         echo &amp;quot;info $RRDFILENAME&amp;quot; | $command | grep -q &amp;quot;No such file or directory&amp;quot; || exists=1&lt;br /&gt;
                 fi      &lt;br /&gt;
                 &lt;br /&gt;
                 if [ &amp;quot;$exists&amp;quot; -eq 0 ]; then&lt;br /&gt;
                 (&lt;br /&gt;
                         echo -n &amp;quot;create ${RRDFILENAME} &amp;quot;&lt;br /&gt;
                         for param in $PARAMS; do&lt;br /&gt;
                                 echo -n &amp;quot;DS:${param}_f:DERIVE:$HEARTBEAT:0:U &amp;quot;&lt;br /&gt;
                                 echo -n &amp;quot;DS:${param}_h:GAUGE:$HEARTBEAT:0:U &amp;quot;&lt;br /&gt;
                                 echo -n &amp;quot;DS:${param}_b:GAUGE:$HEARTBEAT:0:U &amp;quot;&lt;br /&gt;
                         done&lt;br /&gt;
                         echo -n &amp;quot;RRA:AVERAGE:0.5:1:600 &amp;quot;&lt;br /&gt;
                         echo -n &amp;quot;RRA:AVERAGE:0.5:6:700 &amp;quot;&lt;br /&gt;
                         echo -n &amp;quot;RRA:AVERAGE:0.5:24:775 &amp;quot;&lt;br /&gt;
                         echo -n &amp;quot;RRA:AVERAGE:0.5:288:797 &amp;quot;&lt;br /&gt;
                         echo -n &amp;quot;RRA:MAX:0.5:1:600 &amp;quot;&lt;br /&gt;
                         echo -n &amp;quot;RRA:MAX:0.5:6:700 &amp;quot;&lt;br /&gt;
                         echo -n &amp;quot;RRA:MAX:0.5:24:775 &amp;quot;&lt;br /&gt;
                         echo &amp;quot;RRA:MAX:0.5:288:797&amp;quot;&lt;br /&gt;
                 ) | $command&lt;br /&gt;
                 fi&lt;br /&gt;
         fi&lt;/div&gt;</summary>
		<author><name>Vincent</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.openvz.org/index.php?title=Monitoring_openvz_resources_using_rrdtool&amp;diff=6155</id>
		<title>Monitoring openvz resources using rrdtool</title>
		<link rel="alternate" type="text/html" href="https://wiki.openvz.org/index.php?title=Monitoring_openvz_resources_using_rrdtool&amp;diff=6155"/>
		<updated>2008-07-08T14:55:08Z</updated>

		<summary type="html">&lt;p&gt;Vincent: New page: Category: Monitoring  In this setup there is a central rrd server that collects data from several openvz hardware nodes  === Setting up rrd server ===  Create a directory /var/rrd on c...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Monitoring]]&lt;br /&gt;
&lt;br /&gt;
In this setup there is a central rrd server that collects data from several openvz hardware nodes&lt;br /&gt;
&lt;br /&gt;
=== Setting up rrd server ===&lt;br /&gt;
&lt;br /&gt;
Create a directory /var/rrd on central server.&lt;br /&gt;
&lt;br /&gt;
 mkdir /var/rrd&lt;br /&gt;
&lt;br /&gt;
In /etc/xinetd.d create a file rrdsrv&lt;br /&gt;
&lt;br /&gt;
 service rrdsrv&lt;br /&gt;
 {&lt;br /&gt;
   disable         = no&lt;br /&gt;
   socket_type     = stream&lt;br /&gt;
   protocol        = tcp&lt;br /&gt;
   wait            = no&lt;br /&gt;
   user            = root&lt;br /&gt;
   only_from       = 192.168.2.0/24&lt;br /&gt;
   server          = /usr/bin/rrdtool&lt;br /&gt;
   server_args     = - /var/rrd&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Add service in /etc/services&lt;br /&gt;
 rrdsrv                13900/tcp&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Collect script ===&lt;/div&gt;</summary>
		<author><name>Vincent</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.openvz.org/index.php?title=Talk:OpenSUSE_template_creation&amp;diff=6107</id>
		<title>Talk:OpenSUSE template creation</title>
		<link rel="alternate" type="text/html" href="https://wiki.openvz.org/index.php?title=Talk:OpenSUSE_template_creation&amp;diff=6107"/>
		<updated>2008-06-30T09:36:44Z</updated>

		<summary type="html">&lt;p&gt;Vincent: New page: === opensuse 11 ===  To get opensuse 11 running on a openvz 2.6.18 kernel, I also had to downgrade iproute2 to the version from opensuse 10.2 (needed libdb_4_4 include with opensuse 11).&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== opensuse 11 ===&lt;br /&gt;
&lt;br /&gt;
To get opensuse 11 running on a openvz 2.6.18 kernel, I also had to downgrade iproute2 to the version from opensuse 10.2 (needed libdb_4_4 include with opensuse 11).&lt;/div&gt;</summary>
		<author><name>Vincent</name></author>
		
	</entry>
</feed>