Advertising:

Configurar SNMP Traps: Difference between revisions

From Zabbix-ES
Jump to navigation Jump to search
No edit summary
 
(7 intermediate revisions by the same user not shown)
Line 1: Line 1:
  '''Nota:''' Existen 2 tipos de scripts para monitorizar SNMP el de Zabbix y el SNMPTT. Nosotros utilizaremos el propio de Zabbix.
  '''Nota:''' Existen 2 tipos de scripts para monitorizar SNMP el Zabbix Reciver y el SNMPTT. Nosotros utilizaremos el propio de Zabbix.


==Pre-requisitos==
==Links==
* [https://www.zabbix.com/documentation/current/manual/config/items/itemtypes/snmptrap Zabbix Docs]
* [https://zabbix.org/wiki/Start_with_SNMP_traps_in_Zabbix Configuracion detallada en Zabbix.org]
 
==Pre-requisitos Centos 7==
  # yum install -y net-snmp-utils net-snmp-perl net-snmp
  # 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==
==Activar SNMP Trapper en el server==
  # vi /etc/zabbix/zabbix_server.conf
  # vi /etc/zabbix/zabbix_server.conf
  SNMPTrapperFile=/tmp/zabbix_traps.tmp
  SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
  StartSNMPTrapper=1
  StartSNMPTrapper=1
# mkdir -p /var/log/snmptrap
# chmod 750 /var/log/snmptrap
# chown zabbix:zabbix /var/log/snmptrap


==Configuración SNMP TRAP==
==Configuración SNMP TRAP==
Line 20: Line 46:
   
   
  # vi /usr/bin/zabbix_trap_reciver.pl
  # vi /usr/bin/zabbix_trap_reciver.pl
  $SNMPTrapperFile = '/tmp/zabbix_traps.tmp';
  $SNMPTrapperFile = '/var/log/snmptrap/snmptrap.log';
   
   
  # systemctl restart zabbix-server
  # systemctl restart zabbix-server
Line 29: Line 55:


==Rotacion del log==
==Rotacion del log==
# mkdir -p /var/log/zabbix_traps_archive
  # vi /etc/logrotate.d/zabbix_traps
  # vi /etc/logrotate.d/zabbix_traps
  /tmp/zabbix_traps.tmp {
  /var/log/snmptrap/snmptrap.log {
     weekly
     weekly
     size 10M
     size 10M
Line 48: Line 73:
  # logrotate -v -f /etc/logrotate.d/zabbix_traps  
  # logrotate -v -f /etc/logrotate.d/zabbix_traps  


  '''Nota:''' Con esto tendremos 10 copias comprimidas del fichero "zabbix_traps.tmp" dentro del FS zabbix_traps.tmp
  '''Nota:''' Con esto tendremos 10 copias comprimidas del fichero "snmptrap.log"


==Configuración en Zabbix Server==
==Configuración en Zabbix Server==
Line 124: Line 149:


==Pruebas - Enviar un TRAP==
==Pruebas - Enviar un TRAP==
  # /usr/bin/snmptrap -v 1 -c public 127.0.0.1 '.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"
  # /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'''
  '''--- TRAP No Conocido'''
Line 147: Line 172:


  '''--- TRAP Conocido'''
  '''--- TRAP Conocido'''
  # /usr/bin/snmptrap -v 1 -c public 127.0.0.1 '.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"
  # /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
  # cat /tmp/zabbix_traps.tmp

Latest revision as of 13:06, 1 October 2020

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 Template

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 Item

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.
Creación del Trigger
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
Creación del Template
- Lincamos el Template al template de fallback
Link

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 Item

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.
Creación del Trigger
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
SNMP Interface
- Asignamos el template de "Template SNMP trap" al Zabbix Server
Link Template
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
Problema detectado