OpenVZ Forum


Home » International » Russian » Снимать показания трафика с VE
Re: Снимать показания трафика с VE [message #34588 is a reply to message #34170] Mon, 19 January 2009 14:43 Go to previous messageGo to previous message
pentarh is currently offline  pentarh
Messages: 13
Registered: October 2008
Location: Russia
Junior Member
Я нашел способ проще.

На хост машине имеется перл скрипт:

#!/usr/bin/perl

use strict;

unless ($ARGV[0]) {
    die "Syntax:\n\t $0 VEID[:INTERFACE] [VEID[:INTERFACE]] ...\n";
}

my $velist='';
my %ve=();
my $i;

for ($i=0;$i<=$#ARGV;$i++) {
    unless ($ARGV[$i]=~/(^\d+)(\:(\d+))?$/) {
        die "Did not understand parameter: ".$ARGV[$i]."\n";
    }
    $velist.=" -v ".$1;
    $ve{$1}=defined $3?$3:'*';
}

my $pipe;
open $pipe,'/usr/sbin/vznetstat '.$velist.' |' or die 'Cant open pipe';

while(<$pipe>) {
    if (/^(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)/) {
        if ($ve{$1} ne '*') {
            next if ($ve{$1} != int($2));
        }
        # ID:INTERFACE:IN[bytes]:OUT[bytes]
        print "$1:$2:$3:$5\n";
    }
}

close $pipe;


С удаленной тачки, настроенной на авторизацию по пабликкей с хостмашиной, идет коннект ssh user@vehost /usr/bin/sudo /usr/bin/traf [VE_ID]:[IF_ID]

Например

ssh user@vehost /usr/bin/sudo /usr/bin/traf 101:1 102:1 103:1

Выдаст статсу по трафику ВЕшек 101,102,103:
101:1:6447550660:112284297
102:1:6837291929:127291029
103:1:628398400:17837611
 
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Previous Topic: RE: Kernel RHEL5 028stab060.2 released
Next Topic: [solved]проблемы с сетью в VE
Goto Forum:
  


Current Time: Wed Aug 28 11:18:52 GMT 2024

Total time taken to generate the page: 0.03304 seconds