Open main menu

OpenVZ Virtuozzo Containers Wiki β

Changes

Traffic accounting through proc

1,056 bytes added, 21:46, 12 January 2013
removed /etc/init.d/vz update-cron part (not implemented anymore)
# Time to do the data collection.
for veid in `$(/usr/sbin/vzlist -o veid -H | sed 's/ //g'`)
do
RRDFILE="/var/lib/rrd/$veid.rrd"
# Parse out the inbound/outbound traffic and assign them to the corresponding variables
eval `/usr/sbin/vzctl exec $veid "grep venet0 /proc/net/dev" | \
awk -F: '{print $2}' | awk '{printf"CTIN=%-15ds\nCTOUT=%-15ds\n", $1, $9}'`
# Send the data to the corresponding RRD time with (N)now as the update time
</source>
then you can add this script to HN cron:
crontab -e
*/5 * * * * /path/to/the/following scriptuses previously generated RRDs, you'll get nice PNG pictures and index.html file with them:
<source lang="bash">#!/bin/sh# Script Name: vz_direct_traffic_render# Author: "Denis Titov, ISP Okeanika" <denis@okeanika.net.ua># Website: http://www.okeanika.net.ua rrd_path= Setup =/var/lib/rrdwww_path=/var/www/html/traf Add this # Clear out the old index, otherwise you end up with a repeating index. This would also be a good place to cron to run every 5 minutes:put a header.rm ${www_path}/index.html
# echo "cd $rrd_pathfor RRD in */5 * * * * root /path/to/script/vz_direct_traffic_log " >> \.rrddo CTID=$(echo $RRD | sed 's/etc/crontab && /etc.rrd$/init.d/crontab restart')
# list of intervals, 1d = last day, 1w = last week and so on
for INT in 1h 1d 1w 1m 1y
do
/usr/bin/rrdtool graph ${www_path}/${CTID}-${INT}.png \
--start now-$INT --end now \
-w 1000 -h 500 \
--title "CTID $CTID - Interval $INT" \
DEF:in=$RRD:IN:AVERAGE AREA:in#aea:'IN' LINE1:in#0e0 \
DEF:out=$RRD:OUT:AVERAGE AREA:out#eaa:'OUT' LINE1:out#e00
echo "<p><img src=\"${CTID}-${INT}.png\"><br/><br/></p>" >> ${www_path}/index.html
done
done
</source>
Better use the == Setup ==Add this to cron system of OpenVZto run <code>vz_direct_traffic_log</code> every 5 minutes and <code>vz_direct_traffic_render</code> every 30 minutes:
# echo "cat << EOF >> /etc/crontab */5 * * * * root /path/to/script/vz_direct_traffic_log " >> \ */etc30 * * * * root /vzpath/cronto/vz-traffic.sh && script/etc/init.d/vz update-cronvz_direct_traffic_render EOF
To check the output of this later run:
Anonymous user