[comment]: # (tags: connector)

[comment]: # ({cdb0d4ea-b45624e8})
# 2 Straumēšana uz ārējām sistēmām

[comment]: # ({/cdb0d4ea-b45624e8})

[comment]: # ({fa81590c-c479d2fd})
#### 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](#protocol)).

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.

[comment]: # ({/fa81590c-c479d2fd})

[comment]: # ({695ba0a3-cfad3c2f})
#### Konfigurācija

Lai konfigurētu datu straumēšanu uz ārējo 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](https://git.zabbix.com/projects/ZT/repos/receiver/browse) piemērs, kas saņemto informāciju reģistrē `events.ndjson` un `history.ndjson` failos.
-   [Kafka savienotājs Zabbix serverim](https://git.zabbix.com/projects/ZT/repos/kafka-connector/browse) - viegls Go valodā rakstīts serveris, kas paredzēts vienums vērtību un notikumu pārsūtīšanai no Zabbix serveris uz Kafka brokeri.

2\. Iestatiet nepieciešamo savienotāja darba procesu skaitu Zabbix, pielāgojot [`StartConnectors`](/manual/appendix/config/zabbix_server#startconnectors) parametru failā `zabbix_server.conf`.
Savienotāja darba procesu skaitam jāatbilst (vai jābūt lielākam, ja vienlaicīgo sesiju skaits ir lielāks par 1) Zabbix lietotāja saskarne konfigurētajam savienotāju skaitam.
Pēc tam restartējiet Zabbix serveris.

3\. Zabbix lietotāja saskarne 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`.

![](../../../../assets/en/manual/config/connector.png){width="600"}

Obligātie lauki ir atzīmēti ar zvaigznīti.

|Parameter|Description|
|--|--------|
|*Name*|Ievadiet savienotāja nosaukumu.|
|*Data type*|Atlasiet straumējamo datu tipu:<br>**Item values** - straumēt vienums vērtības no Zabbix uz ārējām sistēmām;<br>**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 vienums vērtības vai notikumus, kas atbilst tagu filtram. Ja tas nav iestatīts, tiks eksportēts viss.<br>Iespējams gan iekļaut, gan izslēgt konkrētus tagus un tagu vērtības. Var iestatīt vairākus nosacījumus. Tagu nosaukumu salīdzināšana vienmēr ir reģistrjutīga.<br><br>Katram nosacījumam ir pieejami vairāki operatori:<br>**Exists** - iekļaut norādītos tagu nosaukumus;<br>**Equals** - iekļaut norādītos tagu nosaukumus un vērtības (reģistrjutīgi);<br>**Contains** - iekļaut norādītos tagu nosaukumus, kuru tagu vērtības satur ievadīto virkni (apakšvirknes atbilstība, nereģistrjutīgi);<br>**Does not exist** - izslēgt norādītos tagu nosaukumus;<br>**Does not equal** - izslēgt norādītos tagu nosaukumus un vērtības (reģistrjutīgi);<br>**Does not contain** - izslēgt norādītos tagu nosaukumus, kuru tagu vērtības satur ievadīto virkni (apakšvirknes atbilstība, nereģistrjutīgi).<br><br>Nosacījumiem ir pieejami divi aprēķina tipi:<br>**And/Or** - jāizpildās visiem nosacījumiem, nosacījumi ar vienādu taga nosaukumu tiks grupēti pēc Or nosacījuma;<br>**Or** - pietiek, ja izpildās viens nosacījums.|
|*Type of information*|Atlasiet informācijas tipu (numeric (unsigned), numeric (float), character u. c.), pēc kura filtrēt vienums vērtības, kuras savienotājam jāstraumē.<br>Šis lauks ir pieejams, ja *Data type* ir iestatīts uz "Item values".|
|*HTTP authentication*|Atlasiet autentifikācijas opciju:<br>**None** - autentifikācija netiek izmantota;<br>**Basic** - tiek izmantota pamata autentifikācija;<br>**NTLM** - tiek izmantota NTLM ([Windows NT LAN Manager](http://en.wikipedia.org/wiki/NTLM)) autentifikācija;<br>**Kerberos** - tiek izmantota Kerberos autentifikācija (skatiet arī: [Kerberos konfigurēšana ar Zabbix](/manual/appendix/items/kerberos));<br>**Digest** - tiek izmantota Digest autentifikācija;<br>**Bearer** - tiek izmantota Bearer autentifikācija.|
|*Username*|Ievadiet lietotājvārdu (līdz 255 rakstzīmēm). Tiek atbalstīti lietotāja makrosi.<br>Š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.<br>Š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.<br>Šis lauks ir pieejams un obligāts, ja *HTTP authentication* ir iestatīts uz "Bearer".|
|*Advanced configuration*|Noklikšķiniet uz virsraksta *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".<br>Šis lauks ir pieejams, ja *Attempts* ir iestatīts uz "2" vai vairāk.<br>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 **aktivizēti** saziņas 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 aktivizēs atkārtotu mēģinājumu.|
|*Timeout*|Norādiet ziņojuma noildzi (1-60 sekundes, noklusējums - 5 sekundes).<br>Tiek atbalstīti laika sufiksi, piemēram, 30s, 1m. Tiek atbalstīti lietotāja makrosi.|
|*HTTP proxy*|Varat norādīt HTTP starpniekserveri šādā formātā:<br>`[protocol://][username[:password]@]proxy.example.com[:port]`<br>Tiek atbalstīti lietotāja makrosi.<br><br>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.<br><br>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.<br>Varat arī ievadīt SOCKS starpniekservera adresi. Ja norādīsiet nepareizu protokolu, savienotājs nespēs straumēt vienums vērtības vai notikumus no Zabbix.<br><br>Ņ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.<br>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 serveris vai starpniekserveris konfigurācijas parametru [`SSLCALocation`](/manual/appendix/config/zabbix_server#sslcalocation).|
|*SSL verify host*|Atzīmējiet izvēles rūtiņu, lai pārbaudītu, vai tīmekļa servera sertifikāta lauks *Common Name* vai *Subject Alternate Name* atbilst.<br>Tas iestata cURL opciju [`CURLOPT_SSL_VERIFYHOST`](http://curl.haxx.se/libcurl/c/CURLOPT_SSL_VERIFYHOST.html).|
|*SSL certificate file*|SSL sertifikāta faila nosaukums, ko izmanto klienta autentifikācijai. Sertifikāta failam jābūt PEM^1^ formātā. Tiek atbalstīti lietotāja makrosi.<br>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*. Mapes, kurā atrodas šis fails, atrašanās vietu norāda Zabbix serveris vai starpniekserveris konfigurācijas parametrs [`SSLCertLocation`](/manual/appendix/config/zabbix_server#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 PEM^1^ formātā. Tiek atbalstīti lietotāja makrosi.<br>Mapes, kurā atrodas šis fails, atrašanās vietu norāda Zabbix serveris vai starpniekserveris konfigurācijas parametrs [`SSLKeyLocation`](/manual/appendix/config/zabbix_server#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 parādīties tādi startēšanas brīdinājumi kā šis, pat ja savienotājs ir pieslēgts:

```default
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 arī 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`, kā arī dodiet priekšroku adresēm, kas atrisinās uz brokera reklamēto adresi.

[comment]: # ({/695ba0a3-cfad3c2f})

[comment]: # ({3208b284-b67df609})
#### 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](/manual/appendix/protocols/real_time_export).

[comment]: # ({/3208b284-b67df609})

[comment]: # ({fd0d393d-ae5d9204})
##### Servera pieprasījums

Piemērs vienumu vērtību straumēšanai:

```json
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:

```json
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}
```

[comment]: # ({/fd0d393d-ae5d9204})

[comment]: # ({d6988482-89101d44})
##### 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:

```json
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:

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

[comment]: # ({/d6988482-89101d44})
