Advertising:
Configurar SNMP Traps
Jump to navigation
Jump to search
Nota: Existen 2 tipos de scripts para monitorizar SNMP el Zabbix Reciver y el SNMPTT. Nosotros utilizaremos el propio de Zabbix.
Links
Pre-requisitos Centos 7
# yum install -y net-snmp-utils net-snmp-perl net-snmp
Pre-requisitos Centos 8
# rpm -qa| grep snmp net-snmp-5.8-14.el8_2.1.x86_64 net-snmp-utils-5.8-14.el8_2.1.x86_64 net-snmp-libs-5.8-14.el8_2.1.x86_64 net-snmp-agent-libs-5.8-14.el8_2.1.x86_64 pcp-pmda-snmp-5.0.2-5.el8.x86_64
# yum remove net-snmp net-snmp-libs net-snmp-agent-libs net-snmp-utils
# wget http://repo.okay.com.mx/centos/8/x86_64/release//net-snmp-perl-5.8-7.el8.2.x86_64.rpm # wget http://repo.okay.com.mx/centos/8/x86_64/release//net-snmp-5.8-7.el8.2.x86_64.rpm # wget http://repo.okay.com.mx/centos/8/x86_64/release//net-snmp-utils-5.8-7.el8.2.x86_64.rpm # wget http://repo.okay.com.mx/centos/8/x86_64/release//net-snmp-agent-libs-5.8-7.el8.2.x86_64.rpm # wget http://repo.okay.com.mx/centos/8/x86_64/release//net-snmp-libs-5.8-7.el8.2.x86_64.rpm
# yum install net-snmp-perl-5.8-7.el8.2.x86_64.rpm net-snmp-5.8-7.el8.2.x86_64.rpm net-snmp-utils-5.8-7.el8.2.x86_64.rpm net-snmp-libs-5.8-7.el8.2.x86_64.rpm net-snmp-agent-libs-5.8-7.el8.2.x86_64.rpm
Activar SNMP Trapper en el server
# vi /etc/zabbix/zabbix_server.conf SNMPTrapperFile=/var/log/snmptrap/snmptrap.log StartSNMPTrapper=1
# mkdir -p /var/log/snmptrap # chmod 750 /var/log/snmptrap # chown zabbix:zabbix /var/log/snmptrap
Configuración SNMP TRAP
# vi /etc/snmp/snmptrapd.conf authCommunity execute public authCommunity execute publica perl do "/usr/bin/zabbix_trap_reciver.pl"
Configurar el script de Reciver
# wget -O /usr/bin/zabbix_trap_reciver.pl https://git.zabbix.com/projects/ZBX/repos/zabbix/raw/misc/snmptrap/zabbix_trap_receiver.pl # Alternativa: https://raw.githubusercontent.com/prelegalwonder/zabbix/master/misc/snmptrap/zabbix_trap_receiver.pl # chmod 755 /usr/bin/zabbix_trap_reciver.pl # vi /usr/bin/zabbix_trap_reciver.pl $SNMPTrapperFile = '/var/log/snmptrap/snmptrap.log'; # systemctl restart zabbix-server
Activamos el SNMPD
# systemctl enable snmptrapd # systemctl start snmptrapd
Rotacion del log
# vi /etc/logrotate.d/zabbix_traps /var/log/snmptrap/snmptrap.log { weekly size 10M compress compresscmd /usr/bin/bzip2 compressoptions -9 notifempty dateext dateformat -%Y%m%d missingok maxage 365 rotate 10 }
Forzamos una rotacion para probar la configuracion
# logrotate -v -f /etc/logrotate.d/zabbix_traps
Nota: Con esto tendremos 10 copias comprimidas del fichero "snmptrap.log"
Configuración en Zabbix Server
Creación del Template de Fallback
Nota: snmptrap.fallback <- Todo lo que no machea con la expresión regular anterior va a parar fallback. IMPORTANTE: Administration -> General -> Other -> Log unmatched SNMP traps: Para saber que traps estoy recibiendo pero no monitorizando.
Template Name: Template SNMP trap fallback Groups : Templates
Creación del Item de fallback
Name : SNMP trap fallback Type : SNMP trap Key : snmptrap.fallback Type of information: Log New Application : SNMP fallback
Creación del Trigger de fallback
Name : {HOST.NAME} - Unmatched SNMP trap received Severity : Information Expression : {Template SNMP trap fallback:snmptrap.fallback.nodata(300)}=0 Allow manual close : CHECK Description : Genera alerta si entra un TRAP no controlado.
Nota: Esta alerta saltara durante 5 minutos.
Creación del Template de SNMP Traps
Nota: En este templete generaremos alertas para traps conocidos.
Template Name: Template SNMP traps Groups : Templates
- Lincamos el Template al template de fallback
Creación del Item de
Name : SNMP trap enterprises.8074.2.3.2.3 Type : SNMP trap Key : snmptrap["SNMPv2-SMI::enterprises.8074.2.3.2.3"] Type of information: Text New Application : SNMP::Trap
Creación del Trigger del Trap Definido
Name : {HOST.NAME} - SNMP Trap enterprises.8074.2.3.2.3 Severity : Warning Expression : {Template SNMP traps:snmptrap["SNMPv2-SMI::enterprises.8074.2.3.2.3"].nodata(60)}=0 Allow manual close : CHECK Description : Genera alerta si entra un TRAP predefinido.
Nota: Esta alerta saltara durante 1 minuto.
Configuración de Zabbix Server para la recepción de los TRAPs
- Vamos al HOST Zabbix Server y creamos la Interfaz de SNMP en localhost
- Asignamos el template de "Template SNMP trap" al Zabbix Server
snmptrap Key: [<EXPRESION REGULAR>]
Pruebas - Enviar un TRAP
# /usr/bin/snmptrap -v 1 -c public 10.0.100.100 '.1.3.6.1.6.3.1.1.5.4' '0.0.0.0' 6 33 '55' .1.3.6.1.6.3.1.1.5.4 s "eth0"
--- TRAP No Conocido # cat /tmp/zabbix_traps.tmp 18:03:36 2019/03/25 ZBXTRAP 127.0.0.1 PDU INFO: notificationtype TRAP version 0 receivedfrom UDP: [127.0.0.1]:19374->[127.0.0.1]:162 errorstatus 0 messageid 0 community public transactionid 1 errorindex 0 requestid 0 VARBINDS: DISMAN-EVENT-MIB::sysUpTimeInstance type=67 value=Timeticks: (55) 0:00:00.55 SNMPv2-MIB::snmpTrapOID.0 type=6 value=OID: IF-MIB::linkUp.0.33 IF-MIB::linkUp type=4 value=STRING: "eth0" SNMP-COMMUNITY-MIB::snmpTrapCommunity.0 type=4 value=STRING: "public" SNMPv2-MIB::snmpTrapEnterprise.0 type=6 value=OID: IF-MIB::linkUp
--- TRAP Conocido # /usr/bin/snmptrap -v 1 -c public 10.0.100.100 '.1.3.6.1.6.3.1.1.5.3' '0.0.0.0' 6 33 '55' enterprises.8074.2.3.2.3 s "teststring000"
# cat /tmp/zabbix_traps.tmp 11:15:03 2019/03/26 ZBXTRAP 127.0.0.1 PDU INFO: notificationtype TRAP version 0 receivedfrom UDP: [127.0.0.1]:35683->[127.0.0.1]:162 errorstatus 0 messageid 0 community public transactionid 6 errorindex 0 requestid 0 VARBINDS: DISMAN-EVENT-MIB::sysUpTimeInstance type=67 value=Timeticks: (55) 0:00:00.55 SNMPv2-MIB::snmpTrapOID.0 type=6 value=OID: IF-MIB::linkDown.0.33 IF-MIB::linkDown type=4 value=STRING: "teststring000" SNMP-COMMUNITY-MIB::snmpTrapCommunity.0 type=4 value=STRING: "public" SNMPv2-MIB::snmpTrapEnterprise.0 type=6 value=OID: IF-MIB::linkDown