Difference between revisions of "Traffic accounting through proc"
(categorized; removed unneeded 'code' tags, use -H in vzlist; get rid of first-level headings) |
(added see also, use source tag) |
||
Line 1: | Line 1: | ||
Traffic Accounting through /proc/net/dev | Traffic Accounting through /proc/net/dev | ||
− | |||
− | |||
− | |||
− | |||
− | |||
== Introduction == | == Introduction == | ||
Line 21: | Line 16: | ||
Then install this script: | Then install this script: | ||
− | + | <source lang="bash"> | |
− | + | #!/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"VEIN=%-15d\nVEOUT=%-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:$VEIN:$VEOUT | |
− | + | done | |
− | + | </source> | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
== Setup == | == Setup == | ||
Line 54: | Line 50: | ||
# rrdtool fetch /var/lib/rrd/<veid>.rrd AVERAGE -s -3600 | # rrdtool fetch /var/lib/rrd/<veid>.rrd AVERAGE -s -3600 | ||
+ | |||
+ | == See also == | ||
+ | |||
+ | * [[Traffic accounting with iptables]] | ||
[[Category: Monitoring]] | [[Category: Monitoring]] | ||
[[Category: Networking]] | [[Category: Networking]] |
Revision as of 14:13, 24 January 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 VEs 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"VEIN=%-15d\nVEOUT=%-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:$VEIN:$VEOUT
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