<?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=Denisix</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=Denisix"/>
	<link rel="alternate" type="text/html" href="https://wiki.openvz.org/Special:Contributions/Denisix"/>
	<updated>2026-05-15T18:37:50Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.1</generator>
	<entry>
		<id>https://wiki.openvz.org/index.php?title=Traffic_accounting_through_proc&amp;diff=8491</id>
		<title>Traffic accounting through proc</title>
		<link rel="alternate" type="text/html" href="https://wiki.openvz.org/index.php?title=Traffic_accounting_through_proc&amp;diff=8491"/>
		<updated>2010-04-19T03:10:23Z</updated>

		<summary type="html">&lt;p&gt;Denisix: /* Script */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Traffic Accounting through /proc/net/dev&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Traffic accounting in OpenVZ can be done through data collection against&lt;br /&gt;
&amp;lt;code&amp;gt;/proc/net/dev&amp;lt;/code&amp;gt; in the individual containers on a [[HN]].&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
* OpenVZ&lt;br /&gt;
* RRDTool&lt;br /&gt;
* GNU AWK&lt;br /&gt;
&lt;br /&gt;
== Script ==&lt;br /&gt;
First create a directory to store your RRD files:&lt;br /&gt;
&lt;br /&gt;
 # mkdir /var/lib/rrd/&lt;br /&gt;
&lt;br /&gt;
Then install this script:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
# Script Name:  vz_direct_traffic_log&lt;br /&gt;
# Author:       &amp;quot;Brian Harrington, Alticon Inc&amp;quot; &amp;lt;bharrington@alticon.net&amp;gt;&lt;br /&gt;
# Website:      htty://www.alticon.net&lt;br /&gt;
# Editor:       &amp;quot;Denis Titov, ISP Okeanika&amp;quot; &amp;lt;denis@okeanika.net.ua&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Time to do the data collection.&lt;br /&gt;
for veid in `/usr/sbin/vzlist -o veid -H | sed 's/ //g'`&lt;br /&gt;
do      &lt;br /&gt;
        RRDFILE=&amp;quot;/var/lib/rrd/$veid.rrd&amp;quot;&lt;br /&gt;
        if ! test -e $RRDFILE; then&lt;br /&gt;
                echo $RRDFILE does not exist, creating.&lt;br /&gt;
&lt;br /&gt;
                # Place your preferred RRD Creation command here&lt;br /&gt;
                # or use this one, following command will create new RRD file with 300 sec step (for 5 min cron)&lt;br /&gt;
                /usr/bin/rrdtool create $RRDFILE --step 300 \&lt;br /&gt;
                        DS:IN:COUNTER:1000:0:U \&lt;br /&gt;
                        DS:OUT:COUNTER:1000:0:U \&lt;br /&gt;
                        RRA:AVERAGE:0.5:1:600000 \&lt;br /&gt;
                        RRA:AVERAGE:0.5:100:60000 \&lt;br /&gt;
                        RRA:AVERAGE:0.5:1000:6000&lt;br /&gt;
        fi&lt;br /&gt;
        # Parse out the inbound/outbound traffic and assign them to the corresponding variables     &lt;br /&gt;
        eval `/usr/sbin/vzctl exec $veid &amp;quot;grep venet0 /proc/net/dev&amp;quot;  |  \&lt;br /&gt;
                awk -F: '{print $2}' | awk '{printf&amp;quot;CTIN=%-15d\nCTOUT=%-15d\n&amp;quot;, $1, $9}'`&lt;br /&gt;
&lt;br /&gt;
        # Send the data to the corresponding RRD time with (N)now as the update time&lt;br /&gt;
        /usr/bin/rrdtool update $RRDFILE N:$CTIN:$CTOUT&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
