Difference between revisions of "Traffic accounting through proc"
|  (→See also) |  (update to use the cron system of openvz) | ||
| Line 47: | Line 47: | ||
|   # echo "*/5 * * * * root /path/to/script/vz_direct_traffic_log " >> \ |   # echo "*/5 * * * * root /path/to/script/vz_direct_traffic_log " >> \ | ||
|     /etc/crontab && /etc/init.d/crontab restart |     /etc/crontab && /etc/init.d/crontab restart | ||
| + | |||
| + | |||
| + | Better use the cron system of OpenVZ | ||
| + | |||
| + |  # echo "*/5 * * * * root /path/to/script/vz_direct_traffic_log " >> \ | ||
| + |    /etc/vz/cron/vz-traffic.sh && /etc/init.d/vz update-cron | ||
| To check the output of this later run: | To check the output of this later run: | ||
Revision as of 23:34, 3 February 2009
Traffic Accounting through /proc/net/dev
Introduction
Traffic accounting in OpenVZ can be done through data collection against
/proc/net/dev in the individual containers on a HN.
Prerequisites
- OpenVZ
- RRDTool
- GNU AWK
Script
First create a directory to store your RRD files:
# mkdir /var/lib/rrd/
Then install this script:
#!/bin/sh
# Script Name:  vz_direct_traffic_log
# Author:       "Brian Harrington, Alticon Inc" <bharrington@alticon.net>
# Website:      htty://www.alticon.net
# 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"
 
               if ! test -e $RRDFILE; then
                       echo $RRDFILE does not exist, creating.
                       # Place your preferred RRD Creation command here
               fi
 
               # 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=%-15d\nCTOUT=%-15d\n", $1, $9}'`
 
               # Send the data to the corresponding RRD time with (N)now as the update time
               /usr/bin/rrdtool update $RRDFILE N:$CTIN:$CTOUT
doneSetup
Add this to cron to run every 5 minutes:
# echo "*/5 * * * * root /path/to/script/vz_direct_traffic_log " >> \ /etc/crontab && /etc/init.d/crontab restart
Better use the cron system of OpenVZ
# echo "*/5 * * * * root /path/to/script/vz_direct_traffic_log " >> \ /etc/vz/cron/vz-traffic.sh && /etc/init.d/vz update-cron
To check the output of this later run:
# rrdtool fetch /var/lib/rrd/<veid>.rrd AVERAGE -s -3600
