Usando Linux para muchas cosas y disfrutando de videojuegos, en dispositivos moviles, consolas y pc. Using Linux for many things and enjoying video games, mobile devices, consoles and pc

Como instalar snmp trap en Nagios

SNMP nos permite monitorear dispositivos, servicios, servidores, etc, solo que a veces no podemos leer directamente los valores sino solo recibirlos e interpretarlos; para eso usamos traps de SNMP y hoy les mostrare como configurar snmptrap en Nagios. Ya sea por un firewall o porque no tengamos control sobre ese dispositivo que queremos monitorear con SNMP la solución es activar el envió de traps de SNMP a nuestro Nagios, el cual interpretara estos msg.
Quieres monitorear por medio de SNMP pero no sabes como? te aconsejo usar Nagios, el cual muestro como instalar en este URL.
Para este articulo mostrare como activar SNMP traps para una instancia virtual ejecutando Cisco Prime sobre un RedHat 6.3.

Requerimientos

  • Usaremos Linux Centos
  • Tener ya instalado y configurado Nagios (damos por hecho que el directorio donde lo compilamos es /root/nagios-4.0.1) El directorio de Nagios puede variar, tener cuidado con eso
  • cp /root/nagios-4.0.1/contrib/eventhandlers/submit_check_result /usr/local/nagios/libexec/
  • rpm -qa|grep snmp
net-snmp-libs-5.5-44.el6_4.4.x86_64
net-snmp-5.5-44.el6_4.4.x86_64
net-snmp-utils-5.5-44.el6_4.4.x86_64

-Descargamos, descomprimimos y copiamos

wget -c http://downloads.sourceforge.net/project/snmptt/snmptt/snmptt_1.3/snmptt_1.3.tgz
tar xzvf snmptt_1.3.tgz
cd snmptt_1.3

cp snmptthandler snmptt /usr/sbin
cp snmpttconvert snmpttconvertmib /usr/bin/

-Configuramos snmptrapd

vi /etc/snmp/snmptrapd.conf
traphandle default /usr/sbin/snmptt
disableAuthorization yes
donotlogtraps  yes

-Modificamos script de inicio. Cambiar el domain (en rojo) al de vuestra red o del dispositivo

vi /etc/rc.d/init.d/snmptrapd
OPTIONS="-On -Lsd -p /var/run/snmptrapd.pid"

-Iniciamos el servicio

service snmptrapd restart

-Creamos el script de snmptt

vi /etc/snmp/snmptt.ini
[General]
mode = standalone
multiple_event = 1
dns_enable = 1
strip_domain = 1
strip_domain_list = <<END
test.com
END

resolve_value_ip_addresses = 0
net_snmp_perl_enable = 1
net_snmp_perl_best_guess = 0
translate_log_trap_oid = 0
translate_value_oids = 1
translate_enterprise_oid_format = 1
translate_trap_oid_format = 1
translate_varname_oid_format = 1
translate_integers = 1
wildcard_expansion_separator = " "
allow_unsafe_regex = 0
remove_backslash_from_quotes = 0
dynamic_nodes = 0
description_mode = 0
description_clean = 1

[Logging]
stdout_enable = 0
log_enable = 1
log_file = /var/log/snmptt.log
unknown_trap_log_enable = 1
unknown_trap_log_file = /var/log/snmpttunknown.log
statistics_interval = 0
syslog_enable = 1
syslog_facility = local0
syslog_level_debug = <<END
END
syslog_level_info = <<END
END
syslog_level_notice = <<END
END
syslog_level_warning = <<END
END
syslog_level_err = <<END
END
syslog_level_crit = <<END
END
syslog_level_alert = <<END
END
syslog_level = info
syslog_system_enable = 1
syslog_system_facility = local0
syslog_system_level = warning

[Exec]
exec_enable = 1
pre_exec_enable = 0
unknown_trap_exec =

[Debugging]
DEBUGGING = 0
DEBUGGING_FILE =
DEBUGGING_FILE_HANDLER =

[TrapFiles]
snmptt_conf_files = <<END
/etc/snmp/snmptt.conf
END

-Descargamos mibs para monitoreo