the following script uses previously generated RRD's, you'll get nice PNG pictures and index.html file with them:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
# Script Name:  vz_direct_traffic_render&lt;br /&gt;
# Author:       &amp;quot;Denis Titov, ISP Okeanika&amp;quot; &amp;lt;denis@okeanika.net.ua&amp;gt;&lt;br /&gt;
# Website:      http://www.okeanika.net.ua&lt;br /&gt;
&lt;br /&gt;
rrd_path=/var/lib/rrd&lt;br /&gt;
www_path=/var/www/html/traf&lt;br /&gt;
&lt;br /&gt;
cd $rrd_path&lt;br /&gt;
for RRD in *.rrd&lt;br /&gt;
do&lt;br /&gt;
        CTID=`echo $RRD|awk -F\. '{print $1}'`&lt;br /&gt;
&lt;br /&gt;
        # list of intervals, 1d = last day, 1w = last week and so..&lt;br /&gt;
        for INT in 1h 1d 1w 1m 1y&lt;br /&gt;
        do&lt;br /&gt;
                /usr/bin/rrdtool graph $www_path/${CTID}-${INT}.png \&lt;br /&gt;
                        --start now-$INT --end now \&lt;br /&gt;
                        -w 1000 -h 500 \&lt;br /&gt;
                        --title &amp;quot;CTID $CTID - Interval $INT&amp;quot; \&lt;br /&gt;
                        DEF:in=$RRD:IN:AVERAGE AREA:in#aea:'IN' LINE1:in#0e0 \&lt;br /&gt;
                        DEF:out=$RRD:OUT:AVERAGE AREA:out#eaa:'OUT' LINE1:out#e00&lt;br /&gt;
                echo &amp;quot;&amp;lt;p&amp;gt;&amp;lt;img src=\&amp;quot;${CTID}-${INT}.png\&amp;quot;&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;/p&amp;gt;&amp;quot; &amp;gt;&amp;gt; $www_path/index.html&lt;br /&gt;
        done&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Setup ==&lt;br /&gt;
Add this to cron to run every vz_direct_traffic_log every 5 min and vz_direct_traffic_render every 30 min:&lt;br /&gt;
&lt;br /&gt;
 # echo -e &amp;quot;*/5 * * * * root /path/to/script/vz_direct_traffic_log\n*/30 * * * * root /path/to/script/vz_direct_traffic_render &amp;quot; &amp;gt;&amp;gt; \&lt;br /&gt;
   /etc/crontab &amp;amp;&amp;amp; /etc/init.d/crontab restart&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Better use the cron system of OpenVZ&lt;br /&gt;
&lt;br /&gt;
 # echo -e &amp;quot;*/5 * * * * root /path/to/script/vz_direct_traffic_log\n*/30 * * * * root /path/to/script/vz_direct_traffic_render &amp;quot; &amp;gt;&amp;gt; \&lt;br /&gt;
   /etc/vz/cron/vz-traffic.sh &amp;amp;&amp;amp; /etc/init.d/vz update-cron&lt;br /&gt;
&lt;br /&gt;
To check the output of this later run:&lt;br /&gt;
&lt;br /&gt;
 # rrdtool fetch /var/lib/rrd/&amp;lt;veid&amp;gt;.rrd AVERAGE -s -3600&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* [[Traffic accounting with iptables]]&lt;br /&gt;
