Esta es una traducción de la página de documentación original en español. Ayúdanos a mejorarla.

3 SNMP traps

Visión general

Recibir trampas SNMP es lo opuesto a consultar dispositivos habilitados para SNMP.

En este caso, la información se envía desde un dispositivo habilitado para SNMP y se recogidos o "atrapados" por Zabbix.

Por lo general, las trampas se envían ante algún cambio de condición y el agente se conecta al servidor en el puerto 162 (a diferencia del puerto 161 en el agente lado que se utiliza para las consultas). El uso de trampas puede detectar algunos cortos problemas que ocurren en medio del intervalo de consulta y que pueden pasar desapercibidos para el consultar datos.

La recepción de trampas SNMP en Zabbix está diseñada para funcionar con snmptrapd y uno de los mecanismos incorporados para pasar las trampas a Zabbix - ya sea un script Perl o SNMPTT.

El flujo de trabajo de recibir una trampa:

  1. snmptrapd recibe una trampa
  2. snmptrapd pasa la trampa a SNMPTT o llama al receptor de trampa Perl
  3. El receptor de trampas SNMPTT o Perl analiza, formatea y escribe la trampa en un archivo
  4. Zabbix SNMP trapper lee y analiza el archivo trap
  5. Para cada trampa, Zabbix encuentra todos los elementos de "trampero SNMP" con host interfaces que coinciden con la dirección trap recibida. Tenga en cuenta que sólo el La "IP" o "DNS" seleccionada en la interfaz del host se utiliza durante la pareo.
  6. Para cada elemento encontrado, la trampa se compara con la expresión regular en "snmptrap[regexp]". La trampa se establece como el valor de todos artículos emparejados. Si no se encuentra ningún elemento coincidente y hay un elemento "snmptrap.fallback", la trampa se establece como el valor de eso.
  7. Si la trampa no se configuró como el valor de ningún elemento, Zabbix por defecto registra la trampa sin igual. (Esto está configurado por "Registrar SNMP no coincidente trampas" en Administración → General → Otro.)

1 Configuración de trampas SNMP

La configuración de los siguientes campos en la interfaz es específica para esto tipo de artículo:

  • Su host debe tener una interfaz SNMP

En Configuración → Hosts, en el campo Interfaz de host configure un SNMP interfaz con la dirección IP o DNS correcta. La dirección de cada la trampa recibida se compara con las direcciones IP y DNS de todos los SNMP interfaces para encontrar los hosts correspondientes.

  • Configurar el artículo

En el campo Clave, use una de las claves de captura SNMP:

Clave
Descripción Valor de retorno Comentarios
snmptrap[regexp]
Captura todas las trampas SNMP que coinciden con la expresión regular especificada en regexp. Si no se especifica la expresión regular, detecta cualquier trampa. Trampa SNMP Este elemento solo se puede configurar para interfaces SNMP.
Este elemento es compatible desde Zabbix 2.0.0.
Nota: a partir de Zabbix 2.0.5, las macros de usuario y las expresiones regulares globales se admiten en el parámetro de esta clave de elemento.
snmptrap.fallback
Captura todas las trampas SNMP que no fueron capturadas por ninguno de los elementos snmptrap[] para esa interfaz. Captura SNMP Este elemento solo se puede configurar para interfaces SNMP.
Este elemento es compatible desde Zabbix 2.0. 0.

La coincidencia de expresiones regulares de varias líneas no se admite en este momento. tiempo.

Establezca el Tipo de información en 'Registro' para que las marcas de tiempo sean analizado Tenga en cuenta que también se aceptan otros formatos como 'Numérico' pero podría requerir un controlador de trampas personalizado.

Para que funcione la supervisión de trampas SNMP, primero se debe configurado correctamente.

2 Configuración de la supervisión de trampas SNMP

Configuración del servidor/proxy Zabbix

Para leer las trampas, el servidor o proxy Zabbix debe estar configurado para comenzar el proceso de captura de SNMP y apunta al archivo de captura que se está escrito por SNMPTT o un receptor de trampas perl. Para ello, edite el archivo de configuración (zabbix_server.conf o zabbix_proxy.conf):

  1. Iniciar trampa SNMP = 1
  2. SNMPTrapperFile=[ARCHIVO DE TRAMPA]

