обработка snmp traps на freeBSD сервере

Бэк инжиниринговая статья :) Когда-то настраивал, теперь попытаюсь восстановить. Работает всё это чудо под snmptrapd.

Для начала надо поставить net-snmp: /usr/ports/net-mgmt/net-snmp

# cat snmptrapd.conf
# the generic traps
traphandle IF-MIB::linkDown /monitoring/snmphandler.php
#traphandle IF-MIB::linkUp /monitoring/snmphandler.php
disableAuthorization yes

При поступлении трапа о падении линка, будет запущен скрипт /monitoring/snmphandler.php и ему на stdin будет передана информация из snmptrap. Вот пример моего php скрипта:

if (!$db=mysql_connect(“localhost”,”*”,”*”)) {echo “dberr”; exit(1);}
if (!$dbb=mysql_select_db(“zabbix”)){echo mysql_error(); mysql_close(); echo “dberr”; exit(1);}
$tel = 7911934****;

$snmp = fopen(‘php://stdin’,’w’);
//$file = fopen(“/mnt/NFS/scripts/test”,’w’);
$ip = fgets($snmp, 4096);
fgets($snmp, 4096);
fgets($snmp, 4096);
fgets($snmp, 4096);
$port=fgets($snmp, 4096);
$port=substr(strchr($port,”.”),1,2);
fgets($snmp, 4096);
$status=fgets($snmp, 4096);
$status=substr(strchr($status,” “),1);
//fwrite($file, “switch:”.$ip.”port:”.$port.”status:”.$status);

//fclose($file);
fclose($snmp);

$text=”switch:”.$ip.”port:”.$port.”status:”.$status;
$sql = “INSERT INTO `sms_queue` values(‘0’,'”.$tel.”‘,'”.$text.”‘,”,’0’)” ;
//$sql = “INSERT INTO `sms_queue` values(‘0’,'”.$tel.”‘,'”.$text.”‘,”,’1’)” ;
mysql_query($sql);
mysql_close();

Запускать snmptrapd вручную можно так: snmptrapd -c /usr/local/etc/snmptrapd.conf

Для запуска при загрузке, в rc.conf написать:
snmptrapd_enable="YES"
snmptrapd_flags="-c /usr/local/etc/snmptrapd.conf"

Advertisements

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s