Снимать показания трафика с VE [message #34170] |
Wed, 10 December 2008 16:41 |
pentarh
Messages: 13 Registered: October 2008 Location: Russia
|
Junior Member |
|
|
Вопрос знатокам. Вот есть у меня хост-машина с некоторым количеством VE.
Как можно снимать показания трафика (лучше всего счетчики а-ля SNMP::IF-MIB) с VE машин, не устанавливая на оные сторонний софт?
|
|
|
Re: Снимать показания трафика с VE [message #34587 is a reply to message #34170] |
Mon, 19 January 2009 14:31 |
|
sa10
Messages: 103 Registered: May 2007 Location: Minsk
|
Senior Member |
|
|
Статистика трафика и его учет рассматриваются у нас как две разные задачи и потому решаются разными средствами.
Подробно расписывать не буду как у нас это работает, а в общих чертах примерно так:
Использую на своем узле openvz интерфейсы veth.
Для наблюдения за статистикой Cacti собирает данные со счетчиков демона SNMP работающего на HN. Интерфейсы VE там выглядят как veth1001.0 veth1001.1.
Кроме того демоны SNMP работают еще на паре VE, где собирают специфические данные от Squid и Zimbra.
На одной VE работает фаервол между инетом, внутренними сетями и DMZ (несколько VE). Для учета трафика на фаерволе работает демон pmacctd. Он агрегатирует трафик по заданным параметрам и выгружает на mysql сервисного хоста где ежедневно скрипты формируют краткие отчеты по сетям, хостам, датам и т.п., и шлют их заинтересованным лицам.
Никаких вебморд для учета трафика не использую. ИМХО это лишнее.
--------------------
[Updated on: Mon, 19 January 2009 14:36] Report message to a moderator
|
|
|
|
|
|
Re: Снимать показания трафика с VE [message #34592 is a reply to message #34591] |
Mon, 19 January 2009 14:51 |
|
sa10
Messages: 103 Registered: May 2007 Location: Minsk
|
Senior Member |
|
|
Простенький учет можно еще от пакета vnstat получать
типа
vnstat -m -i eth2
eth2 / monthly
month rx | tx | total
-------------------------+--------------+--------------------------------------
Feb '08 102.65 GB | 19.59 GB | 122.24 GB %%%%:
Mar '08 370.22 GB | 111.03 GB | 481.24 GB %%%%%%%%%%%%%%%%%:::::
Apr '08 59.29 GB | 8.97 GB | 68.26 GB %%%
May '08 155.89 GB | 15.33 GB | 171.23 GB %%%%%%:
Jun '08 177.14 GB | 28.37 GB | 205.51 GB %%%%%%%%:
Jul '08 186.15 GB | 23.99 GB | 210.14 GB %%%%%%%%:
Aug '08 200.98 GB | 22.98 GB | 223.97 GB %%%%%%%%%:
Sep '08 241.93 GB | 28.80 GB | 270.73 GB %%%%%%%%%%%:
Oct '08 282.79 GB | 32.38 GB | 315.17 GB %%%%%%%%%%%%%:
Nov '08 290.87 GB | 32.48 GB | 323.35 GB %%%%%%%%%%%%%:
Dec '08 324.48 GB | 41.52 GB | 366.01 GB %%%%%%%%%%%%%%::
Jan '09 211.30 GB | 42.19 GB | 253.48 GB %%%%%%%%%::
-------------------------+--------------+--------------------------------------
estimated 350.90 GB | 70.06 GB | 420.96 GB
--------------------
[Updated on: Mon, 19 January 2009 14:53] Report message to a moderator
|
|
|
Re: Снимать показания трафика с VE [message #34748 is a reply to message #34170] |
Fri, 30 January 2009 13:57 |
pentarh
Messages: 13 Registered: October 2008 Location: Russia
|
Junior Member |
|
|
Вот упрощенный вариант утилиты vznetstat на перле написал
Запускается с хост-машины, дает показания трафика по интерфейсам заданной VE. Обычно интерфейс под номером 0 - loopback.
#!/usr/bin/perl -w
my $numArgs = $#ARGV + 1;
if ($numArgs <= 0) {
print "Usage: $0 VEID [VEID] [...]\n";
exit;
}
my $ve;
my $counter=0;
print "CTID\tifNum\tInput(bytes)\tInput(packets)\tOutput(bytes)\tOutput(packets)\n";
foreach $ve (@ARGV) {
if ($ve =~ /^\d+$/) {
my $s = `/usr/sbin/vzctl status $ve`;
if ($s =~ /^VEID \d+ exist/) {
my $fp;
$counter=0;
open $fp, "/usr/sbin/vzctl exec $ve cat /proc/net/dev |";
while (<$fp>) {
if (/^\s*([a-z0-9_-]+):\s*(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)/) {
print "$ve\t$counter\t$2\t$3\t$10\t$11\n";
$counter++;
}
}
}
}
}
Пример использования
# ./vznetstat 100 200
CTID ifNum Input(bytes) Input(packets) Output(bytes) Output(packets)
100 0 216216705 1693881 216216705 1693881
100 1 2948225436 33918128 57983428690 48185011
200 0 397660994315 338046152 397660994315 338046152
200 1 537780976361 3870889534 7946463690716 5913777508
[Updated on: Fri, 30 January 2009 13:59] Report message to a moderator
|
|
|