* [[Monitoring bandwidth of containers]]&lt;br /&gt;
&lt;br /&gt;
[[Category: Monitoring]]&lt;br /&gt;
[[Category: Networking]]&lt;/div&gt;</summary>
		<author><name>Denisix</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.openvz.org/index.php?title=Traffic_accounting_through_proc&amp;diff=8490</id>
		<title>Traffic accounting through proc</title>
		<link rel="alternate" type="text/html" href="https://wiki.openvz.org/index.php?title=Traffic_accounting_through_proc&amp;diff=8490"/>
		<updated>2010-04-19T03:00:41Z</updated>

		<summary type="html">&lt;p&gt;Denisix: /* Setup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Traffic Accounting through /proc/net/dev&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Traffic accounting in OpenVZ can be done through data collection against&lt;br /&gt;
&amp;lt;code&amp;gt;/proc/net/dev&amp;lt;/code&amp;gt; in the individual containers on a [[HN]].&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
* OpenVZ&lt;br /&gt;
* RRDTool&lt;br /&gt;
* GNU AWK&lt;br /&gt;
&lt;br /&gt;
== Script ==&lt;br /&gt;
First create a directory to store your RRD files:&lt;br /&gt;
&lt;br /&gt;
 # mkdir /var/lib/rrd/&lt;br /&gt;
&lt;br /&gt;
Then install this script:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
# Script Name:  vz_direct_traffic_log&lt;br /&gt;
# Author:       &amp;quot;Brian Harrington, Alticon Inc&amp;quot; &amp;lt;bharrington@alticon.net&amp;gt;&lt;br /&gt;
# Website:      htty://www.alticon.net&lt;br /&gt;
# Editor:       &amp;quot;Denis Titov, ISP Okeanika&amp;quot; &amp;lt;denis@okeanika.net.ua&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Time to do the data collection.&lt;br /&gt;
for veid in `/usr/sbin/vzlist -o veid -H | sed 's/ //g'`&lt;br /&gt;
do      &lt;br /&gt;
        RRDFILE=&amp;quot;/var/lib/rrd/$veid.rrd&amp;quot;&lt;br /&gt;
        if ! test -e $RRDFILE; then&lt;br /&gt;
                echo $RRDFILE does not exist, creating.&lt;br /&gt;
&lt;br /&gt;
                # Place your preferred RRD Creation command here&lt;br /&gt;
                # or use this one, following command will create new RRD file with 300 sec step (for 5 min cron)&lt;br /&gt;
                /usr/bin/rrdtool create $RRDFILE --step 300 \&lt;br /&gt;
                        DS:IN:COUNTER:1000:0:U \&lt;br /&gt;
                        DS:OUT:COUNTER:1000:0:U \&lt;br /&gt;
                        RRA:AVERAGE:0.5:1:600000 \&lt;br /&gt;
                        RRA:AVERAGE:0.5:100:60000 \&lt;br /&gt;
                        RRA:AVERAGE:0.5:1000:6000&lt;br /&gt;
        fi&lt;br /&gt;
        # Parse out the inbound/outbound traffic and assign them to the corresponding variables     &lt;br /&gt;
        eval `/usr/sbin/vzctl exec $veid &amp;quot;grep venet0 /proc/net/dev&amp;quot;  |  \&lt;br /&gt;
                awk -F: '{print $2}' | awk '{printf&amp;quot;CTIN=%-15d\nCTOUT=%-15d\n&amp;quot;, $1, $9}'`&lt;br /&gt;
&lt;br /&gt;
        # Send the data to the corresponding RRD time with (N)now as the update time&lt;br /&gt;
        /usr/bin/rrdtool update $RRDFILE N:$CTIN:$CTOUT&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
the following script uses previously generated RRD's, you'll get nice PNG pictures and index.html file with them:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
# Script Name:  vz_direct_traffic_render&lt;br /&gt;
# Author:       &amp;quot;Denis Titov, ISP Okeanika&amp;quot; &amp;lt;denis@okeanika.net.ua&amp;gt;&lt;br /&gt;
# Website:      http://www.okeanika.net.ua&lt;br /&gt;
&lt;br /&gt;
rrd_path=/var/lib/rrd&lt;br /&gt;
www_path=/var/www/html/traf&lt;br /&gt;
&lt;br /&gt;
cd $rrd_path&lt;br /&gt;
for RRD in *.rrd&lt;br /&gt;
do&lt;br /&gt;
        CTID=`echo $RRD|awk -F\. '{print $1}'`&lt;br /&gt;
&lt;br /&gt;
        # list of intervals, 1d = last day, 1w = last week and so..&lt;br /&gt;
        for INT in 1h 1d 1w 1m 1y&lt;br /&gt;
        do&lt;br /&gt;
                /usr/bin/rrdtool graph $www_path/${CTID}-${INT}.png \&lt;br /&gt;
                        --start now-$INT --end now \&lt;br /&gt;
                        -w 1000 -h 500 \&lt;br /&gt;
                        --title &amp;quot;CTID $CTID - Interval $INT&amp;quot; \&lt;br /&gt;
                        DEF:in=$RRD:IN:AVERAGE AREA:in#aea:'IN' LINE1:in#0e0 \&lt;br /&gt;
                        DEF:out=$RRD:OUT:AVERAGE AREA:out#eaa:'OUT' LINE1:in#e00&lt;br /&gt;
                echo &amp;quot;&amp;lt;p&amp;gt;&amp;lt;img src=\&amp;quot;${CTID}-${INT}.png\&amp;quot;&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;/p&amp;gt;&amp;quot; &amp;gt;&amp;gt; $www_path/index.html&lt;br /&gt;
        done&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Setup ==&lt;br /&gt;
Add this to cron to run every vz_direct_traffic_log every 5 min and vz_direct_traffic_render every 30 min:&lt;br /&gt;
&lt;br /&gt;
 # echo -e &amp;quot;*/5 * * * * root /path/to/script/vz_direct_traffic_log\n*/30 * * * * root /path/to/script/vz_direct_traffic_render &amp;quot; &amp;gt;&amp;gt; \&lt;br /&gt;
   /etc/crontab &amp;amp;&amp;amp; /etc/init.d/crontab restart&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Better use the cron system of OpenVZ&lt;br /&gt;
