[comment]: # translation:outdated

[comment]: # (tags: connector)

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

[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 корисничком интерфејсу.
Затим поново покрените Заббик сервер.

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

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

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

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