Difference between revisions of "Traffic accounting through proc"
Botinki Kira (talk | contribs) m (Robot: Automated text replacement (-VEs +containers)) |
m (VE->CT) |
||
Line 2: | Line 2: | ||
== Introduction == | == Introduction == | ||
− | Traffic accounting in OpenVZ can be done through data collection against <code>/proc/net/dev</code> in the individual containers on a HN. | + | Traffic accounting in OpenVZ can be done through data collection against |
+ | <code>/proc/net/dev</code> in the individual containers on a [[HN]]. | ||
== Prerequisites == | == Prerequisites == | ||
Line 34: | Line 35: | ||
# Parse out the inbound/outbound traffic and assign them to the corresponding variables | # Parse out the inbound/outbound traffic and assign them to the corresponding variables | ||
eval `/usr/sbin/vzctl exec $veid "grep venet0 /proc/net/dev" | \ | eval `/usr/sbin/vzctl exec $veid "grep venet0 /proc/net/dev" | \ | ||
− | awk -F: '{print $2}' | awk '{printf" | + | 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 | # Send the data to the corresponding RRD time with (N)now as the update time | ||
− | /usr/bin/rrdtool update $RRDFILE N:$ | + | /usr/bin/rrdtool update $RRDFILE N:$CTIN:$CTOUT |
done | done | ||
</source> | </source> |
Revision as of 12:48, 11 March 2008
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
done
Setup
Add this to cron to run every 5 minutes:
# cat "*/5 * * * * root /path/to/script/vz_direct_traffic_log " > \ /etc/crontab && /etc/init.d/crontab restart
To check the output of this later run:
# rrdtool fetch /var/lib/rrd/<veid>.rrd AVERAGE -s -3600