&lt;br /&gt;
 # echo -e &amp;quot;*/5 * * * * root /path/to/script/vz_direct_traffic_log\n*/30 * * * * root /path/to/script/vz_direct_traffic_render &amp;quot; &amp;gt;&amp;gt; \&lt;br /&gt;
   /etc/vz/cron/vz-traffic.sh &amp;amp;&amp;amp; /etc/init.d/vz update-cron&lt;br /&gt;
&lt;br /&gt;
To check the output of this later run:&lt;br /&gt;
&lt;br /&gt;
 # rrdtool fetch /var/lib/rrd/&amp;lt;veid&amp;gt;.rrd AVERAGE -s -3600&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* [[Traffic accounting with iptables]]&lt;br /&gt;
* [[Monitoring bandwidth of containers]]&lt;br /&gt;
&lt;br /&gt;
[[Category: Monitoring]]&lt;br /&gt;
[[Category: Networking]]&lt;/div&gt;</summary>
		<author><name>Denisix</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.openvz.org/index.php?title=Traffic_accounting_through_proc&amp;diff=8489</id>
		<title>Traffic accounting through proc</title>
		<link rel="alternate" type="text/html" href="https://wiki.openvz.org/index.php?title=Traffic_accounting_through_proc&amp;diff=8489"/>
		<updated>2010-04-19T02:55:46Z</updated>

		<summary type="html">&lt;p&gt;Denisix: /* Script */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Traffic Accounting through /proc/net/dev&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Traffic accounting in OpenVZ can be done through data collection against&lt;br /&gt;
&amp;lt;code&amp;gt;/proc/net/dev&amp;lt;/code&amp;gt; in the individual containers on a [[HN]].&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
* OpenVZ&lt;br /&gt;
* RRDTool&lt;br /&gt;
* GNU AWK&lt;br /&gt;
&lt;br /&gt;
== Script ==&lt;br /&gt;
First create a directory to store your RRD files:&lt;br /&gt;
&lt;br /&gt;
 # mkdir /var/lib/rrd/&lt;br /&gt;
