# 5 Протокол экспорта в режиме реального времени

В этом разделе представлены детали реализации протокола [экспорта в
режиме реального времени](/ru/manual/appendix/install/real_time_export)
в JSON формате с разделение новой строкой для:

-   [событий на триггеры](#события_на_триггеры)
-   [значений элементов данных](#значения_элементов_данных)
-   [динамики изменений](#динамика_изменений)

Все файлы с .ndjson расширением. Каждая строка файла экспорта является
JSON объектом.

#### События на триггера

Следующая информация экспортируется по событию на проблему:

|Поле|<|<|Тип|Описание|
|--------|-|-|------|----------------|
|*hosts*|<|<|массив|Список узлов сети, которые указаны в выражении триггера; должен быть по крайней мере один элемент в массиве.|
|<|\-|<|объект|<|
|<|<|*host*|строка|Имя узла сети.|
|<|<|*name*|строка|Видимое имя узла сети.|
|*groups*|<|<|массив|Список групп узлов сети всех узлов сети, которые указаны в выражении триггера; должен быть по крайней мере один элемент в массив.|
|<|\-|<|строка|Имя группы узлов сети.|
|*tags*|<|<|массив|Список тегов проблемы (может быть пустым).|
|<|\-|<|объект|<|
|<|<|*тег*|строка|Имя тега.|
|<|<|*значение*|строка|Значение тега (может быть пустым).|
|*name*|<|<|строка|Имя события о проблеме.|
|*clock*|<|<|число|Количество секунд начиная с Эпохи к моменту, когда произошло определение проблемы (целочисленная часть).|
|*ns*|<|<|число|Количество наносекунд, которое добавляется к `clock`, чтобы получить более точное время определения проблемы.|
|*eventid*|<|<|число|ID события о проблеме.|
|*value*|<|<|число|1 (всегда).|

Следующая информация экспортируется по событию на восстановление:

|Поле|<|<|Тип|Описание|
|--------|-|-|------|----------------|
|*clock*|число|Количество секунд начиная с Эпохи к моменту, когда проблема была решена (целочисленная часть).|<|<|
|*ns*|число|Количество наносекунд, которое добавляется к `clock`, чтобы получить более точное время решения проблемы.|<|<|
|*eventid*|число|ID события о восстановлении.|<|<|
|*p\_eventid*|число|ID события о проблеме.|<|<|
|*value*|число|0 (всегда).|<|<|

##### Примеры

Проблема:

    {"hosts":[{"host":"Host B", "name":"Host B visible"},{"host":"Zabbix Server","name":"Zabbix Server visible"}],"groups":["Group X","Group Y","Group Z","Zabbix servers"],"tags":[{"tag":"availability","value":""},{"tag":"data center","value":"Riga"}],"name":"Either Zabbix agent is unreachable on Host B or pollers are too busy on Zabbix Server","clock":1519304285,"ns":123456789,"eventid":42, "value":1}

Восстановление:

    {"clock":1519304345,"ns":987654321,"eventid":43,"p_eventid":42,"value":0}

Проблемы (генерация нескольких событий о проблемах):

    {"hosts":[{"host":"Host B", "name":"Host B visible"},{"host":"Zabbix Server","name":"Zabbix Server visible"}],"groups":["Group X","Group Y","Group Z","Zabbix servers"],"tags":[{"tag":"availability","value":""},{"tag":"data center","value":"Riga"}],"name":"Either Zabbix agent is unreachable on Host B or pollers are too busy on Zabbix Server","clock":1519304286,"ns":123456789,"eventid":43, "value":1}

    {"hosts":[{"host":"Host B", "name":"Host B visible"},{"host":"Zabbix Server","name":"Zabbix Server visible"}],"groups":["Group X","Group Y","Group Z","Zabbix servers"],"tags":[{"tag":"availability","value":""},{"tag":"data center","value":"Riga"}],"name":"Either Zabbix agent is unreachable on Host B or pollers are too busy on Zabbix Server","clock":1519304286,"ns":123456789,"eventid":43, "value":1}

Восстановление:

    {"clock":1519304346,"ns":987654321,"eventid":44,"p_eventid":43,"value":0}

    {"clock":1519304346,"ns":987654321,"eventid":44,"p_eventid":42,"value":0}

#### Значения элементов данных

Следующая информация экспортируется по собранному значению элемента
данных:

|Поле|<|Тип|Описание|
|--------|-|------|----------------|
|*host*|<|объект|Имя узла, которому принадлежит элемент данных.|
|<|host|строка|Имя узла сети.|
|<|name|строка|Видимое имя узла сети.|
|*groups*|<|массив|Список групп узлов сети, которым принадлежит узел сети элемента данных; должен быть по крайней мере один элемент в массиве.|
|<|\-|строка|Имя группы узлов сети.|
|*applications*|<|массив|Список групп элементов данных элемента данных; пусто, если отсутствуют.|
|<|\-|строка|Имя группы элементов данных.|
|*itemid*|<|число|ID элемента данных.|
|*name*|<|строка|Видимое имя элемента данных.|
|*clock*|<|число|Количество секунд начиная с Эпохи к моменту, когда значение было собрано (целочисленная часть).|
|*ns*|<|число|Количество наносекунд, которое добавляется к `clock`, чтобы получить более точное время сбора значения.|
|*timestamp*<br>(только *Журнал (лог)*)|<|число|0 если недоступно.|
|*source*<br>(только *Журнал (лог)*)|<|строка|Пустая строка если недоступно.|
|*severity*<br>(только *Журнал (лог)*)|<|число|0 если недоступно.|
|*eventid*<br>(только *Журнал (лог)*)|<|число|0 если недоступно.|
|*value*|<|число (для числовых элементов данных) или<br>строка (для текстовых элементов данных)|Собранное значение элемента данных.|
|*type*|<|число|Тип собранного значения:<br>0 - числовое с дробной точкой, 1 - символ, 2 - журнал (лог), 3 - целое положительное, 4 - текст|

##### Примеры

Числовое (целое положительное) значение:

    {"host":{"host":"Host B","name":"Host B visible"},"groups":["Group X","Group Y","Group Z"],"applications":["Zabbix Agent","Availability"],"itemid":3,"name":"Agent availability","clock":1519304285,"ns":123456789,"value":1,"type":3}

Числовое (дробное) значение:

    {"host":{"host":"Host B","name":"Host B visible"},"groups":["Group X","Group Y","Group Z"],"applications":["CPU","Performance"],"itemid":4,"name":"CPU Load","clock":1519304285,"ns":123456789,"value":"0.1","type":0}

Символьное значение, текстовое значение:

    {"host":{"host":"Host B","name":"Host B visible"},"groups":["Group X","Group Y","Group Z"],"applications":["Zabbix Agent","Installed software versions"],"itemid":2,"name":"Agent version","clock":1519304285,"ns":123456789,"value":"3.4.4","type":4}

Значение журнала (лога):

    {"host":{"host":"Host A","name":"Host A visible"},"groups":["Group X","Group Y","Group Z"],"applications":["Log files","Critical"],"itemid":1,"name":"Messages in log file","clock":1519304285,"ns":123456789,"timestamp":1519304285,"source":"","severity":0,"eventid":0,"value":"log file message","type":2}

#### Динамика изменений

Следующая информация экспортируется по вычисленному значению динамики
изменений:

|Поле|<|Тип|Описание|
|--------|-|------|----------------|
|*host*|<|объект|Имя узла сети, которому принадлежит элемент данных.|
|<|host|строка|Имя узла сети.|
|<|name|строка|Видимое имя узла сети.|
|*groups*|<|массив|Список групп узлов сети, которым принадлежит узел сети элемента данных; должен быть по крайней мере один элемент в массиве.|
|<|\-|строка|Имя группы узлов сети.|
|*applications*|<|массив|Список групп элементов данных элемента данных; пусто, если отсутствуют.|
|<|\-|строка|Имя группы элементов данных.|
|*itemid*|<|число|ID элемента данных.|
|*name*|<|строка|Видимое имя элемента данных.|
|*clock*|<|число|Количество секунд с начала Эпохи к моменту, когда значение было собрано (целочисленная часть).|
|*count*|<|число|Количество значений, которые были собраны за данный час.|
|*min*|<|число|Минимальное значение элемента данных за данный час.|
|*avg*|<|число|Среднее значение элемента данных за данный час.|
|*max*|<|число|Максимальное значение элемента данных за данный час.|
|*type*|<|число|Тип значения:<br>0 - числовое с дробной точкой, 3 - целое положительное|

##### Примеры

Числовое (целое положительное) значение:

    {"host":{"host":"Host B","name":"Host B visible"},"groups":["Group X","Group Y","Group Z"],"applications":["Zabbix Agent","Availability"],"itemid":3,"name":"Agent availability","clock":1519311600,"count":60,"min":1,"avg":1,"max":1,"type":3}

Числовое (дробное) значение:

    {"host":{"host":"Host B","name":"Host B visible"},"groups":["Group X","Group Y","Group Z"],"applications":["CPU","Performance"],"itemid":4,"name":"CPU Load","clock":1519311600,"count":60,"min":0.01,"avg":0.15,"max":1.5,"type":0}
