[comment]: # translation:outdated

[comment]: # (tags: connector)

[comment]: # ({cdb0d4ea-b45624e8})
# 2 Стримовање на екстерне системе

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

[comment]: # ({87428f24-c479d2fd})
#### Преглед

Могуће је стримовати вредности ставки и догађаје са Zabbix-а на спољне системе преко HTTP-а (погледајте [детаљи протокола](#protocol)).

Филтер ознака се може користити за стримовање подскупова вредности ставки или догађаја.

Два процеса Zabbix сервера су одговорна за стримовање података: `менаџер конектора` и `конекторски радник`. Zabbix интерна ставка `zabbix[connector_queue]` омогућава праћење броја вредности у реду у реду конектора.

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

[comment]: # ({4dfae16c-cfad3c2f})
#### Конфигурација

Следећи кораци су потребни за конфигурисање стримовања података на екстерни систем:

1\. Подешавање удаљеног система за пријем података из Zabbix-а.
У ту сврху, доступни су следећи алати:

-   Пример једноставног [пријемника](https://git.zabbix.com/projects/ZT/repos/receiver/browse) који евидентира примљене информације у датотекама `events.ndjson` и `history.ndjson`.
-   [Kafka конектор за Zabbix сервер](https://git.zabbix.com/projects/ZT/repos/kafka-connector/browse) - лагани сервер написан у Go-у, дизајниран за прослеђивање вредности ставки и догађаја са Zabbix сервера на Kafka брокер.

2\. Подесите потребан број конекторских радника у Zabbix-у подешавањем параметра [`StartConnectors`](/manual/appendix/config/zabbix_server#startconnectors) у `zabbix_server.conf`. Број конекторских радника треба да се подудара (или да буде већи ако је број истовремених сесија већи од 1) са конфигурисаним бројем конектора у
Zabbix корисничком интерфејсу.
Затим, поново покрените Zabbix сервер.

3\. Конфигуришите нови конектор у Zabbix корисничком интерфејсу (*Администрација* → *Опште* → *Конектори*) и поново учитајте кеш сервера помоћу команде `zabbix_server -R config_cache_reload`.

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

Обавезна поља су означена звездицом.

|Parameter|Description|
|--|--------|
|* Name*|Унесите назив конектора.|
|*Data type*|Изаберите тип података за стримовање:<br>**Вредности ставки** - стримовање вредности ставки из Zabbix-а на екстерне системе;<br>**Догађаји** - стримовање догађаја из Zabbix-а на екстерне системе.|
|*URL*|Унесите URL пријемника. Кориснички макрои су подржани.|
|*Tag filter*|Извезите само вредности ставки или догађаје који одговарају филтеру ознака. Ако није подешен, извезите све.<br>Могуће је укључити, као и искључити одређене ознаке и вредности ознака. Може се подесити неколико услова. Подударање имена ознака је увек осетљиво на велика и мала слова.<br><br>За сваки услов је доступно неколико оператора:<br>**Постоји** - укључује наведене називе ознака;<br>**Једнако** - укључује наведене називе и вредности ознака (разликује велика и мала слова);<br>**Садржи** - укључује наведене називе ознака где вредности ознака садрже унети стринг (подударање подстринга, не разликује велика и мала слова);<br>**Не постоји** - искључује наведене називе ознака;<br>**Није једнако** - искључује наведене називе и вредности ознака (разликује велика и мала слова);<br>**Не садржи** - искључује наведене називе ознака где вредности ознака садрже унети стринг (подударање подстринга, не разликује велика и мала слова).<br><br>Постоје два типа израчунавања за услове:<br>**И/Или** - сви услови морају бити испуњени, услови са истим називом ознаке биће груписани условом Или;<br>**Или** - довољно ако је испуњен један услов.|
|*Type of information*|Изаберите тип информација (нумеричке (непотписане), нумеричке (float), карактерне, итд.), помоћу којих се филтрирају вредности ставки које конектор треба да стримује.<br>Ово поље је доступно ако је *Тип података* подешен на "Вредности ставки".|
|*HTTP аутентификација*|Изаберите опцију аутентификације:<br>**Ниједан** - аутентификација се не користи;<br>**Основна** - користи се основна аутентификација;<br>**NTLM** - користи се NTLM ([Windows NT LAN Manager](http://en.wikipedia.org/wiki/NTLM)) аутентификација;<br>**Kerberos** - користи се Kerberos аутентификација (погледајте такође: [Конфигурисање Kerberos-а помоћу Zabbix-а](/manual/appendix/items/kerberos));<br>**Digest** - користи се Digest аутентификација;<br>**Bearer** - користи се аутентификација носиоца.|
|* Username*|Унесите корисничко име (до 255 знакова). Кориснички макрои су подржани.<br>Ово поље је доступно ако је *HTTP аутентификација* подешена на "Основно", "NTLM", "Kerberos" или "Digest".|
|* Password*|Унесите корисничку лозинку (до 255 знакова). Кориснички макрои су подржани.<br>Ово поље је доступно ако је *HTTP аутентификација* подешена на "Основно", "NTLM", "Kerberos" или "Digest".|
|*Bearer token*|Унесите токен носиоца. Кориснички макрои су подржани.<br>Ово поље је доступно и обавезно ако је *HTTP аутентификација* подешена на "Носиоц".|
|*Advanced configuration*|Кликните на ознаку *Напредна конфигурација* да бисте приказали напредне опције конфигурације (погледајте доле).|
|*Max records per message*|Наведите максималан број вредности или догађаја који се могу стримовати у једној поруци.|
|*Concurrent sessions*|Изаберите број процеса пошиљаоца који ће се покренути за овај конектор. Може се навести до 100 сесија; Подразумевана вредност је "1".|
|* Attempts*|Број покушаја стримовања података. Може се навести до 5 покушаја; подразумевана вредност је "1".|
|*Attempt interval*|Наведите колико дуго конектор треба да чека након неуспешног покушаја стримовања података. Може се навести до 10 секунди; Подразумевана вредност је "5s".<br>Ово поље је доступно ако је *Покушаји* подешено на "2" или више.<br>Неуспешни покушаји су они где успостављање везе није успело или где HTTP код одговора није 200, 201, 202, 203, 204. Поновни покушаји се **покрећу** у случају комуникационих грешака или када HTTP код одговора није 200, 201, 202, 203, 204, 400, 401, 403, 404, 405, 415, 422. Прате се преусмеравања, тако да је 302 -> 200 позитиван одговор; док ће 302 -> 503 покренути поновни покушај.|
|* Timeout*|Наведите временско ограничење поруке (1-60 секунди, подразумевано - 5 секунди).<br>Временски суфикси су подржани, нпр. 30s, 1m. Кориснички макрои су подржани.|
|*HTTP proxy*|Можете навести HTTP прокси који ће се користити у следећем формату:<br>`[protocol://][username[:password]@]proxy.example.com[:port]`<br>Подржани су макрои корисника.<br><br>Опционални префикс `protocol://` може се користити за навођење алтернативних прокси протокола (подршка за префикс протокола је додата у cURL 7.21.7). Ако није наведен протокол, прокси ће се третирати као HTTP прокси. Подразумевано ће се користити порт 1080.<br><br>Ако је наведен *HTTP прокси*, прокси ће преписати променљиве окружења повезане са проксијем као што су `http_proxy`, `HTTPS_PROXY`. Ако није наведен, прокси неће преписати променљиве окружења повезане са проксијем. Унета вредност се прослеђује каква јесте, не врши се провера исправности.<br>Такође можете унети SOCKS адресу проксија. Ако наведете погрешан протокол, веза неће успети и ставка неће бити подржана.<br><br>Имајте на уму да је само једноставна аутентификација подржана са HTTP проксијем.|
|*SSL verify peer*|Означите поље за потврду да бисте верификовали SSL сертификат веб сервера.<br>Сертификат сервера ће се аутоматски преузети са локације системског ауторитета за сертификате (CA). Можете заменити локацију CA датотека користећи параметре конфигурације Zabbix сервера или проксија [`SSLCALocation`](/manual/appendix/config/zabbix_server#sslcalocation).|
|*SSL verify host*|Означите поље за потврду да бисте верификовали да се поље *Common Name* или поље *Subject Alternate Name* сертификата веб сервера подудара.<br>Ово подешава cURL опцију [`CURLOPT_SSL_VERIFYHOST`](http://curl.haxx.se/libcurl/c/CURLOPT_SSL_VERIFYHOST.html).|
|*SSL certificate file*|Име SSL датотеке сертификата која се користи за аутентификацију клијента. Датотека сертификата мора бити у PEM^1^ формату. Подржани су кориснички макрои.<br>Ако датотека сертификата такође садржи приватни кључ, оставите поље *SSL датотека кључа* празно. Ако је кључ шифрован, наведите лозинку у пољу *SSL лозинка кључа*. Директоријум који садржи ову датотеку одређује Zabbix сервер или параметар конфигурације проксија [`SSLCertLocation`](/manual/appendix/config/zabbix_server#sslcertlocation).|
|*SSL key file*|Назив SSL датотеке приватног кључа која се користи за аутентификацију клијента. Датотека приватног кључа мора бити у PEM^1^ формату. Подржани су кориснички макрои.<br>Директоријум који садржи ову датотеку одређује Zabbix сервер или параметар конфигурације проксија [`SSLKeyLocation`](/manual/appendix/config/zabbix_server#sslkeylocation).|
|*SSL key password*|Лозинка SSL датотеке приватног кључа. Кориснички макрои су подржани.|
|* Description*|Унесите опис конектора.|
|* Enabled*|Означите поље за потврду да бисте омогућили конектор.|

[comment]: # ({/4dfae16c-cfad3c2f})

[comment]: # ({3208b284-b67df609})
#### Протокол

Комуникација између сервера и пријемника се обавља преко HTTP-а помоћу REST API-ја, NDJSON, "Content-Type: application/x-ndjson".

За више детаља погледајте [Протокол за извоз JSON раздвојених новим редовима](/manual/appendix/protocols/real_time_export).

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

[comment]: # ({fd0d393d-ae5d9204})
##### Захтев за сервер

Пример вредности ставки за стримовање:

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

Пример стримованих догађаја:

```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]: # ({6ec41f1e-89101d44})
##### Одговор примаоца

Одговор се састоји од HTTP кода статуса одговора и JSON корисног оптерећења. Код статуса HTTP одговора мора бити "200", "201", "202", "203", или "204" за захтеве који су успешно обрађени, други за неуспеле захтеве.

Пример успеха:

```json
localhost:8080/v1/history": HTTP/1.1 200 OK
Date: Wed, 11 Jan 2023 16:40:30 GMT
Content-Length: 0
```
Пример са грешкама:

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

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