Пишем MIB файл для SNMP Traps

Материал из IN-TON
Перейти к: навигация, поиск

Отправка трапов вручную

  1. snmptrap -v 2c -c public 10.10.10.10 "" .1.3.6.1.4.1.34001.1.1 .1.3.6.1.4.1.34001.1.1 s "UFO Landed"
  2. snmptrap -v 2c -c public 10.10.10.10 "" .1.3.6.1.4.1.34001.1.2 .1.3.6.1.4.1.34001.1.2 s "UFO Destroyed"
  3. snmptrap -v 2c -c public 10.10.10.10 "" .1.3.6.1.4.1.34001.1.3 .1.3.6.1.4.1.34001.1.3 s "UFO Take off"

Отправка трапов Perl скриптом

  1. #! /usr/bin/perl
  2.  
  3. use strict;
  4.  
  5. use Net::SNMP qw(:ALL);
  6.  
  7. ## Create a new object with the version set to SNMPv2c
  8. ## to send a snmpV2-trap.
  9.  
  10. my ($session, $error) = Net::SNMP->session(
  11. -hostname => $ARGV[0] || '10.10.10.10',
  12. -community => $ARGV[1] || 'public',
  13. -port => SNMP_TRAP_PORT, # Need to use port 162
  14. -version => 'snmpv2c'
  15. );
  16.  
  17. if (!defined($session)) {
  18. printf("ERROR: %s.\n", $error);
  19. exit 1;
  20. }
  21.  
  22. my $result = $session->snmpv2_trap(
  23. -varbindlist => [
  24. '1.3.6.1.2.1.1.3.0', TIMETICKS, 600,
  25. '1.3.6.1.6.3.1.1.4.1.0', OBJECT_IDENTIFIER, '.1.3.6.1.4.1.34001.1.1',
  26. '1.3.6.1.4.1.34001.1.1', OCTET_STRING, 'UFO Landed'
  27. ]
  28. );
  29.  
  30. if (!defined($result)) {
  31. printf("ERROR: %s.\n", $session->error());
  32. } else {
  33. printf("SNMPv2-Trap-PDU sent.\n");
  34. }
  35.  
  36. $session->close();
  37.  
  38. exit 0;

Создание MIB файла

Осталось написать MIB файл для того что его можно было скормить SNMPTT и ловить трапы мониторингом, например NAGIOS

  1. UFO-MIB DEFINITIONS ::= BEGIN
  2. IMPORTS
  3. enterprises, OBJECT-TYPE, MODULE-IDENTITY, NOTIFICATION-TYPE
  4. FROM SNMPv2-SMI ;
  5.  
  6. ufo MODULE-IDENTITY
  7. LAST-UPDATED "201401281616Z"
  8. ORGANIZATION "MYCOMPANY"
  9. CONTACT-INFO "MYCOMPANY"
  10. DESCRIPTION "The MIB Module describes MYCOMPANY private MIB."
  11.  
  12. REVISION "201401281616Z"
  13. DESCRIPTION "Correct MIB syntax"
  14.  
  15.  ::= { enterprises 34001 }
  16.  
  17. general OBJECT IDENTIFIER ::= { ufo 1 }
  18.  
  19. ufoLanded NOTIFICATION-TYPE
  20. STATUS current
  21. DESCRIPTION
  22. "UFO Landed"
  23.  ::= { general 1 }
  24.  
  25. ufoDestroyed NOTIFICATION-TYPE
  26. STATUS current
  27. DESCRIPTION
  28. "UFO Destroyed"
  29.  ::= { general 2 }
  30.  
  31. ufoTakeOff NOTIFICATION-TYPE
  32. STATUS current
  33. DESCRIPTION
  34. "UFO Take off"
  35.  ::= { general 3 }
  36.  
  37. END