2 Streaming a sistemes externs

Vista general

És possible transmetre valors i esdeveniments d'elements des de Zabbix a sistemes externs mitjançant HTTP (veieu detalls del protocol).

:::avís de nota Aquesta funció actualment té un estat experimental. :::

El filtre d'etiquetes es pot emprar per transmetre subconjunts de valors d'elements o esdeveniments.

Dos processos del servidor Zabbix són els responsables de la transmissió de dades: 'administrador de connectors' i 'treballador de connectors'. Un element intern de Zabbix zabbix[connector_queue] permet monitorar el recompte de valors posats en cua a la cua de connectors.

Configuració

Cal seguir les passes següents per configurar la transmissió de dades a un sistema extern:

1. Teniu un sistema remot configurat per rebre dades de Zabbix.

Consulteu la documentació d'un receptor senzill. Actualment, el receptor registra la informació rebuda als fitxers events.ndjson i history.ndjson.

2. Establiu el nombre necessari de treballadors del connector a Zabbix ajustant el paràmetre StartConnectors a zabbix_server.conf. El nombre de treballadors dels connectors ha de coincidir (o sobrepassar, si el nombre de sessions concurrents és superior a 1) el recompte de connectors configurats a la interfície de Zabbix. Després, reinicieu el servidor Zabbix.

3. Configureu un connector nou a la interfície de Zabbix (AdministracióGeneralConnectors) i torneu a carregar la memòria cau del servidor amb la comanda zabbix_server -R config_cache_reload.

Els camps obligatoris són marcats amb asterisc.

