Перейти к содержимому
Калькуляторы

Мониторинг сети

Доброго времени суток. Подскажите нормальную прогу для снятие трапов со свичей D-Link DGS-3420-26SС?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Можно стандартный net-snmp.

Мне же хватает этого:

#!/usr/bin/perl -w

use strict;
use threads;
use Net::SNMPTrapd;

use constant THREADS_COUNT => 4;
use constant DEBUG         => 0;

my $server_ip = "X.X.X.X";
my $log_filename = "/var/log/snmptraps.log";

open(STDIN,  "+>/dev/null") or die "Can't open STDIN: $!\n";
open(STDOUT, "+>/dev/null") or die "Can't open STDOUT: $!\n";
open(STDERR, "+>>$log_filename") or die "Can't open STDERR: $!\n";

my $obj = Net::SNMPTrapd->new(Family=>'ipv4', LocalAddr=>$server_ip, LocalPort=>162, timeout=>3) or die "Error: ", Net::SNMPTrapd->error;

for my $i (1..(THREADS_COUNT - 1)) { threads->create(\&request_loop, $obj); }
request_loop($obj);

sub request_loop {
 my $snmptrapd = shift;
 my $tid = threads->tid(); # thread ID
 logg($tid, 'START');
 my ($ip, $p, $trap);
 while (1) {
       $trap = $snmptrapd->get_trap();
       unless (defined($trap)) {
               logg($tid, Net::SNMPTrapd->error);
               next;
       }
       next if ($trap == 0);
       unless (defined($trap->process_trap())) { logg($tid, Net::SNMPTrapd->error); }
       else {
               $ip = $trap->remoteaddr;
               $p = "";
               for my $vals (@{$trap->varbinds}) {
                       for (keys(%{$vals})) {
                               $p .= sprintf "%s: %s; ", $_, $vals->{$_};
                       }
               }
               logg($tid, "[$ip] $p") if (DEBUG == 1);
       }
 }
}

sub logg {
 my ($tid, $msg) = @_;
 my $now =  POSIX::strftime("%d.%m.%Y %H:%M:%S", localtime);
 open hFile, ">>", $log_filename;
 print hFile "$now Thread ($tid): $msg\n";
 close hFile;
}

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.