Экспорт в файлы
Обзор
Можно настроить экспорт в реальном времени событий триггеров, значений элементов данных и трендов в формате 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}