Es posible transmitir valores de métricas y eventos desde Zabbix a sistemas externos a través de HTTP (consulte detalles del protocolo).
El filtro de etiquetas se puede utilizar para transmitir subconjuntos de valores de métricas o eventos.
Dos procesos del servidor Zabbix son responsables de la transmisión de datos: "administrador de conectores" y "trabajador de conectores". Una métrica interna de Zabbix zabbix[connector_queue]
permite monitorear el recuento de valores en cola en la cola del conector.
Se requieren los siguientes pasos para configurar la transmisión de datos a un sistema externo:
1. Tener un sistema remoto configurado para recibir datos de Zabbix. Para este propósito, están disponibles las siguientes herramientas:
events.ndjson
y history.ndjson
.2. Establezca el número requerido de procesos de conector en Zabbix ajustando el parámetro StartConnectors
en zabbix_server.conf
. El número de procesos de conector debe coincidir (o superar si las sesiones concurrentes son más de 1) con el número de conectores configurados en el frontend de Zabbix. Luego, reinicie el servidor Zabbix.
3. Configure un nuevo conector en el frontend de Zabbix (Administración → General → Conectores) y recargue la caché del servidor con el comando zabbix_server -R config_cache_reload
.
Los campos obligatorios están marcados con un asterisco.
Parámetro | Descripción |
---|---|
Nombre | Introduzca el nombre del conector. |
Tipo de datos | Seleccione el tipo de datos a transmitir: Valores de ítems: transmite valores de ítems desde Zabbix a sistemas externos; Eventos: transmite eventos desde Zabbix a sistemas externos. |
URL | Introduzca la URL del receptor. Se admiten macros de usuario. |
Filtro de etiquetas | Exporta solo los valores de ítems o eventos que coincidan con el filtro de etiquetas. Si no se establece, se exporta todo. Es posible incluir así como excluir etiquetas y valores de etiquetas específicos. Se pueden establecer varias condiciones. La coincidencia de nombres de etiquetas siempre distingue entre mayúsculas y minúsculas. Hay varios operadores disponibles para cada condición: Existe: incluye los nombres de etiquetas especificados; Igual: incluye los nombres y valores de etiquetas especificados (distingue mayúsculas y minúsculas); Contiene: incluye los nombres de etiquetas especificados donde los valores de las etiquetas contienen la cadena introducida (coincidencia de subcadena, no distingue mayúsculas y minúsculas); No existe: excluye los nombres de etiquetas especificados; No igual: excluye los nombres y valores de etiquetas especificados (distingue mayúsculas y minúsculas); No contiene: excluye los nombres de etiquetas especificados donde los valores de las etiquetas contienen la cadena introducida (coincidencia de subcadena, no distingue mayúsculas y minúsculas). Hay dos tipos de cálculo para las condiciones: Y/O: se deben cumplir todas las condiciones, las condiciones con el mismo nombre de etiqueta se agruparán por la condición O; O: basta con que se cumpla una condición. |
Tipo de información | Seleccione el tipo de información (numérico (sin signo), numérico (coma flotante), carácter, etc.), por el cual filtrar los valores de ítems que el conector debe transmitir. Este campo está disponible si Tipo de datos está establecido en "Valores de ítems". |
Autenticación HTTP | Seleccione la opción de autenticación: Ninguna: no se utiliza autenticación; Básica: se utiliza autenticación básica; NTLM: se utiliza autenticación NTLM (Windows NT LAN Manager); Kerberos: se utiliza autenticación Kerberos (ver también: Configurando Kerberos con Zabbix); Digest: se utiliza autenticación Digest; Bearer: se utiliza autenticación Bearer. |
Nombre de usuario | Introduzca el nombre de usuario (hasta 255 caracteres). Se admiten macros de usuario. Este campo está disponible si Autenticación HTTP está establecido en "Básica", "NTLM", "Kerberos" o "Digest". |
Contraseña | Introduzca la contraseña del usuario (hasta 255 caracteres). Se admiten macros de usuario. Este campo está disponible si Autenticación HTTP está establecido en "Básica", "NTLM", "Kerberos" o "Digest". |
Token Bearer | Introduzca el token Bearer. Se admiten macros de usuario. Este campo está disponible y es obligatorio si Autenticación HTTP está establecido en "Bearer". |
Configuración avanzada | Haga clic en la etiqueta Configuración avanzada para mostrar las opciones de configuración avanzada (ver más abajo). |
Máx. registros por mensaje | Especifique el número máximo de valores o eventos que se pueden transmitir en un solo mensaje. |
Sesiones concurrentes | Seleccione el número de procesos de envío que se ejecutarán para este conector. Se pueden especificar hasta 100 sesiones; el valor predeterminado es "1". |
Intentos | Número de intentos para transmitir datos. Se pueden especificar hasta 5 intentos; el valor predeterminado es "1". |
Intervalo de intento | Especifique cuánto tiempo debe esperar el conector después de un intento fallido de transmitir datos. Se pueden especificar hasta 10s; el valor predeterminado es "5s". Este campo está disponible si Intentos está establecido en "2" o más. Los intentos fallidos son aquellos en los que no se pudo establecer una conexión, o donde el código de respuesta HTTP no es 200, 201, 202, 203, 204. Los reintentos se activan en caso de errores de comunicación o cuando el código de respuesta HTTP no es 200, 201, 202, 203, 204, 400, 401, 403, 404, 405, 415, 422. Se siguen las redirecciones, por lo que 302 -> 200 es una respuesta positiva; mientras que 302 -> 503 activará un reintento. |
Tiempo de espera | Especifique el tiempo de espera del mensaje (1-60 segundos, por defecto 5 segundos). Se admiten sufijos de tiempo, por ejemplo, 30s, 1m. Se admiten macros de usuario. |
Proxy HTTP | Puede especificar un proxy HTTP para usar en el siguiente formato:[protocolo://][usuario[:contraseña]@]proxy.ejemplo.com[:puerto] Se admiten macros de usuario. El prefijo opcional protocolo:// puede usarse para especificar protocolos de proxy alternativos (el soporte para el prefijo de protocolo se agregó en cURL 7.21.7). Si no se especifica protocolo, el proxy se tratará como un proxy HTTP. Por defecto, se usará el puerto 1080.Si se especifica Proxy HTTP, el proxy sobrescribirá las variables de entorno relacionadas con el proxy como http_proxy , HTTPS_PROXY . Si no se especifica, el proxy no sobrescribirá las variables de entorno relacionadas con el proxy. El valor introducido se pasa tal cual, no se realiza ninguna comprobación de validez.También puede introducir una dirección de proxy SOCKS. Si especifica el protocolo incorrecto, la conexión fallará y el ítem quedará no soportado. Tenga en cuenta que solo se admite autenticación simple con proxy HTTP. |
Verificar par SSL | Marque la casilla para verificar el certificado SSL del servidor web. El certificado del servidor se tomará automáticamente de la ubicación de la autoridad certificadora (CA) a nivel del sistema. Puede sobrescribir la ubicación de los archivos CA usando el parámetro de configuración del servidor o proxy Zabbix SSLCALocation . |
Verificar host SSL | Marque la casilla para verificar que el campo Common Name o el campo Subject Alternate Name del certificado del servidor web coincida. Esto establece la opción cURL CURLOPT_SSL_VERIFYHOST . |
Archivo de certificado SSL | Nombre del archivo de certificado SSL utilizado para la autenticación del cliente. El archivo de certificado debe estar en formato PEM1. Se admiten macros de usuario. Si el archivo de certificado también contiene la clave privada, deje el campo Archivo de clave SSL vacío. Si la clave está cifrada, especifique la contraseña en el campo Contraseña de clave SSL. El directorio que contiene este archivo se especifica mediante el parámetro de configuración del servidor o proxy Zabbix SSLCertLocation . |
Archivo de clave SSL | Nombre del archivo de clave privada SSL utilizado para la autenticación del cliente. El archivo de clave privada debe estar en formato PEM1. Se admiten macros de usuario. El directorio que contiene este archivo se especifica mediante el parámetro de configuración del servidor o proxy Zabbix SSLKeyLocation . |
Contraseña de clave SSL | Contraseña del archivo de clave privada SSL. Se admiten macros de usuario. |
Descripción | Introduzca la descripción del conector. |
Habilitado | Marque la casilla para habilitar el conector. |
La comunicación entre el servidor y el receptor se realiza a través de HTTP utilizando REST API, NDJSON, "Content-Type: application/x-ndjson".
Para obtener más detalles, consulte el protocolo de exportación JSON delimitado por salto de línea.
Ejemplo de valores de elementos de transmisión:
POST /v1/historia HTTP/1.1
Anfitrión: localhost: 8080
Aceptar: */*
Aceptar codificación: deflate, gzip, br, zstd
Longitud del contenido: 628
Tipo de contenido: aplicación/x-ndjson
{"host":{"host":"servidor Zabbix","name":"servidor Zabbix"},"groups":["servidores Zabbix"],"item_tags":[{"tag":"foo", "valor":"prueba"}],"itemid":44457,"nombre":"foo","reloj":1673454303,"ns":800155804,"valor":0,"tipo":3}
{"host":{"host":"servidor Zabbix","name":"servidor Zabbix"},"groups":["servidores Zabbix"],"item_tags":[{"tag":"foo", "valor":"prueba"}],"itemid":44457,"nombre":"foo","reloj":1673454303,"ns":832290669,"valor":1,"tipo":3}
{"host":{"host":"servidor Zabbix","name":"servidor Zabbix"},"groups":["servidores Zabbix"],"item_tags":[{"tag":"bar", "valor":"prueba"}],"itemid":44458,"nombre":"bar","reloj":1673454303,"ns":867770366,"valor":123,"tipo":3}
Ejemplo de eventos de streaming:
POST /v1/eventos HTTP/1.1
Anfitrión: localhost: 8080
Aceptar: */*
Aceptar codificación: deflate, gzip, br, zstd
Longitud del contenido: 333
Tipo de contenido: aplicación/x-ndjson
{"clock":1673454303,"ns":800155804,"value":1,"eventid":5,"name":"activador para que foo sea 0","severity":0,"hosts":[{" host":"servidor Zabbix","name":"servidor Zabbix"}],"groups":["servidores Zabbix"],"tags":[{"tag":"foo_trig","value":"test "},{"tag":"foo","valor":"prueba"}]}
{"reloj":1673454303,"ns":832290669,"valor":0,"eventid":6,"p_eventid":5}
La respuesta consta del código de estado de respuesta HTTP y la carga útil JSON. El código de estado de respuesta HTTP debe ser "200", "201", "202", "203" o "204" para las solicitudes que se manejaron correctamente y otro para las solicitudes fallidas.
Ejemplo de éxito:
localhost:8080/v1/history": HTTP/1.1 200 OK
Fecha: miércoles 11 de enero de 2023 16:40:30 GMT
Longitud del contenido: 0
Ejemplo con errores: