Доброе время суток!
Из скрипта заполняем базу данных zabbix - пишем историю. За один сеанс - один пакет данных, состоящий из нескольких записей. Пакет переменной длины.
Т.е. в пакете может быть 5 записей или 300 записей или 1 запись или вообще ни одной.
Структура записи - это 3 поля: Дата-время(текст), предмет(текст), его количество(число).
Вопрос - как грамотно это реализовать, максимально просто?
;
Что предпринималось:
1. Через UserParameters - основной элемент данных в JSON и три зависимых элемента.
Для основного элемента все хорошо - доступно любое количество записей, для зависимых - парсится только первая запись, а как достать остальные - непонятки.
2. Использование Zabbix API - попробовал библиотеку py-zabbix от a.dubkov. Созданы три траппер элемента данных.
from pyzabbix import ZabbixMetric, ZabbixSender
# Send metrics to zabbix trapper
packet = [
ZabbixMetric('hostname1', 'Datetime', '09.05.2021 15:21:16'),
ZabbixMetric('hostname1', 'thing', 'table'),
ZabbixMetric('hostname1', 'count', 5)
]
result = ZabbixSender(use_config=True).send(packet)
Здесь в чем проблема? C одним packet все отлично. С двумя разными packet, которые в цикле for, в history попадает только выполнявшийся последним,
хотя и по первому выполнявшемуся, и по второму выполнявшемуся result отличный - оба выполнены без ошибок с одним chunk. Но в history присутствует дважды(!!) только последний
packet. Понятно, что я что-то не знаю в Zabbix )). Наверное, дело в chunk, но где он регулируется в Zabbix? Тестирую в Zabbix 5.2 на Ubuntu 20.4
Из скрипта заполняем базу данных zabbix - пишем историю. За один сеанс - один пакет данных, состоящий из нескольких записей. Пакет переменной длины.
Т.е. в пакете может быть 5 записей или 300 записей или 1 запись или вообще ни одной.
Структура записи - это 3 поля: Дата-время(текст), предмет(текст), его количество(число).
Вопрос - как грамотно это реализовать, максимально просто?
;
Что предпринималось:
1. Через UserParameters - основной элемент данных в JSON и три зависимых элемента.
Для основного элемента все хорошо - доступно любое количество записей, для зависимых - парсится только первая запись, а как достать остальные - непонятки.
2. Использование Zabbix API - попробовал библиотеку py-zabbix от a.dubkov. Созданы три траппер элемента данных.
from pyzabbix import ZabbixMetric, ZabbixSender
# Send metrics to zabbix trapper
packet = [
ZabbixMetric('hostname1', 'Datetime', '09.05.2021 15:21:16'),
ZabbixMetric('hostname1', 'thing', 'table'),
ZabbixMetric('hostname1', 'count', 5)
]
result = ZabbixSender(use_config=True).send(packet)
Здесь в чем проблема? C одним packet все отлично. С двумя разными packet, которые в цикле for, в history попадает только выполнявшийся последним,
хотя и по первому выполнявшемуся, и по второму выполнявшемуся result отличный - оба выполнены без ошибок с одним chunk. Но в history присутствует дважды(!!) только последний
packet. Понятно, что я что-то не знаю в Zabbix )). Наверное, дело в chunk, но где он регулируется в Zabbix? Тестирую в Zabbix 5.2 на Ubuntu 20.4
Comment