Только после отпуска заметил что моя конструкция описанная здесь не работает. Вернее работает только наполовину.
Мне нужно собрать данные по MODBUS с нескольких хостов (кВт/ч) и затем суммировать их.
Создал шаблон. В шаблоне Item для сбора данных выглядет следующим образом:
В шаблоне также есть ещё два элемента с данными (кВт/ч) и (кВт/ч за текущий месяц). Эти элементы имеют следующие теги:
Пользовательские макросы {$SENSOR_NUMMER} и {$CLIENT_NAME} я задаю непосредственно на хосте.
Так вот. Макрос {$SENSOR_NUMMER} работает. Номер датчика подставляется в конструкцию
корректно и этот Item в хосте получает корректные данные.
А вот макрос {$CLIENT_NAME} не срабатывает. При попытке суммировиния данных на хосте Zabbix-server по тегу AllEnergy_TEST (AllEnergy_{$CLIENT_NAME}) Zabbix пишет:
Cannot evaluate expression: no input data for function at "sum(last_foreach(/*/Energy.Active.[*]?[group="DTS_HF_Energy_PDUs" and tag="PDU_Client:AllEnergy_TEST"]))"
При этом если я вручную прописываю теги на соответствующих Item-ax самих хостов: AllEnergy_TEST. То суммирование на хосте Zabbix-server работает без проблем.
Пробовал в шаблоне менять тег таким образом чтобы тег состоял не из текста и макроса, а только из макроса:
не Tag: PDU_Client Value: AllEnergy_{$CLIENT_NAME}, а что-то вроде: Tag: PDU_Client Value: {$AllEnergy_CLIENT_NAME}. Но это тоже не работает.
Теперь два вопроса:
1. Пользовательские макросы вроде бы можно использовать в тегах Item-ов или я документацию неправильно понимаю?
2. Как посмотреть во что разворачивается макрос. Я имею ввиду посмотреть что подставляет макрос. Иначе приходиться по каким-то косвенным показателям (типа суммировиние данных на хосте Zabbix-server) вычислять что-же макрос подставил в тот или иной элемент.
Zabbix 7.0
Мне нужно собрать данные по MODBUS с нескольких хостов (кВт/ч) и затем суммировать их.
Создал шаблон. В шаблоне Item для сбора данных выглядет следующим образом:
Code:
modbus.get[tcp://10.34.230.101:502,{$SENSOR_NUMMER},3,512,1,uint64, mle,0]
Code:
Tag: PDU_Client Value: AllEnergy_{$CLIENT_NAME} и
Tag: PDU_Client Value: EnergyCurrentMonth_{$CLIENT_NAME}
Так вот. Макрос {$SENSOR_NUMMER} работает. Номер датчика подставляется в конструкцию
Code:
modbus.get[tcp://10.34.230.101:502,{$SENSOR_NUMMER},3,512,1,uint64, mle,0
А вот макрос {$CLIENT_NAME} не срабатывает. При попытке суммировиния данных на хосте Zabbix-server по тегу AllEnergy_TEST (AllEnergy_{$CLIENT_NAME}) Zabbix пишет:
Cannot evaluate expression: no input data for function at "sum(last_foreach(/*/Energy.Active.[*]?[group="DTS_HF_Energy_PDUs" and tag="PDU_Client:AllEnergy_TEST"]))"
При этом если я вручную прописываю теги на соответствующих Item-ax самих хостов: AllEnergy_TEST. То суммирование на хосте Zabbix-server работает без проблем.
Пробовал в шаблоне менять тег таким образом чтобы тег состоял не из текста и макроса, а только из макроса:
не Tag: PDU_Client Value: AllEnergy_{$CLIENT_NAME}, а что-то вроде: Tag: PDU_Client Value: {$AllEnergy_CLIENT_NAME}. Но это тоже не работает.
Теперь два вопроса:
1. Пользовательские макросы вроде бы можно использовать в тегах Item-ов или я документацию неправильно понимаю?
2. Как посмотреть во что разворачивается макрос. Я имею ввиду посмотреть что подставляет макрос. Иначе приходиться по каким-то косвенным показателям (типа суммировиние данных на хосте Zabbix-server) вычислять что-же макрос подставил в тот или иной элемент.
Zabbix 7.0

Comment