Могуће је стримовати вредности ставки и догађаје са Zabbix-а на спољне системе преко HTTP-а (погледајте детаљи протокола).
Филтер ознака се може користити за стримовање подскупова вредности ставки или догађаја.
Два процеса Zabbix сервера су одговорна за стримовање података: менаџер конектора
и конекторски радник
. Zabbix интерна ставка zabbix[connector_queue]
омогућава праћење броја вредности у реду у реду конектора.
Следећи кораци су потребни за конфигурисање стримовања података на екстерни систем:
1. Подешавање удаљеног система за пријем података из Zabbix-а. У ту сврху, доступни су следећи алати:
events.ndjson
и history.ndjson
.2. Подесите потребан број конекторских радника у Zabbix-у подешавањем параметра StartConnectors
у zabbix_server.conf
. Број конекторских радника треба да се подудара (или да буде већи ако је број истовремених сесија већи од 1) са конфигурисаним бројем конектора у Zabbix корисничком интерфејсу. Затим, поново покрените Zabbix сервер.
3. Конфигуришите нови конектор у Zabbix корисничком интерфејсу (Администрација → Опште → Конектори) и поново учитајте кеш сервера помоћу команде zabbix_server -R config_cache_reload
.
Обавезна поља су означена звездицом.
Parameter | Description |
---|---|
* Name* | Унесите назив конектора. |
Data type | Изаберите тип података за стримовање: Вредности ставки - стримовање вредности ставки из Zabbix-а на екстерне системе; Догађаји - стримовање догађаја из Zabbix-а на екстерне системе. |
URL | Унесите URL пријемника. Кориснички макрои су подржани. |
Tag filter | Извезите само вредности ставки или догађаје који одговарају филтеру ознака. Ако није подешен, извезите све. Могуће је укључити, као и искључити одређене ознаке и вредности ознака. Може се подесити неколико услова. Подударање имена ознака је увек осетљиво на велика и мала слова. За сваки услов је доступно неколико оператора: Постоји - укључује наведене називе ознака; Једнако - укључује наведене називе и вредности ознака (разликује велика и мала слова); Садржи - укључује наведене називе ознака где вредности ознака садрже унети стринг (подударање подстринга, не разликује велика и мала слова); Не постоји - искључује наведене називе ознака; Није једнако - искључује наведене називе и вредности ознака (разликује велика и мала слова); Не садржи - искључује наведене називе ознака где вредности ознака садрже унети стринг (подударање подстринга, не разликује велика и мала слова). Постоје два типа израчунавања за услове: И/Или - сви услови морају бити испуњени, услови са истим називом ознаке биће груписани условом Или; Или - довољно ако је испуњен један услов. |
Type of information | Изаберите тип информација (нумеричке (непотписане), нумеричке (float), карактерне, итд.), помоћу којих се филтрирају вредности ставки које конектор треба да стримује. Ово поље је доступно ако је Тип података подешен на "Вредности ставки". |
HTTP аутентификација | Изаберите опцију аутентификације: Ниједан - аутентификација се не користи; Основна - користи се основна аутентификација; NTLM - користи се NTLM (Windows NT LAN Manager) аутентификација; Kerberos - користи се Kerberos аутентификација (погледајте такође: Конфигурисање Kerberos-а помоћу Zabbix-а); Digest - користи се Digest аутентификација; Bearer - користи се аутентификација носиоца. |
* Username* | Унесите корисничко име (до 255 знакова). Кориснички макрои су подржани. Ово поље је доступно ако је HTTP аутентификација подешена на "Основно", "NTLM", "Kerberos" или "Digest". |
* Password* | Унесите корисничку лозинку (до 255 знакова). Кориснички макрои су подржани. Ово поље је доступно ако је HTTP аутентификација подешена на "Основно", "NTLM", "Kerberos" или "Digest". |
Bearer token | Унесите токен носиоца. Кориснички макрои су подржани. Ово поље је доступно и обавезно ако је HTTP аутентификација подешена на "Носиоц". |
Advanced configuration | Кликните на ознаку Напредна конфигурација да бисте приказали напредне опције конфигурације (погледајте доле). |
Max records per message | Наведите максималан број вредности или догађаја који се могу стримовати у једној поруци. |
Concurrent sessions | Изаберите број процеса пошиљаоца који ће се покренути за овај конектор. Може се навести до 100 сесија; Подразумевана вредност је "1". |
* Attempts* | Број покушаја стримовања података. Може се навести до 5 покушаја; подразумевана вредност је "1". |
Attempt interval | Наведите колико дуго конектор треба да чека након неуспешног покушаја стримовања података. Може се навести до 10 секунди; Подразумевана вредност је "5s". Ово поље је доступно ако је Покушаји подешено на "2" или више. Неуспешни покушаји су они где успостављање везе није успело или где 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 секунди). Временски суфикси су подржани, нпр. 30s, 1m. Кориснички макрои су подржани. |
HTTP proxy | Можете навести HTTP прокси који ће се користити у следећем формату:[protocol://][username[:password]@]proxy.example.com[:port] Подржани су макрои корисника. Опционални префикс protocol:// може се користити за навођење алтернативних прокси протокола (подршка за префикс протокола је додата у cURL 7.21.7). Ако није наведен протокол, прокси ће се третирати као HTTP прокси. Подразумевано ће се користити порт 1080.Ако је наведен HTTP прокси, прокси ће преписати променљиве окружења повезане са проксијем као што су http_proxy , HTTPS_PROXY . Ако није наведен, прокси неће преписати променљиве окружења повезане са проксијем. Унета вредност се прослеђује каква јесте, не врши се провера исправности.Такође можете унети SOCKS адресу проксија. Ако наведете погрешан протокол, веза неће успети и ставка неће бити подржана. Имајте на уму да је само једноставна аутентификација подржана са HTTP проксијем. |
SSL verify peer | Означите поље за потврду да бисте верификовали SSL сертификат веб сервера. Сертификат сервера ће се аутоматски преузети са локације системског ауторитета за сертификате (CA). Можете заменити локацију CA датотека користећи параметре конфигурације Zabbix сервера или проксија SSLCALocation . |
SSL verify host | Означите поље за потврду да бисте верификовали да се поље Common Name или поље Subject Alternate Name сертификата веб сервера подудара. Ово подешава cURL опцију CURLOPT_SSL_VERIFYHOST . |
SSL certificate file | Име SSL датотеке сертификата која се користи за аутентификацију клијента. Датотека сертификата мора бити у PEM1 формату. Подржани су кориснички макрои. Ако датотека сертификата такође садржи приватни кључ, оставите поље SSL датотека кључа празно. Ако је кључ шифрован, наведите лозинку у пољу SSL лозинка кључа. Директоријум који садржи ову датотеку одређује Zabbix сервер или параметар конфигурације проксија SSLCertLocation . |
SSL key file | Назив SSL датотеке приватног кључа која се користи за аутентификацију клијента. Датотека приватног кључа мора бити у PEM1 формату. Подржани су кориснички макрои. Директоријум који садржи ову датотеку одређује Zabbix сервер или параметар конфигурације проксија SSLKeyLocation . |
SSL key password | Лозинка SSL датотеке приватног кључа. Кориснички макрои су подржани. |
* Description* | Унесите опис конектора. |
* Enabled* | Означите поље за потврду да бисте омогућили конектор. |
Комуникација између сервера и пријемника се обавља преко HTTP-а помоћу REST API-ја, NDJSON, "Content-Type: application/x-ndjson".
За више детаља погледајте Протокол за извоз 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}
Пример стримованих догађаја:
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}
Одговор се састоји од HTTP кода статуса одговора и JSON корисног оптерећења. Код статуса HTTP одговора мора бити "200", "201", "202", "203", или "204" за захтеве који су успешно обрађени, други за неуспеле захтеве.
Пример успеха:
Пример са грешкама: