Open main menu

OpenVZ Virtuozzo Containers Wiki β

Changes

Traffic accounting through proc

1,144 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>
== Setup ==
Add this to cron to run every 5 minutes:
the following script uses 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# echo Author: "Denis Titov, ISP Okeanika"*<denis@okeanika.net.ua># Website: http:/5 * * * * root /pathwww.okeanika.net.ua rrd_path=/tovar/scriptlib/vz_direct_traffic_log " >> \rrd www_path=/etcvar/crontab && www/etchtml/inittraf # Clear out the old index, otherwise you end up with a repeating index.dThis would also be a good place to put a header.rm ${www_path}/index.html cd $rrd_pathfor RRD in *.rrddo CTID=$(echo $RRD | sed 's/.rrd$//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