2 Straumēšana uz ārējām sistēmām
Pārskats
Ir iespējams straumēt vienumu vērtības un notikumus no Zabbix uz ārējām sistēmām, izmantojot HTTP (skatiet protokola informāciju).
Birkas filtru var izmantot, lai straumētu vienumu vērtību vai notikumu apakškopas.
Par datu straumēšanu ir atbildīgi divi Zabbix servera procesu tipi: connector manager un connector worker.
Zabbix iekšējais vienums zabbix[connector_queue] ļauj uzraudzīt savienotāja rindā ievietoto vērtību skaitu.
Konfigurācija
Lai konfigurētu datu straumēšanu uz ārēju sistēmu, ir jāveic šādas darbības:
1. Sagatavojiet attālo sistēmu datu saņemšanai no Zabbix. Šim nolūkam ir pieejami šādi rīki:
- Vienkārša saņēmēja piemērs, kas saņemto informāciju reģistrē
events.ndjsonunhistory.ndjsonfailos. - Kafka savienotājs Zabbix serverim - viegls Go valodā rakstīts serveris, kas paredzēts vienumu vērtību un notikumu pārsūtīšanai no Zabbix servera uz Kafka brokeri.
2. Zabbix iestatiet nepieciešamo savienotāja darba procesu skaitu, pielāgojot StartConnectors parametru failā zabbix_server.conf.
Savienotāja darba procesu skaitam jāatbilst Zabbix lietotāja saskarnē konfigurētajam savienotāju skaitam (vai tas jābūt lielākam, ja vienlaicīgo sesiju skaits ir lielāks par 1).
Pēc tam restartējiet Zabbix serveri.
3. Zabbix lietotāja saskarnē konfigurējiet jaunu savienotāju (Administration > General > Connectors) un pārlādējiet servera kešatmiņu ar komandu zabbix_server -R config_cache_reload.

