Se encuentra viendo la documentación de la versión en desarrollo, puede estar incompleta.
Esta página fue traducida automáticamente. Si detectas un error, selecciónalo y presiona Ctrl+Enter para informarlo a los editores.

2 Transmisión a sistemas externos

Descripción general

Es posible transmitir valores de métricas y eventos desde Zabbix a sistemas externos a través de HTTP (consulte los detalles del protocolo).

El filtro de etiquetas puede utilizarse para transmitir subconjuntos de valores de métricas o eventos.

Dos procesos del servidor Zabbix son responsables de la transmisión de datos: connector manager y connector worker. Una métrica interna de Zabbix zabbix[connector_queue] permite monitorizar el número de valores encolados en la cola del conector.

Configuración

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:

  • Un ejemplo de un receptor simple que registra la información recibida en los archivos events.ndjson y history.ndjson.
  • Conector Kafka para Zabbix server: un servidor ligero escrito en Go, diseñado para reenviar valores de métricas y eventos desde un Zabbix server a un broker Kafka.

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 Zabbix server.

3. Configure un nuevo conector en el frontend de Zabbix (AdministraciónGeneralConectores) 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 métricas: transmite valores de métricas 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 métricas 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 etiqueta contienen la cadena introducida (coincidencia de subcadena, no distingue mayúsculas y minúsculas);
No existe: excluye los nombres de etiquetas especificados;
No es 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 etiqueta 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 métricas que el conector debe transmitir.
Este campo está disponible si Tipo de datos está establecido en "Valores de métricas".
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: Configurar 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 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".
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 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.
Timeout 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:
[protocol://][username[:password]@]proxy.example.com[:port]
Se admiten macros de usuario.

El prefijo opcional protocol:// 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 un 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 la métrica quedará no soportada.

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) del sistema. Puede sobrescribir la ubicación de los archivos CA usando el parámetro de configuración de Zabbix server o proxy 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 de Zabbix server o proxy 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 de Zabbix server o proxy 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.

Protocolo

La comunicación entre el servidor y el receptor se realiza a través de HTTP utilizando la API REST, NDJSON, "Content-Type: application/x-ndjson".

Para más detalles, consulte Protocolo de exportación de JSON delimitado por nueva línea.

Solicitud del servidor

Ejemplo de transmisión de valores de métricas:

POST /v1/history HTTP/1.1
       Host: localhost:8080
       Accept: */*
       Accept-Encoding: deflate, gzip, br, zstd
       Content-Length: 628
       Content-Type: application/x-ndjson
        
       {"host":{"host":"Zabbix server","name":"Zabbix server"},"groups":["Zabbix servers"],"item_tags":[{"tag":"foo","value":"test"}],"itemid":44457,"name":"foo","clock":1673454303,"ns":800155804,"value":0,"type":3}
       {"host":{"host":"Zabbix server","name":"Zabbix server"},"groups":["Zabbix servers"],"item_tags":[{"tag":"foo","value":"test"}],"itemid":44457,"name":"foo","clock":1673454303,"ns":832290669,"value":1,"type":3}
       {"host":{"host":"Zabbix server","name":"Zabbix server"},"groups":["Zabbix servers"],"item_tags":[{"tag":"bar","value":"test"}],"itemid":44458,"name":"bar","clock":1673454303,"ns":867770366,"value":123,"type":3}

Ejemplo de transmisión de eventos:

POST /v1/events HTTP/1.1
       Host: localhost:8080
       Accept: */*
       Accept-Encoding: deflate, gzip, br, zstd
       Content-Length: 333
       Content-Type: application/x-ndjson
        
       {"clock":1673454303,"ns":800155804,"value":1,"eventid":5,"name":"trigger for foo being 0","severity":0,"hosts":[{"host":"Zabbix server","name":"Zabbix server"}],"groups":["Zabbix servers"],"tags":[{"tag":"foo_trig","value":"test"},{"tag":"foo","value":"test"}]}
       {"clock":1673454303,"ns":832290669,"value":0,"eventid":6,"p_eventid":5}
Respuesta del receptor

La respuesta consiste en el código de estado de la respuesta HTTP y la carga útil JSON. El código de estado de la respuesta HTTP debe ser "200", "201", "202", "203" o "204" para las solicitudes que se manejaron correctamente, y otro valor para las solicitudes fallidas.

Ejemplo de éxito:

localhost:8080/v1/history": HTTP/1.1 200 OK
       Date: Wed, 11 Jan 2023 16:40:30 GMT
       Content-Length: 0

Ejemplo con errores:

localhost:8080/v1/history": HTTP/1.1 422 Unprocessable Entity
       Content-Type: application/json
       Date: Wed, 11 Jan 2023 17:07:36 GMT
       Content-Length: 55
        
       {"error":"invalid character '{' after top-level value"}