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.
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-5.5-44.el6_4.4.x86_64
net-snmp-utils-5.5-44.el6_4.4.x86_64
- Instalar los módulos perl Net::SNMP, Config::IniFiles
-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?
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.