Проблема с несколькими устройствами плагин telegraf nagios

#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. Спасибо за весь ваш вклад. У меня не было времени посмотреть на это снова до вчерашнего дня, но оно начало работать на следующий день после того, как я посмотрел на него в последний раз. Конфигурация и вывод команд остаются прежними. Я не уверен, что изменилось. Телеграф работал и раньше. Он регистрировал ошибку каждый раз, когда проводил опрос. Ваш первый ответ очень помог, хотя и решил мою первоначальную проблему 🙂