#telegraf #influxdb-2 #telegraf-inputs-plugin
Вопрос:
Я пытаюсь добавить несколько хостов (UPSS) для мониторинга заряда батареи, состояния инвертора, входного напряжения и т. Д. Я уже несколько часов пытаюсь заставить это работать. Итак, скрипты Nagios, похоже, работают нормально, и по крайней мере некоторые данные регистрируются в базе данных influxdb. Однако при попытке просмотреть данные из обозревателя данных на веб-странице, похоже, не сохраняются сведения об отдельных узлах. У меня также есть отдельные конфигурации, такие же, как показано ниже, но только с одним хостом в каждом файле конфигурации, но, похоже, это не имеет значения. Все файлы конфигурации хранят данные в одном и том же контейнере. Сделал скриншот запроса и возвращенных данных, так как я не мог скопировать/вставить и все еще быть разборчивым.
Это моя конфигурация:
[[inputs.exec]]
timeout = "5s"
commands = [
"/usr/local/nagios/libexec/custom-plugins/check_ups_temperature -H 192.168.x.x -o 1.3.6.1.2.1.33.1.2.7.0 -v1 -C public -w 28 -c 31",
"/usr/local/nagios/libexec/custom-plugins/check_ups_temperature -H 192.168.x.x -o 1.3.6.1.2.1.33.1.2.7.0 -v1 -C public -w 28 -c 31",
"/usr/local/nagios/libexec/custom-plugins/check_ups_temperature -H 192.168.x.x -o 1.3.6.1.2.1.33.1.2.7.0 -v1 -C public -w 28 -c 31",
"/usr/local/nagios/libexec/custom-plugins/check_ups_temperature -H 192.168.x.x -o 1.3.6.1.2.1.33.1.2.7.0 -v1 -C public -w 28 -c 31"
]
name_suffix = "_ups_temp"
data_format = "nagios"
[[outputs.influxdb_v2]]
urls = ["http://192.168.x.x:8086"]
token = "--token--"
organization = "--org--"
bucket = "UPS"
Любые указатели будут весьма признательны.
Ответ №1:
Я бы попробовал создать несколько конфигураций [[inputs.exec]] с разными именами: suffix = «_ups_tempXX», где XX что-то, что могло бы идентифицировать исходное устройство. Он будет помещать данные в различные измерения. Другой способ-добавить ключи тегов в конфигурацию telegraf exec. Список имен тегов, которые нужно извлечь из ответа сервера JSON верхнего уровня: tag_keys = [ «my_tag_1», «my_tag_2»]
Но в этом случае вам нужно будет обновить свой ответ exec, отправив также значения ключей тегов. В качестве ключа тега вы можете использовать IP-адрес устройства или что-то такое, что позволит вам легко фильтровать данные из всех источников. Я нашел несколько старых документов, это может быть полезно для вас: https://archive.docs.influxdata.com/telegraf/v1.3/concepts/data_formats_input/
Комментарии:
1. Большое спасибо за ваш вклад. Я уже пробовал использовать теги раньше, но получал ошибку при использовании ввода Nagios. Я попробовал как индивидуальную конфигурацию, так и маршрут JSON с тегами, и мне удалось заставить их работать. У меня действительно есть эта ошибка в журналах, хотя данные, похоже, были опрошены правильно:
2.
[inputs.exec] Error in plugin: must be an object or an array of objects
Конфигурация и вывод здесь: pastebin.com/CAAXg6Hw Пробовали как в качестве объекта выше, так и в качестве массива (добавление [] в начале/конце. Я все еще получаю ошибку. Насколько я могу судить, это действительный json. Что-нибудь очевидное, чего мне не хватает? Еще раз спасибо!3. Это говорит о том, что у вас есть ошибка в файле конфигурации, точнее, во входных данных плагина.exec. В этом случае я бы попробовал отредактировать файл clean telegraf.conf небольшими шагами, чтобы понять, в чем причина этой проблемы. В вашей конфигурации могут быть даже проблемы с белыми символами. Мне всегда было сложно, когда при анализе конфигурации возникали проблемы.
4. В первую очередь, вы должны использовать команду systemctl status telegraf, чтобы проверить, запускается ли хотя бы Telegraf. Если он показывает состояние, отличное от запущенного, вам следует проверить файл conf. В этом случае ничего общего с вашим кодом не требуется.
5. Спасибо за весь ваш вклад. У меня не было времени посмотреть на это снова до вчерашнего дня, но оно начало работать на следующий день после того, как я посмотрел на него в последний раз. Конфигурация и вывод команд остаются прежними. Я не уверен, что изменилось. Телеграф работал и раньше. Он регистрировал ошибку каждый раз, когда проводил опрос. Ваш первый ответ очень помог, хотя и решил мою первоначальную проблему 🙂