Экспорт в файлы

Обзор

Можно настроить экспорт в реальном времени событий триггеров, значений элементов данных и трендов в формате JSON, где каждый объект отделен новой строкой.

Экспорт выполняется в файлы, где каждая строка файла экспорта является объектом JSON. Преобразования значений не применяются.

В случае ошибок (данные не могут быть записаны в файл экспорта, файл экспорта не может быть переименован или после переименования не может быть создан новый файл), элемент данных отбрасывается и никогда не записывается в файл экспорта. Он записывается только в базу данных Zabbix. Запись данных в файл экспорта возобновляется, когда проблема с записью будет устранена.

Файл экспорта создается с правами на чтение и запись только для владельца файла. Кроме того, файл доступен для чтения группе владельца. Все остальные права запрещены.

Обратите внимание, что узел сети/элемент данных может не иметь метаданных (группы узлов сети, имя узла сети, имя элемента данных), если узел сети/элемент данных был удален после получения данных, но до того, как сервер экспортировал данные.

Конфигурация

Экспорт в реальном времени событий триггеров, значений элементов данных и трендов настраивается путем указания каталога для файлов экспорта — см. параметр ExportDir в конфигурации сервера.

Доступны еще два параметра:

  • ExportFileSize можно использовать для задания максимального допустимого размера отдельного файла экспорта. Когда процессу нужно записать данные в файл, он сначала проверяет размер файла. Если он превышает настроенный предел, файл переименовывается путем добавления к его имени суффикса .old, а новый файл с исходным именем создается заново.

Для каждого процесса, который будет записывать данные, будет создан отдельный файл (то есть примерно 4-30 файлов). Поскольку размер по умолчанию для файла экспорта составляет 1G, хранение больших файлов экспорта может быстро исчерпать дисковое пространство.

  • ExportType позволяет указать, какие типы сущностей (события, история, тренды) будут экспортироваться.

Протокол экспорта JSON с разделением по строкам

В этом разделе приведены сведения о протоколе экспорта в формате JSON с разделением по строкам, который используется в:

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

Экспорт события триггера

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

Field Type Description
clock number Количество секунд с начала эпохи на момент обнаружения проблемы (целая часть).
ns number Количество наносекунд, которое нужно добавить к clock, чтобы получить точное время обнаружения проблемы.
value number 1 (всегда).
eventid number ID события проблемы.
name string Имя события проблемы.
severity number Уровень серьезности события проблемы (0 - Не классифицировано, 1 - Информация, 2 - Предупреждение, 3 - Средняя, 4 - Высокая, 5 - Чрезвычайная).
hosts array Список узлов сети, участвующих в выражении триггера; в массиве должен быть как минимум один элемент.
- object
host string Имя узла сети.
name string Отображаемое имя узла сети.
groups array Список групп узлов сети для всех узлов сети, участвующих в выражении триггера; в массиве должен быть как минимум один элемент.
- string Имя группы узлов сети.
tags array Список тегов проблемы (может быть пустым).
- object
tag string Имя тега.
value string Значение тега (может быть пустым).

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

Field Type Description
clock number Количество секунд с начала эпохи на момент, когда проблема была решена (целая часть).
ns number Количество наносекунд, которое нужно добавить к clock, чтобы получить точное время устранения проблемы.
value number 0 (всегда).
eventid number ID события восстановления.
p_eventid number ID события проблемы.
Примеры экспорта событий триггера

Проблема:

{"clock":1519304285,"ns":123456789,"value":1,"name":"Either Zabbix agent is unreachable on Host B or pollers are too busy on Zabbix Server","severity":3,"eventid":42, "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"}]}

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

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

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

{"clock":1519304286,"ns":123456789,"value":1,"eventid":43,"name":"Either Zabbix agent is unreachable on Host B or pollers are too busy on Zabbix Server","severity":3,"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"}]}

{"clock":1519304286,"ns":123456789,"value":1,"eventid":43,"name":"Either Zabbix agent is unreachable on Host B or pollers are too busy on Zabbix Server","severity":3,"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"}]}

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

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

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

Экспорт значения элемента данных

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

Field Type Description
host object Имя узла сети элемента данных.
host string Имя узла сети.
name string Отображаемое имя узла сети.
groups array Список групп узлов сети элемента данных; в массиве должен быть как минимум один элемент.
- string Имя группы узлов сети.
item_tags array Список тегов элемента данных (может быть пустым).
- object
tag string Имя тега.
value string Значение тега (может быть пустым).
itemid number ID элемента данных.
name string Отображаемое имя элемента данных.
clock number Количество секунд с начала эпохи на момент, когда было собрано значение (целая часть).
ns number Количество наносекунд, которое нужно добавить к clock, чтобы получить точное время сбора значения.
timestamp
(Log only)
number 0, если недоступно.
source
(Log only)
string Пустая строка, если недоступно.
severity
(Log only)
number 0, если недоступно.
eventid
(Log only)
number 0, если недоступно.
value number (for numeric items) or
string (for text items)
Собранное значение элемента данных.
type number Тип собранного значения:
0 - numeric float, 1 - character, 2 - log, 3 - numeric unsigned, 4 - text, 5 - binary, 6 - JSON
Пример экспорта значения элемента данных

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

{"host":{"host":"Host B","name":"Host B visible"},"groups":["Group X","Group Y","Group Z"],"item_tags":[{"tag":"foo","value":"test"}],"itemid":3,"name":"Доступность агента","clock":1519304285,"ns":123456789,"value":1,"type":3}

Числовое значение (с плавающей запятой):

{"host":{"host":"Host B","name":"Host B visible"},"groups":["Group X","Group Y","Group Z"],"item_tags":[{"tag":"foo","value":"test"}],"itemid":4,"name":"Нагрузка на CPU","clock":1519304285,"ns":123456789,"value":0.1,"type":0}

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

{"host":{"host":"Host B","name":"Host B visible"},"groups":["Group X","Group Y","Group Z"],"item_tags":[{"tag":"foo","value":"test"}],"itemid":2,"name":"Версия агента","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"],"item_tags":[{"tag":"foo","value":"test"}],"itemid":1,"name":"Сообщения в файле журнала","clock":1519304285,"ns":123456789,"timestamp":1519304285,"source":"","severity":0,"eventid":0,"value":"сообщение файла журнала","type":2}

Экспорт трендов

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

Field Type Description
host object Имя узла сети элемента данных.
host string Имя узла сети.
name string Отображаемое имя узла сети.
groups array Список групп узлов сети элемента данных; в массиве должен быть как минимум один элемент.
- string Имя группы узлов сети.
item_tags array Список тегов элемента данных (может быть пустым).
- object
tag string Имя тега.
value string Значение тега (может быть пустым).
itemid number ID элемента данных.
name string Отображаемое имя элемента данных.
clock number Количество секунд с начала эпохи на момент, когда было собрано значение (целая часть).
count number Количество значений, собранных за данный час.
min number Минимальное значение элемента данных за данный час.
avg number Среднее значение элемента данных за данный час.
max number Максимальное значение элемента данных за данный час.
type number Тип значения:
0 - numeric float, 3 - numeric unsigned
Примеры экспорта трендов

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

{"host":{"host":"Host B","name":"Host B visible"},"groups":["Group X","Group Y","Group Z"],"item_tags":[{"tag":"foo","value":"test"}],"itemid":3,"name":"Agent availability","clock":1519311600,"count":60,"min":1,"avg":1,"max":1,"type":3}

Числовое значение (float):

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