Obligātie lauki ir atzīmēti ar zvaigznīti.
| Parameter | Description |
|---|---|
| Name | Ievadiet savienotāja nosaukumu. |
| Data type | Atlasiet straumējamo datu tipu: Item values - straumēt vienumu vērtības no Zabbix uz ārējām sistēmām; Events - straumēt notikumus no Zabbix uz ārējām sistēmām. |
| URL | Ievadiet saņēmēja URL. Tiek atbalstīti lietotāja makrosi. |
| Tag filter | Eksportēt tikai vienumu vērtības vai notikumus, kas atbilst taga filtram. Ja tas nav iestatīts, tiks eksportēts viss. Iespējams iekļaut, kā arī izslēgt konkrētus tagus un tagu vērtības. Var iestatīt vairākus nosacījumus. Taga nosaukuma atbilstība vienmēr ir reģistrjutīga. Katram nosacījumam ir pieejami vairāki operatori: Exists - iekļaut norādītos taga nosaukumus; Equals - iekļaut norādītos taga nosaukumus un vērtības (reģistrjutīgi); Contains - iekļaut norādītos taga nosaukumus, kuru taga vērtības satur ievadīto virkni (apakšvirknes atbilstība, nereģistrjutīgi); Does not exist - izslēgt norādītos taga nosaukumus; Does not equal - izslēgt norādītos taga nosaukumus un vērtības (reģistrjutīgi); Does not contain - izslēgt norādītos taga nosaukumus, kuru taga vērtības satur ievadīto virkni (apakšvirknes atbilstība, nereģistrjutīgi). Nosacījumu aprēķinam ir divi tipi: And/Or - jāizpildās visiem nosacījumiem, nosacījumi ar vienādu taga nosaukumu tiks grupēti pēc Or nosacījuma; Or - pietiek, ja izpildās viens nosacījums. |
| Type of information | Atlasiet informācijas tipu (skaitlisks (bez zīmes), skaitlisks (peldošs), rakstzīmju u. c.), pēc kura filtrēt vienumu vērtības, ko savienotājam jāstraumē. Šis lauks ir pieejams, ja Data type ir iestatīts uz "Item values". |
| HTTP authentication | Atlasiet autentifikācijas opciju: None - autentifikācija netiek izmantota; Basic - tiek izmantota pamata autentifikācija; NTLM - tiek izmantota NTLM (Windows NT LAN Manager) autentifikācija; Kerberos - tiek izmantota Kerberos autentifikācija (skatiet arī: Kerberos konfigurēšana ar Zabbix); Digest - tiek izmantota Digest autentifikācija; Bearer - tiek izmantota Bearer autentifikācija. |
| Username | Ievadiet lietotājvārdu (līdz 255 rakstzīmēm). Tiek atbalstīti lietotāja makrosi. Šis lauks ir pieejams, ja HTTP authentication ir iestatīts uz "Basic", "NTLM", "Kerberos" vai "Digest". |
| Password | Ievadiet lietotāja paroli (līdz 255 rakstzīmēm). Tiek atbalstīti lietotāja makrosi. Šis lauks ir pieejams, ja HTTP authentication ir iestatīts uz "Basic", "NTLM", "Kerberos" vai "Digest". |
| Bearer token | Ievadiet Bearer tokenu. Tiek atbalstīti lietotāja makrosi. Šis lauks ir pieejams un obligāts, ja HTTP authentication ir iestatīts uz "Bearer". |
| Advanced configuration | Noklikšķiniet uz galvenes Advanced configuration, lai parādītu papildu konfigurācijas opcijas (skatiet tālāk). |
| Max records per message | Norādiet maksimālo vērtību vai notikumu skaitu, ko var straumēt vienā ziņojumā. |
| Concurrent sessions | Atlasiet sūtītāja procesu skaitu, kas jāpalaiž šim savienotājam. Var norādīt līdz 100 sesijām; noklusējuma vērtība ir "1". |
| Attempts | Datu straumēšanas mēģinājumu skaits. Var norādīt līdz 5 mēģinājumiem; noklusējuma vērtība ir "1". |
| Attempt interval | Norādiet, cik ilgi savienotājam jāgaida pēc neveiksmīga datu straumēšanas mēģinājuma. Var norādīt līdz 10 s; noklusējuma vērtība ir "5s". Šis lauks ir pieejams, ja Attempts ir iestatīts uz "2" vai vairāk. Neveiksmīgi mēģinājumi ir tie, kuros neizdevās izveidot savienojumu vai HTTP atbildes kods nav 200, 201, 202, 203, 204. Atkārtoti mēģinājumi tiek izraisīti sakaru kļūdu gadījumā vai tad, ja HTTP atbildes kods nav 200, 201, 202, 203, 204, 400, 401, 403, 404, 405, 415, 422. Pāradresācijas tiek sekotas, tāpēc 302 -> 200 ir pozitīva atbilde; savukārt 302 -> 503 izraisīs atkārtotu mēģinājumu. |
| Timeout | Norādiet ziņojuma noildzi (1-60 sekundes, noklusējums - 5 sekundes). Tiek atbalstīti laika sufiksi, piemēram, 30s, 1m. Tiek atbalstīti lietotāja makrosi. |
| HTTP proxy | Varat norādīt izmantojamo HTTP starpniekserveri šādā formātā:[protocol://][username[:password]@]proxy.example.com[:port]Tiek atbalstīti lietotāja makrosi. Neobligāto prefiksu protocol:// var izmantot, lai norādītu alternatīvus starpniekservera protokolus (protokola prefiksa atbalsts tika pievienots cURL 7.21.7). Ja protokols nav norādīts, starpniekserveris tiks uzskatīts par HTTP starpniekserveri. Pēc noklusējuma tiks izmantots 1080 ports.Ja HTTP proxy ir norādīts, starpniekserveris pārrakstīs ar starpniekserveri saistītās vides mainīgās, piemēram, http_proxy, HTTPS_PROXY. Ja tas nav norādīts, starpniekserveris nepārrakstīs ar starpniekserveri saistītās vides mainīgās. Ievadītā vērtība tiek nodota tālāk bez izmaiņām, netiek veikta nekāda pārbaude.Varat arī ievadīt SOCKS starpniekservera adresi. Ja norādīsiet nepareizu protokolu, savienotājs nespēs straumēt vienumu vērtības vai notikumus no Zabbix. Ņemiet vērā, ka ar HTTP starpniekserveri tiek atbalstīta tikai vienkāršā autentifikācija. |
| SSL verify peer | Atzīmējiet izvēles rūtiņu, lai pārbaudītu tīmekļa servera SSL sertifikātu. Servera sertifikāts tiks automātiski ņemts no sistēmas mēroga sertifikātu autoritātes (CA) atrašanās vietas. CA failu atrašanās vietu var pārrakstīt, izmantojot Zabbix servera vai starpniekservera konfigurācijas parametru SSLCALocation. |
| SSL verify host | Atzīmējiet izvēles rūtiņu, lai pārbaudītu, vai tīmekļa servera sertifikāta lauki Common Name vai Subject Alternate Name atbilst. Tas iestata cURL opciju CURLOPT_SSL_VERIFYHOST. |
| SSL certificate file | SSL sertifikāta faila nosaukums, ko izmanto klienta autentifikācijai. Sertifikāta failam jābūt PEM1 formātā. Tiek atbalstīti lietotāja makrosi. Ja sertifikāta fails satur arī privāto atslēgu, atstājiet lauku SSL key file tukšu. Ja atslēga ir šifrēta, norādiet paroli laukā SSL key password. Katalogs, kurā atrodas šis fails, ir norādīts Zabbix servera vai starpniekservera konfigurācijas parametrā SSLCertLocation. |
| SSL key file | SSL privātās atslēgas faila nosaukums, ko izmanto klienta autentifikācijai. Privātās atslēgas failam jābūt PEM1 formātā. Tiek atbalstīti lietotāja makrosi. Katalogs, kurā atrodas šis fails, ir norādīts Zabbix servera vai starpniekservera konfigurācijas parametrā SSLKeyLocation. |
| SSL key password | SSL privātās atslēgas faila parole. Tiek atbalstīti lietotāja makrosi. |
| Description | Ievadiet savienotāja aprakstu. |
| Enabled | Atzīmējiet izvēles rūtiņu, lai iespējotu savienotāju. |
Ja Kafka savienotājs ir konfigurēts ar ar komatiem atdalītu bootstrap brokeru adrešu sarakstu (piemēram, Kafka.URL=kafka1.example.com:9093,kafka2.example.com:9093), Kafka klients izveido savienojumu ar brokeri(-iem), kas atbild vispirms, un izmanto to klastera metadatus.
Ja sarakstā ir adreses no dažādiem Kafka klasteriem, tiks izmantots tikai ātrāk atbildējušais klasteris, bet pārējās adreses tiks reģistrētas kā nepieejamas; tā rezultātā var tikt parādīti tādi startēšanas brīdinājumi kā šis, pat ja savienotājs ir savienots:
kafka cluster connected, but broker(s) "kafka1.example.com:9093, kafka2.example.com:9093" unavailable; will retry on message send if active brokers fail
Dažās vidēs (privātos tīklos, konteineru tīklos vai nestandarta DNS/hosts iestatījumos) hostu nosaukumi vai IP adreses var tikt atrisinātas uz loopback adresēm (piemēram, 127.0.0.1/localhost) vai klients tās var normalizēt, kas var padarīt šādus brīdinājumus maldinošus.
Lai mazinātu neskaidrības, pārliecinieties, ka visas Kafka.URL adreses pieder vienam un tam pašam Kafka klasterim, pārbaudiet DNS atrisināšanu no savienotāja hosta un brokeru advertised.listeners, un dodiet priekšroku adresēm, kas atrisinās uz brokera reklamēto adresi.
Protokols
Saziņa starp serveri un saņēmēju notiek, izmantojot HTTP un REST API, NDJSON, "Content-Type: application/x-ndjson".
Lai iegūtu sīkāku informāciju, skatiet Ar jaunu rindu atdalīta JSON eksporta protokolu.
Servera pieprasījums
Piemērs vienumu vērtību straumēšanai:
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}
Piemērs notikumu straumēšanai:
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}
Saņēmēja atbilde
Atbilde sastāv no HTTP atbildes statusa koda un JSON slodzes. HTTP atbildes statusa kodam jābūt "200", "201", "202", "203" vai "204" pieprasījumiem, kas tika veiksmīgi apstrādāti, bet citam kodam — neveiksmīgiem pieprasījumiem.
Veiksmīgas atbildes piemērs:
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
Date: Tue, 21 Apr 2026 10:13:04 GMT
Content-Length: 23
{"response":"success"}
Piemērs ar kļūdām:
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
X-Content-Type-Options: nosniff
Date: Tue, 21 Apr 2026 12:15:01 GMT
Content-Length: 55
{"error":"invalid character '{' after top-level value"}