Ова секција пружа детаље о пасивним и активним проверама које врши Zabbix агент и Zabbix агент 2.
Zabbix користи комуникациони протокол заснован на JSON-у за комуникацију са агентима.
Zabbix агент и Zabbix агент 2 протоколи су уједињени од Zabbix 7.0 верзије. Разлика између захтева/одговора Zabbix агента и Zabbix агента 2 изражена је вредношћу ознаке "варијанта".
Пасивна провера је једноставан захтев за подацима. Zabbix сервер или прокси тражи неке податке (на пример, оптерећење процесора) и Zabbix агент шаље назад резултат серверу.
Пасивне провере се извршавају асинхроно – није потребно примити одговор на један захтев пре него што се започну друге провере. DNS решавање је такође асинхроно.
Максимална истовременост асинхроних провера је 1000 (дефинисано од стране MaxConcurrentChecksPerPoller).
Број анкетара асинхроног агента је дефинисан параметром StartAgentPollers.
Захтев сервера
За дефиницију заглавља и дужине података погледајте детаље протокола.
Одговор агента
На пример, за подржане ставке:
За неподржане ставке:
Да бисте били сигурни да Zabbix сервер или прокси могу да раде са агентима из верзија пре 7.0, који имају протокол отвореног текста, имплементирано је пребацивање на стари протокол.
Пасивне провере се врше коришћењем JSON протокола (7.0 и новије верзије) након поновног покретања или када се промени конфигурација интерфејса. Ако се не прими важећи JSON као одговор (агент је послао "ZBX_NOTSUPPORTED"), Zabbix ће кеширати интерфејс као стари протокол и поново покушати проверу слањем само кључа ставке.
Имајте на уму да ће сваког сата Zabbix сервер/прокси поново покушати да ради са новим протоколом са свим интерфејсима, враћајући се на стари протокол ако је потребно.
Активне провере захтевају сложенију обраду. Агент прво мора да преузме са сервера/проксија листу ставки и/или удаљених команди за независну обраду.
Сервери/проксији са којих се преузимају активне провере су наведени у параметру 'ServerActive' агента конфигурациона датотека. Учесталост тражења ових провера је постављена параметром 'RefreshActiveChecks' у истој конфигурационој датотеци. Међутим, ако освежавање активних провера не успе, поново се покушава након фиксног интервала од 60 секунди.
Од Zabbix 6.4, агент (у активном режиму) више не прима од сервера/проксија пуну копију конфигурације једном на свака два минута (подразумевано). Уместо тога, да би се смањио мрежни саобраћај и коришћење ресурса, инкрементална синхронизација конфигурације се обавља сваких 5 секунди (подразумевано) након чега сервер/прокси пружа пуну копију конфигурације само ако је агент још није примио , или се нешто променило у конфигурацији домаћина, глобалним макроима или глобалним регуларним изразима.
Агент затим периодично шаље нове вредности серверу(има). Ако је агент примио било које даљинске команде за извршење, биће послат и резултат извршења. Имајте на уму да је даљинско извршавање команди на активном агенту подржано од Zabbix агента 7.0.
Ако се агент налази иза заштитног зида, можете размотрити коришћење само активних провера, јер у том случају не бисте морали да мењате поставке заштитног зида како бисте дозволили почетне долазне везе.
Захтев агента
Захтев за активне провере се користи за добијање активних провера које треба да обради агент. Овај захтев шаље агент при покретању, а затим у интервалима RefreshActiveChecks.
{
"request": "active checks",
"host": "Zabbix server",
"host_metadata": "mysql,nginx",
"hostinterface": "zabbix.server.lan",
"ip": "159.168.1.1",
"port": 12050,
"version": "7.0.0",
"variant": 2,
"config_revision": 1,
"session": "e3dcbd9ace2c9694e1d7bbd030eeef6e"
}
Field | Type | Mandatory | Value |
---|---|---|---|
request | string | да | active checks |
host | string | да | Име домаћина. |
host_metadata | string | не | Вредност метрике конфигурационог параметра HostMetadata или HostMetadataItem. |
hostinterface | string | не | Конфигурациони параметар HostInterface или HostInterfaceItem метричка вредност. |
ip | string | не | Конфигурациони параметар ListenIP први IP ако је подешен. |
port | number | не | Вредност конфигурационог параметра ListenPort ако је подешен и није подразумевани порт за слушање агента. |
version | string | да | Број верзије агента. |
variant | number | да | Варијанта агента (1 - Zabbix агент, 2 - Zabbix агент 2). |
config_revision | number | не | Идентификатор конфигурације за [инкременталну синхронизацију конфигурације] (#active-checks). |
session | string | не | Идентификатор сесије за [инкременталну синхронизацију конфигурације] (#active-checks). |
Одговор сервера
Одговор на активне провере сервер шаље назад агенту након обраде захтева за активне провере.
{
"response": "success",
"config_revision": 2,
"data": [
{
"key": "system.uptime",
"itemid": 1234,
"delay": "10s",
"lastlogsize": 0,
"mtime": 0
},
{
"key": "agent.version",
"itemid": 5678,
"delay": "10m",
"lastlogsize": 0,
"mtime": 0,
"timeout": "30s"
}
],
"commands": [
{
"command": "df -h --output=source,size / | awk 'NR>1 {print $2}'",
"id": 1324,
"wait": 1
}
]
}
Field | Type | Mandatory | Value | |
---|---|---|---|---|
response | string | да | success | failed |
|
info | string | не | Информације о грешци у случају квара. | |
data | array of objects | не | Активне ставке за проверу. Изостављено ако је конфигурација домаћина непромењена. | |
key | string | не | Кључ ставке са проширеним макроима. | |
itemid | number | не | Идентификатор ставке. | |
delay | string | не | Интервал ажурирања ставки.<бр>Флексибилне/заказане интервале подржавају и Zabbix агент и Zabbix агент 2 од Zabbix-а 7.0. | |
lastlogsize | number | не | Ставка lastlogsize. | |
mtime | number | не | Ставка mtime. | |
timeout | string | не | Временско ограничење ставке. | |
refresh_unsupported | number | не | Неподржани интервал освежавања ставке. | |
regexp | array of objects | не | Глобални регуларни изрази. | |
name | string | не | Назив глобалног регуларног израза. | |
name | string | не | Глобални регуларни израз. | |
expression | string | не | Глобални тип регуларног израза. | |
exp_delimiter | string | не | Глобални делимитер регуларног израза. | |
ase_sensitive | number | не | Глобални регуларни израз осетљивости на велика и мала слова. | |
commands | array of objects | не | Даљинске команде за извршење. Укључено ако је даљинско извршење команде покренуто акцијом операција или ручним извршавањем скрипт. Имајте на уму да је даљинско извршавање команде на активном агенту подржано од Zabbix агента 7.0. Старији активни агенти ће игнорисати све удаљене команде укључене у одговор сервера активних провера. | |
command | string | не | Даљинска команда. | |
id | number | не | Идентификатор удаљене команде. | |
wait | number | не | Режим извршавања даљинске команде ("0" (nowait) за команде из акције операције; "1" (wait) за команде из ручне скрипте извршење). | |
config_revision | number | не | Идентификатор конфигурације за [инкременталну синхронизацију конфигурације] (#active-checks). Изостављено ако је конфигурација домаћина непромењена. Повећава се ако се конфигурација домаћина промени. |
Сервер мора успешно одговорити.
На пример:
Имајте на уму да (осетљиви) конфигурациони подаци могу да постану доступни странама које имају приступ trapper-у Zabbix сервера порт када користите активну проверу. Ово је могуће јер свако може може да се претвара да је активни агент и захтева податке о конфигурацији ставке; аутентификација се не одвија осим ако не користите опције шифровање.
Агент шаље
Захтев са подацима агента садржи прикупљене вредности ставки и вредности за извршене удаљене команде (ако их има).
{
"request": "agent data",
"data": [
{
"id": 1,
"itemid": 5678,
"value": "7.0.0",
"clock": 1712830783,
"ns": 76808644
},
{
"id": 2,
"itemid": 1234,
"value": "69672",
"clock": 1712830783,
"ns": 77053975
}
],
"commands": [
{
"id": 1324,
"value": "16G"
}
],
"session": "1234456akdsjhfoui",
"host": "Zabbix server",
"version": "7.0.0",
"variant": 2
}
Field | Type | Mandatory | Value | |
---|---|---|---|---|
request | string | yes | agent data |
|
data | array of objects | yes | Item values. | |
id | number | yes | Идентификатор вредности (инкрементални бројач који се користи за проверу дуплираних вредности у случају проблема са мрежом). | |
itemid | string | yes | Идентификатор ставке. | |
value | string | no | Вредност ставке. | |
lastlogsize | number | no | Ставка lastlogsize. | |
mtime | number | no | Ставка mtime. | |
state | number | no | Стање ставке. | |
source | string | no | Извор евиденције вредности догађаја. | |
eventid | number | no | Евиденција догађаја вредности eventid. | |
severity | number | no | Озбиљност дневника догађаја вредности. | |
timestamp | number | no | Временска ознака евиденције догађаја вредности. | |
clock | number | yes | Временска ознака вредности (секунде од Епохе). | |
ns | number | yes | Временска ознака вредности наносекунди. | |
commands | array of objects | no | Резултат извршавања даљинских команди. Имајте на уму да је даљинско извршавање команде на активном агенту подржано од Zabbix агента 7.0. Старији активни агенти ће игнорисати све удаљене команде укључене у одговор сервера активних провера. | |
id | number | no | Идентификатор удаљене команде. | |
value | string | no | Резултат даљинског извршавања команде ако је извршење било успешно. | |
error | string | no | Порука о грешци при извршавању даљинске команде ако извршење није успело. | |
session | string | yes | Јединствени идентификатор сесије који се генерише сваки пут када се агент покрене. | |
host | string | yes | Име домаћина. | |
version | string | yes | Број верзије агента. | |
ariant | number | yes | Варијанта агента (1 - Zabbix агент, 2 - Zabbix агент 2). |
Свакој вредности се додељује виртуелни ID. ID вредности је једноставни узлазни бројач, јединствен у оквиру једне сесије података (идентификован сесијом токен). Овај ID се користи за одбацивање дупликата вредности које би могле бити послате у окружењима са лошом везом.
Одговор сервера
Одговор на податке агента шаље сервер назад агенту након обраде захтева за податке агента.
Field | Type | Mandatory | Value |
---|---|---|---|
response | string | yes | success | failed |
info | string | yes | Резултати обраде ставке. |
Ако слање неких вредности не успе на серверу ( на пример, зато што су домаћин или ставка онемогућени или избрисани), агент неће покушавати поново да пошаље те вредности.
на пример:
Обратите пажњу на то како у примеру изнад није подржан статус за vfs.fs.size[/nono] означава вредност "стање" 1 и порука о грешци у својству "вредност".
Порука о грешци ће бити скраћена на 2048 симбола на страни сервера.
Поруку откуцаја срца шаље активни агент ZabbixHeartbeatFrequency серверу/проксију сваких HeartbeatFrequency секунди (конфигурисано у Zabbix агенту/ agent 2 конфигурационој датотеци).
Користи се за праћење доступности активних провера.
{
"request": "active check heartbeat",
"host": "Zabbix server",
"heartbeat_freq": 60,
"version": "7.0.0",
"variant": 2
}
Field | Type | Mandatory | Value |
---|---|---|---|
request | string | да | active check heartbeat |
host | string | да | Име домаћина. |
heartbeat_freq | number | да | Фреквенција heartbeat-а откуцаја агента (параметар конфигурације HeartbeatFrequency). |
version | string | да | Број верзије агента. |
variant | number | да | Варијанта агента (1 - Zabbix агент, 2 - Zabbix агент 2). |
Zabbix ће заузети до 16 MB XML Base64 кодираних података, али појединачна декодирана вредност не би требало да буде дужа од 64 KB, иначе ће бити скраћен на 64 KB током декодирања.