::: nota de advertencia Si el parámetro systemd PrivateTmp se utiliza, es poco probable que este archivo funcione en /tmp. :::

Configuración de SNMPTT

Al principio, snmptrapd debe configurarse para usar SNMPTT.

Para obtener el mejor rendimiento, SNMPTT debe configurarse como un demonio que usa snmptthandler-embedded para pasarle las trampas. Ver instrucciones para configurar SNMPTT en su página de inicio:
http://snmptt.sourceforge.net/docs/snmptt.shtml

Cuando SNMPTT esté configurado para recibir las trampas, configure snmptt.ini:

  1. habilitar el uso del módulo Perl del paquete NET-SNMP:
    red_snmp_perl_enable = 1
  2. Registre las trampas en el archivo de trampas que Zabbix leerá:
    registro_habilitar = 1
    registro_archivo = [ARCHIVO DE TRAMPA]
  3. establezca el formato de fecha y hora:
    fecha_hora_formato = %H:%M:%S %Y/%m/%d = [FORMATO DE FECHA Y HORA]

::: nota de advertencia El paquete "net-snmp-perl" se eliminó en RHEL/CentOS 8.0-8.2; agregado nuevamente en RHEL 8.3. Para obtener más información, consulte el conocido problemas. :::

Ahora formatee las trampas para que Zabbix las reconozca (edite snmptt.conf):

  1. Cada declaración de FORMATO debe comenzar con "ZBXTRAP [dirección]", donde [dirección] se comparará con las direcciones IP y DNS de SNMP interfaces en Zabbix. P.ej.:
    EVENTO coldStart .1.3.6.1.6.3.1.1.5.1 "Eventos de estado" Normal
    FORMAT ZBXTRAP $aA Dispositivo reinicializado (coldStart)
  2. Vea más sobre el formato de captura SNMP a continuación.

No uses trampas desconocidas - Zabbix no podrá para reconocerlos. Las trampas desconocidas se pueden manejar definiendo un general evento en snmptt.conf:
EVENTO general .* "Evento general" Normal

Configuración del receptor de trampas de Perl

Requisitos: Perl, Net-SNMP compilado con --enable-embedded-perl (hecho por defecto desde Net-SNMP 5.4)

Receptor de trampa Perl (busque misc/snmptrap/zabbix_trap_receiver.pl) se puede usar para pasar trampas al servidor Zabbix directamente desde snmptrapd. A configurarlo:

  • agregue el script perl al archivo de configuración snmptrapd (snmptrapd.conf), por ejemplo:
    perl do "[RUTA COMPLETA AL SCRIPT DEL RECEPTOR PERL]";
  • configurar el receptor, por ejemplo:
    $SNMPTrapperFile = '[ARCHIVO DE TRAMPA]';
    $DateTimeFormat = '[FORMATO DE FECHA Y HORA]';

Si no se cita el nombre del script, snmptrapd se negará a Comience con mensajes similares a estos:

Los modificadores Regexp "/l" y "/a" se excluyen mutuamente en (eval 2) línea 1, al final de la línea
       El modificador Regexp "/l" puede no aparecer dos veces en (eval 2) línea 1, al final de la línea

::: nota de advertencia El agente net-snmp no es compatible con AES256 con SNMPv3/USM. :::

Formato de trampa SNMP

Todos los receptores perl trap personalizados y la configuración de trampas SNMPTT deben formatee la trampa de la siguiente manera: [timestamp] [la trampa, parte 1] ZBXTRAP [dirección] [la trampa, parte 2], donde

  • [timestamp] - marca de tiempo utilizada para los elementos de registro
  • ZBXTRAP - encabezado que indica que se inicia una nueva trampa en esta línea
  • [dirección] - Dirección IP utilizada para encontrar el host para esta trampa

Tenga en cuenta que "ZBXTRAP" y "[dirección]" se eliminarán del mensaje durante el procesamiento. Si la trampa tiene otro formato, Zabbix podría analizar las trampas inesperadamente.