&lt;br /&gt;
Then install this script:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
# Script Name:  vz_direct_traffic_log&lt;br /&gt;
# Author:       &amp;quot;Brian Harrington, Alticon Inc&amp;quot; &amp;lt;bharrington@alticon.net&amp;gt;&lt;br /&gt;
# Website:      htty://www.alticon.net&lt;br /&gt;
# Editor:       &amp;quot;Denis Titov, ISP Okeanika&amp;quot; &amp;lt;denis@okeanika.net.ua&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Time to do the data collection.&lt;br /&gt;
for veid in `/usr/sbin/vzlist -o veid -H | sed 's/ //g'`&lt;br /&gt;
do      &lt;br /&gt;
        RRDFILE=&amp;quot;/var/lib/rrd/$veid.rrd&amp;quot;&lt;br /&gt;
        if ! test -e $RRDFILE; then&lt;br /&gt;
                echo $RRDFILE does not exist, creating.&lt;br /&gt;
&lt;br /&gt;
                # Place your preferred RRD Creation command here&lt;br /&gt;
                # or use this one, following command will create new RRD file with 300 sec step (for 5 min cron)&lt;br /&gt;
                /usr/bin/rrdtool create $RRDFILE --step 300 \&lt;br /&gt;
                        DS:IN:COUNTER:1000:0:U \&lt;br /&gt;
                        DS:OUT:COUNTER:1000:0:U \&lt;br /&gt;
                        RRA:AVERAGE:0.5:1:600000 \&lt;br /&gt;
                        RRA:AVERAGE:0.5:100:60000 \&lt;br /&gt;
                        RRA:AVERAGE:0.5:1000:6000&lt;br /&gt;
        fi&lt;br /&gt;
        # Parse out the inbound/outbound traffic and assign them to the corresponding variables     &lt;br /&gt;
        eval `/usr/sbin/vzctl exec $veid &amp;quot;grep venet0 /proc/net/dev&amp;quot;  |  \&lt;br /&gt;
                awk -F: '{print $2}' | awk '{printf&amp;quot;CTIN=%-15d\nCTOUT=%-15d\n&amp;quot;, $1, $9}'`&lt;br /&gt;
&lt;br /&gt;
        # Send the data to the corresponding RRD time with (N)now as the update time&lt;br /&gt;
        /usr/bin/rrdtool update $RRDFILE N:$CTIN:$CTOUT&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
the following script uses previously generated RRD's, you'll get nice PNG pictures and index.html file with them:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
# Script Name:  vz_direct_traffic_render&lt;br /&gt;
# Author:       &amp;quot;Denis Titov, ISP Okeanika&amp;quot; &amp;lt;denis@okeanika.net.ua&amp;gt;&lt;br /&gt;
# Website:      http://www.okeanika.net.ua&lt;br /&gt;
&lt;br /&gt;
rrd_path=/var/lib/rrd&lt;br /&gt;
www_path=/var/www/html/traf&lt;br /&gt;
&lt;br /&gt;
cd $rrd_path&lt;br /&gt;
for RRD in *.rrd&lt;br /&gt;
do&lt;br /&gt;
        CTID=`echo $RRD|awk -F\. '{print $1}'`&lt;br /&gt;
&lt;br /&gt;
        # list of intervals, 1d = last day, 1w = last week and so..&lt;br /&gt;
        for INT in 1h 1d 1w 1m 1y&lt;br /&gt;
        do&lt;br /&gt;
                /usr/bin/rrdtool graph $www_path/${CTID}-${INT}.png \&lt;br /&gt;
                        --start now-$INT --end now \&lt;br /&gt;
                        -w 1000 -h 500 \&lt;br /&gt;
                        --title &amp;quot;CTID $CTID - Interval $INT&amp;quot; \&lt;br /&gt;
                        DEF:in=$RRD:IN:AVERAGE AREA:in#aea:'IN' LINE1:in#0e0 \&lt;br /&gt;
                        DEF:out=$RRD:OUT:AVERAGE AREA:out#eaa:'OUT' LINE1:in#e00&lt;br /&gt;
                echo &amp;quot;&amp;lt;p&amp;gt;&amp;lt;img src=\&amp;quot;${CTID}-${INT}.png\&amp;quot;&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;/p&amp;gt;&amp;quot; &amp;gt;&amp;gt; $www_path/index.html&lt;br /&gt;
        done&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Setup ==&lt;br /&gt;