Paràmetre Descripció
Nom Introduïu el nom del connector.
Tipus de dades Seleccioneu el tipus de dades: Valors d'element o Esdeveniments.
URL Introduïu l'URL del receptor. Les macros d'usuari són compatibles.
Filtre d'etiquetes Exporta només valors o esdeveniments que coincideixin amb el filtre d'etiquetes. Si no s'estableix, exporteu-ho tot.
És possible incloure i excloure etiquetes i valors d'etiquetes específics. Es poden establir diverses condicions. La concordança de noms d'etiqueta sempre distingeix entre majúscules i minúscules.
Hi ha diversos operadors disponibles per a cada condició:
Hi és - inclou els noms d'etiquetes especificats
Igual - inclou els noms d'etiquetes especificats i valors (distingeix entre majúscules i minúscules)
Conté - inclou els noms d'etiquetes especificats on els valors de l'etiqueta contenen la cadena introduïda (coincidència de subcadenes, no distingeix entre majúscules i minúscules)
No hi és - exclou l'especificat noms d'etiquetes
No és igual - exclou els noms i valors d'etiquetes especificats (distingeix entre majúscules i minúscules)
No conté - exclou els noms d'etiquetes especificats on els valors de l'etiqueta continguin la cadena introduïda ( coincidència de subcadenes, no distingeix entre majúscules i minúscules)
Hi ha dos tipus de càlcul per a les condicions:
I/O - s'han de complir totes les condicions, les condicions que tinguin el mateix nom d'etiqueta s'agruparan per la condició O<br >O - prou si es compleix una condició
Autenticació HTTP Trieu l'opció d'autenticació:
Cap - no s'empra cap autenticació;
Bàsica - s'empra l'autenticació bàsica;
NTLM - NTLM (Windows NT LAN Manager) s'empra l'autenticació;
Kerberos - Autenticació Kerberos;
Digest - Autenticació Digest;
Portador - Autenticació del portador.
Nom d'usuari Introduïu el nom d'usuari.
Aquest camp és disponible si Autenticació HTTP és establerta a Bàsica, NTLM, Kerberos o Digest. Les macros d'usuari són compatibles.
Mot de pas Introduïu el mot de pas de l'usuari.
Aquest camp és disponible si Autenticació HTTP és establerta a Bàsica, NTLM, Kerberos o Digest. Les macros d'usuari són compatibles.
Token de portador Introduïu el token de portador.
Aquest camp és disponible i és obligatori si l'Autenticació HTTP és establerta a Portador. Les macros d'usuari són compatibles.
Configuració avançada Marqueu aquesta casella de selecció per mostrar les opcions de configuració avançades.
Registres màxims per missatge Especifiqueu el nombre màxim de valors o esdeveniments que es poden enviar dins d'un missatge.
Sessions concurrents Seleccioneu el nombre de processos del remitent que s'executaran per a aquest connector. Es poden especificar fins a 100 sessions; el valor per defecte és '1'.
Intents Nombre d'intents per intentar enviar les dades. Es poden especificar fins a 5 intents; el valor per defecte és '1'.
Temps d'espera Especifiqueu el temps d'espera del missatge (1-60 segons, 5 segons per defecte).
S'admeten sufixos de temps, p. 30 anys, 1 m. Les macros d'usuari són compatibles.
Proxy HTTP Podeu especificar un proxy HTTP per emprar, emprant el format [protocol://][nom d'usuari[:mot de pas]@]proxy.exemple.cat[:port].
El prefix protocol opcional:// es pot emprar per especificar protocols alternatius de proxy (el suport de prefix de protocol es va afegir a cURL 7.21.7). Sense cap protocol especificat, el proxy es tractarà com un proxy HTTP.
De manera predeterminada, s'emprarà el port 1080.
Si s'especifica, el proxy sobreescriurà variables d'entorn relacionades amb el proxy, com ara http_proxy, HTTPS_PROXY. Si no s'especifica, el proxy no sobreescriurà les variables d'entorn relacionades amb el proxy. El valor introduït es transmet "tal com és", no es fa cap comprovació de seny.
També podeu introduir una adreça intermediaria SOCKS. Si especifiqueu un protocol incorrecte, la connexió fallarà i l'element no s'admetrà.
Tingueu en compte que només s'admet l'autenticació simple amb el proxy HTTP.
S'admeten macros d'usuari.
SSL verifica peer Marqueu la casella de selecció per verificar el certificat SSL del servidor web.
El certificat del servidor s'agafarà automàticament de la ubicació de l'autoritat de certificació (CA) de tot el sistema. Podeu substituir la ubicació dels fitxers CA mitjançant el paràmetre de configuració del servidor Zabbix o del proxy SSLCALocation.
SSL verifica host Marqueu la casella de selecció per verificar que el camp Common Name o el camp Subject Alternate Name del certificat del servidor web coincideix.
Això estableix el CURLOPT_SSL_VERIFYHOST opció cURL.
Fitxer de certificat SSL Nom del fitxer de certificat SSL emprat per a l'autenticació del client. El fitxer del certificat ha d'estar en format PEM1. Si el fitxer de certificat també conté la clau privada, deixeu el camp Fitxer de clau SSL buit. Si la clau està xifrada, especifiqueu el mot de pas al camp Mot de pas de la clau SSL. El directori que conté aquest fitxer l'especifica el servidor Zabbix o el paràmetre de configuració del proxy SSLCertLocation. Les macros d'usuari són compatibles.
Fitxer de clau SSL Nom del fitxer de clau privada SSL emprat per a l'autenticació del client. El fitxer de clau privada ha d'estar en format PEM1. El directori que conté aquest fitxer l'especifica el servidor Zabbix o el paràmetre de configuració del proxy SSLKeyLocation. Les macros d'usuari són compatibles.
Mot de pas de clau SSL Mot de pas del fitxer de clau privada SSL. Les macros d'usuari són compatibles.
Descripció Introduïu la descripció del connector.
Activat Marqueu la casella de selecció per habilitar el connector.

Protocol

La comunicació entre el servidor i el receptor es fa via HTTP amb l'API REST, NDJSON, "Tipus de contingut: aplicació/x-ndjson".

Per obtindre més informació, consulteu protocol d'exportació JSON delimitat per una línia nova.

Peticions del servidor

Exemple d'enviament de valors d'elements:

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}

Exemple d'enviament d'esdeveniments:

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}
Resposta del receptor

La resposta consisteix en el codi d'estat de resposta HTTP i la càrrega útil JSON. El codi d'estat de la resposta HTTP ha de ser "200" per a les peticions que s'han gestionat correctament, una altra per a les peticions fallides.

Exemple d'èxit:

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

Exemple amb errors:

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"}