wget -c ftp://ftp.cisco.com/pub/mibs/v2/SNMPv2-MIB.my

-Compilamos mibs

snmpttconvertmib --in=/root/SNMPv2-MIB.my --out=/etc/snmp/snmptt.conf.prime --exec='/usr/local/nagios/libexec/submit_check_result $r TRAP 1'
exec: /usr/local/nagios/libexec/submit_check_result $r TRAP 1


*****  Processing MIB file *****

snmptranslate version: NET-SNMP version: 5.5
severity: Normal

File to load is:        /root/SNMPv2-MIB.my
File to APPEND TO:      /etc/snmp/snmptt.conf.prime

MIBS environment var:   /root/SNMPv2-MIB.my
mib name: SNMPv2-MIB


Processing MIB:         SNMPv2-MIB
#
skipping a TRAP-TYPE / NOTIFICATION-TYPE line - probably an import line.
#
Line: 430
NOTIFICATION-TYPE: coldStart
Enterprise: snmpTraps
Looking up via snmptranslate: SNMPv2-MIB::coldStart
OID: .1.3.6.1.6.3.1.1.5.1
#
Line: 439
NOTIFICATION-TYPE: warmStart
Enterprise: snmpTraps
Looking up via snmptranslate: SNMPv2-MIB::warmStart
OID: .1.3.6.1.6.3.1.1.5.2
#
Line: 452
NOTIFICATION-TYPE: authenticationFailure
Enterprise: snmpTraps
Looking up via snmptranslate: SNMPv2-MIB::authenticationFailure
OID: .1.3.6.1.6.3.1.1.5.5

Done

Total translations:        3
Successful translations:   3
Failed translations:       0

-Modificamos el snmptt.ini agregando el conf creado

vi /etc/snmp/snmptt.ini
[TrapFiles]
snmptt_conf_files = <<END
/etc/snmp/snmptt.conf
/etc/snmp/snmptt.conf.prime
END

-Activamos el rotate de logs

cp /root/snmptt_1.3/snmptt.logrotate /etc/logrotate.d/snmptt
mkdir /var/log/snmptt/

-Activamos el script de inicio

cp snmptt-init.d /etc/init.d/snmptt

-Creamos un template de service en nagios

cd /usr/local/nagios/etc/objects
vi /usr/local/nagios/etc/objects/templates.cfg
define service{
   name                         snmp-service
   register                     0
   check_period                 24x7
   max_check_attempts           3
   normal_check_interval        15
   retry_check_interval         5
   active_checks_enabled        1
   passive_checks_enabled       0
   parallelize_check            1
   obsess_over_service          0
   check_freshness              0
   event_handler_enabled        0
   flap_detection_enabled       0
   process_perf_data            1
   retain_status_information    1
   retain_nonstatus_information 1
   notification_interval        60
   notification_period          24x7
   notification_options         w,u,c,r
   notifications_enabled        1
}

define service{
   name                    snmptrap-service
   use                     snmp-service
   register                0
   service_description     TRAP
   is_volatile             1
   check_command           check-host-alive
   max_check_attempts      1
   normal_check_interval   1
   retry_check_interval    1
   passive_checks_enabled  1
   check_period            none
   notification_interval   31536000
   contact_groups          admins
}

-Activamos un conf en nagios

vi ../nagios.cfg

cfg_file=/usr/local/nagios/etc/objects/5infra.cfg

-Agregamos el chequeo

vi 5infra.cfg
define service{
   host_name               veop
   use                     snmptrap-service
   contact_groups          admins
}

Generamos algún evento que se reporte por snmp y nos debe mostrar la alerta en el servicio TRAP que creamos en Nagios.
Aunque podríamos no verle la utilidad al principio, en algún momento se encontraran con la necesidad de monitorear pero no podrán instalar los plugins o menos activar un NRPE. En ese momento es que les sera útil activar el envió de traps.
Usas SNMP traps, para que? Te resulta interesante la idea?
Si te resulto útil este articulo, se social, compártelo con otros por medio de los botones o sígueme en twitter google+ o email y podrás estar enterado de todas mis publicaciones.
Disfrútenlo.

Share/Bookmark