Add this to cron to run every 5 minutes:&lt;br /&gt;
&lt;br /&gt;
 # echo &amp;quot;*/5 * * * * root /path/to/script/vz_direct_traffic_log &amp;quot; &amp;gt;&amp;gt; \&lt;br /&gt;
   /etc/crontab &amp;amp;&amp;amp; /etc/init.d/crontab restart&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Better use the cron system of OpenVZ&lt;br /&gt;
&lt;br /&gt;
 # echo &amp;quot;*/5 * * * * root /path/to/script/vz_direct_traffic_log &amp;quot; &amp;gt;&amp;gt; \&lt;br /&gt;
   /etc/vz/cron/vz-traffic.sh &amp;amp;&amp;amp; /etc/init.d/vz update-cron&lt;br /&gt;
&lt;br /&gt;
To check the output of this later run:&lt;br /&gt;
&lt;br /&gt;
 # rrdtool fetch /var/lib/rrd/&amp;lt;veid&amp;gt;.rrd AVERAGE -s -3600&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* [[Traffic accounting with iptables]]&lt;br /&gt;
* [[Monitoring bandwidth of containers]]&lt;br /&gt;
&lt;br /&gt;
[[Category: Monitoring]]&lt;br /&gt;
[[Category: Networking]]&lt;/div&gt;</summary>
		<author><name>Denisix</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.openvz.org/index.php?title=Traffic_accounting_through_proc&amp;diff=8488</id>
		<title>Traffic accounting through proc</title>
		<link rel="alternate" type="text/html" href="https://wiki.openvz.org/index.php?title=Traffic_accounting_through_proc&amp;diff=8488"/>
		<updated>2010-04-19T02:21:37Z</updated>

		<summary type="html">&lt;p&gt;Denisix: /* Script */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Traffic Accounting through /proc/net/dev&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Traffic accounting in OpenVZ can be done through data collection against&lt;br /&gt;
&amp;lt;code&amp;gt;/proc/net/dev&amp;lt;/code&amp;gt; in the individual containers on a [[HN]].&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
* OpenVZ&lt;br /&gt;
* RRDTool&lt;br /&gt;
* GNU AWK&lt;br /&gt;
&lt;br /&gt;
== Script ==&lt;br /&gt;
First create a directory to store your RRD files:&lt;br /&gt;
&lt;br /&gt;
 # mkdir /var/lib/rrd/&lt;br /&gt;
&lt;br /&gt;
Then install this script:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
# Script Name:  vz_direct_traffic_log&lt;br /&gt;
# Author:       &amp;quot;Brian Harrington, Alticon Inc&amp;quot; &amp;lt;bharrington@alticon.net&amp;gt;&lt;br /&gt;
# Website:      htty://www.alticon.net&lt;br /&gt;
# Editor:       &amp;quot;Denis Titov, ISP Okeanika&amp;quot; &amp;lt;denis@okeanika.net.ua&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Time to do the data collection.&lt;br /&gt;
for veid in `/usr/sbin/vzlist -o veid -H | sed 's/ //g'`&lt;br /&gt;
do      &lt;br /&gt;
        RRDFILE=&amp;quot;/var/lib/rrd/$veid.rrd&amp;quot;&lt;br /&gt;
        if ! test -e $RRDFILE; then&lt;br /&gt;
                echo $RRDFILE does not exist, creating.&lt;br /&gt;