Ejemplo de trampa:
11:30:15 2011/07/27 .1.3.6.1.6.3.1.1.5.3 "Eventos de estado" normales localhost - ZBXTRAP 192.168.1.1 Enlace inactivo en la interfaz 2. Estado de administración: 1. Estado operativo: 2
Esto dará como resultado la siguiente trampa para la interfaz SNMP con IP=192.168.1.1:
11:30:15 2011/07/27 .1.3.6.1.6.3.1.1.5.3 "Eventos de estado" normales localhost - Enlace inactivo en la interfaz 2. Estado de administración: 1.

3 Requisitos del sistema

Compatibilidad con archivos grandes

Zabbix tiene "soporte de archivos grandes" para archivos trampa SNMP. El archivo máximo el tamaño que Zabbix puede leer es 2^63 (8 EiB). Tenga en cuenta que el sistema de archivos puede imponer un límite inferior en el tamaño del archivo.

Rotación de registros

Zabbix no proporciona ningún sistema de rotación de registros; eso debe manejarse por el usuario La rotación de registros primero debe cambiar el nombre del archivo antiguo y solo luego elimínelo para que no se pierdan trampas:

  1. Zabbix abre el archivo de captura en la última ubicación conocida y va a paso 3
  2. Zabbix verifica si el archivo actualmente abierto ha sido rotado por comparando el número de inodo con el número de inodo del archivo trap definido. Si no hay ningún archivo abierto, Zabbix restablece la última ubicación y va al paso 1.
  3. Zabbix lee los datos del archivo abierto actualmente y establece el nueva ubicacion.
  4. Los nuevos datos se analizan. Si este fue el archivo girado, el archivo es cierra y vuelve al paso 2.
  5. Si no hubo datos nuevos, Zabbix duerme durante 1 segundo y vuelve al paso 2.
Sistema de archivos

Debido a la implementación del archivo trampa, Zabbix necesita que el sistema de archivos soportar inodos para diferenciar archivos (la información es adquirida por un llamada stat()).

4 Ejemplo de configuración

Este ejemplo usa snmptrapd + SNMPTT para pasar trampas al servidor Zabbix. Configuración:

  1. zabbix_server.conf: configure Zabbix para iniciar SNMP trapper y establecer el archivo trampa:
    Iniciar Trampa SNMP=1
    SNMPTrapperFile=/tmp/mi_zabbix_traps.tmp
  2. snmptrapd.conf: agregue SNMPTT como controlador de trampas:
    snmptt predeterminado de traphandle
  3. snmptt.ini -
    habilitar el uso del módulo Perl del paquete NET-SNMP:
    red_snmp_perl_enable = 1
    configurar el archivo de salida y el formato de hora:
    registro_archivo = /tmp/mi_zabbix_traps.tmp
    fecha_hora_formato = %H:%M:%S %Y/%m/%d
  4. snmptt.conf: defina un formato de captura predeterminado:
    EVENTO general .* "Evento general" Normal
    FORMATO ZBXTRAP $aA $ar
  5. Cree un elemento SNMP PRUEBA:
    IP de la interfaz SNMP del host: 127.0.0.1
    Clave: snmptrap["General"]
    Formato de hora de registro: hh:mm:ss aaaa/MM/dd

Esto resulta en:

  1. Comando utilizado para enviar una trampa:
    snmptrap -v 1 -c público 127.0.0.1 '.1.3.6.1.6.3.1.1.5.3' '0.0.0.0' 6 33 '55' .1.3.6.1.6.3.1.1.5.3 s "cadena de prueba000"
  2. La trampa recibida:
    15:48:18 2011/07/26 .1.3.6.1.6.3.1.1.5.3.0.33 Normal "Evento general" servidor local - ZBXTRAP 127.0.0.1 127.0.0.1
  3. Valor para el artículo PRUEBA:
    15:48:18 2011/07/26 .1.3.6.1.6.3.1.1.5.3.0.33 Normal "Evento general" servidor local - 127.0.0.1

Este sencillo ejemplo utiliza SNMPTT como trahandle. Para mejor rendimiento en los sistemas de producción, use Perl incorporado para pasar trampas de snmptrapd a SNMPTT o directamente a Zabbix.

5 Ver también