&lt;br /&gt;
                # Place your preferred RRD Creation command here&lt;br /&gt;
                # or use this one, following command will create new RRD file with 300 sec step (for 5 min cron)&lt;br /&gt;
                /usr/bin/rrdtool create $RRDFILE --step 300 \&lt;br /&gt;
                        DS:IN:COUNTER:1000:0:U \&lt;br /&gt;
                        DS:OUT:COUNTER:1000:0:U \&lt;br /&gt;
                        RRA:AVERAGE:0.5:1:600000 \&lt;br /&gt;
                        RRA:AVERAGE:0.5:100:60000 \&lt;br /&gt;
                        RRA:AVERAGE:0.5:1000:6000&lt;br /&gt;
        fi&lt;br /&gt;
        # Parse out the inbound/outbound traffic and assign them to the corresponding variables     &lt;br /&gt;
        eval `/usr/sbin/vzctl exec $veid &amp;quot;grep venet0 /proc/net/dev&amp;quot;  |  \&lt;br /&gt;
                awk -F: '{print $2}' | awk '{printf&amp;quot;CTIN=%-15d\nCTOUT=%-15d\n&amp;quot;, $1, $9}'`&lt;br /&gt;
&lt;br /&gt;
        # Send the data to the corresponding RRD time with (N)now as the update time&lt;br /&gt;
        /usr/bin/rrdtool update $RRDFILE N:$CTIN:$CTOUT&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Setup ==&lt;br /&gt;
Add this to cron to run every 5 minutes:&lt;br /&gt;
&lt;br /&gt;
 # echo &amp;quot;*/5 * * * * root /path/to/script/vz_direct_traffic_log &amp;quot; &amp;gt;&amp;gt; \&lt;br /&gt;
   /etc/crontab &amp;amp;&amp;amp; /etc/init.d/crontab restart&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Better use the cron system of OpenVZ&lt;br /&gt;
&lt;br /&gt;
 # echo &amp;quot;*/5 * * * * root /path/to/script/vz_direct_traffic_log &amp;quot; &amp;gt;&amp;gt; \&lt;br /&gt;
   /etc/vz/cron/vz-traffic.sh &amp;amp;&amp;amp; /etc/init.d/vz update-cron&lt;br /&gt;
&lt;br /&gt;
To check the output of this later run:&lt;br /&gt;
&lt;br /&gt;
 # rrdtool fetch /var/lib/rrd/&amp;lt;veid&amp;gt;.rrd AVERAGE -s -3600&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* [[Traffic accounting with iptables]]&lt;br /&gt;
* [[Monitoring bandwidth of containers]]&lt;br /&gt;
&lt;br /&gt;
[[Category: Monitoring]]&lt;br /&gt;
[[Category: Networking]]&lt;/div&gt;</summary>
		<author><name>Denisix</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.openvz.org/index.php?title=Traffic_accounting_through_proc&amp;diff=8487</id>
		<title>Traffic accounting through proc</title>
		<link rel="alternate" type="text/html" href="https://wiki.openvz.org/index.php?title=Traffic_accounting_through_proc&amp;diff=8487"/>
		<updated>2010-04-19T02:20:29Z</updated>

		<summary type="html">&lt;p&gt;Denisix: /* Script */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Traffic Accounting through /proc/net/dev&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Traffic accounting in OpenVZ can be done through data collection against&lt;br /&gt;
&amp;lt;code&amp;gt;/proc/net/dev&amp;lt;/code&amp;gt; in the individual containers on a [[HN]].&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
* OpenVZ&lt;br /&gt;
* RRDTool&lt;br /&gt;
* GNU AWK&lt;br /&gt;
&lt;br /&gt;
== Script ==&lt;br /&gt;
First create a directory to store your RRD files:&lt;br /&gt;
&lt;br /&gt;
 # mkdir /var/lib/rrd/&lt;br /&gt;
&lt;br /&gt;
Then install this script:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
# Script Name:  vz_direct_traffic_log&lt;br /&gt;
# Author:       &amp;quot;Brian Harrington, Alticon Inc&amp;quot; &amp;lt;bharrington@alticon.net&amp;gt;&lt;br /&gt;
# Website:      htty://www.alticon.net&lt;br /&gt;
# Editor:       &amp;quot;Denis Titov, ISP Okeanika&amp;quot; &amp;lt;denis@okeanika.net.ua&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Time to do the data collection.&lt;br /&gt;
for veid in `/usr/sbin/vzlist -o veid -H | sed 's/ //g'`&lt;br /&gt;
do      &lt;br /&gt;
        RRDFILE=&amp;quot;/var/lib/rrd/$veid.rrd&amp;quot;&lt;br /&gt;
        if ! test -e $RRDFILE; then&lt;br /&gt;
                echo $RRDFILE does not exist, creating.&lt;br /&gt;
&lt;br /&gt;
                # Place your preferred RRD Creation command here&lt;br /&gt;
                # or use this one, following command will create new RRD file with 300 sec step (for 5 min cron)&lt;br /&gt;
                /usr/bin/rrdtool create $RRDFILE --step 300 \&lt;br /&gt;
                        DS:IN:COUNTER:1000:0:U \&lt;br /&gt;
                        DS:OUT:COUNTER:1000:0:U \&lt;br /&gt;
                        RRA:AVERAGE:0.5:1:600000 \&lt;br /&gt;
                        RRA:AVERAGE:0.5:100:60000 \&lt;br /&gt;
                        RRA:AVERAGE:0.5:1000:6000&lt;br /&gt;
        fi&lt;br /&gt;
        # Parse out the inbound/outbound traffic and assign them to the corresponding variables     &lt;br /&gt;
        eval `/usr/sbin/vzctl exec $veid &amp;quot;grep venet0 /proc/net/dev&amp;quot;  |  \&lt;br /&gt;
                awk -F: '{print $2}' | awk '{printf&amp;quot;CTIN=%-15d\nCTOUT=%-15d\n&amp;quot;, $1, $9}'`&lt;br /&gt;
&lt;br /&gt;
        # Send the data to the corresponding RRD time with (N)now as the update time&lt;br /&gt;
        /usr/bin/rrdtool update $RRDFILE N:$CTIN:$CTOUT&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
then you can add this script to HN cron:&lt;br /&gt;
 crontab -e&lt;br /&gt;
&lt;br /&gt;
 */5 * * * * /path/to/the/script&lt;br /&gt;
&lt;br /&gt;
== Setup ==&lt;br /&gt;
Add this to cron to run every 5 minutes:&lt;br /&gt;
&lt;br /&gt;
 # echo &amp;quot;*/5 * * * * root /path/to/script/vz_direct_traffic_log &amp;quot; &amp;gt;&amp;gt; \&lt;br /&gt;
   /etc/crontab &amp;amp;&amp;amp; /etc/init.d/crontab restart&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Better use the cron system of OpenVZ&lt;br /&gt;
&lt;br /&gt;
 # echo &amp;quot;*/5 * * * * root /path/to/script/vz_direct_traffic_log &amp;quot; &amp;gt;&amp;gt; \&lt;br /&gt;
   /etc/vz/cron/vz-traffic.sh &amp;amp;&amp;amp; /etc/init.d/vz update-cron&lt;br /&gt;
&lt;br /&gt;
To check the output of this later run:&lt;br /&gt;
&lt;br /&gt;
 # rrdtool fetch /var/lib/rrd/&amp;lt;veid&amp;gt;.rrd AVERAGE -s -3600&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* [[Traffic accounting with iptables]]&lt;br /&gt;
* [[Monitoring bandwidth of containers]]&lt;br /&gt;
&lt;br /&gt;
[[Category: Monitoring]]&lt;br /&gt;
[[Category: Networking]]&lt;/div&gt;</summary>
		<author><name>Denisix</name></author>
		
	</entry>
</feed>