Команда проверки icinga check_nwc_health возвращает параметр Unkown: но в cli команда работает

Я хочу написать тестовое/проверочное условие в icinga2, используя проверку check_nwc_health, чтобы получить некоторую информацию о состоянии электрической розетки avm dect 200, где предоставляется информация о состоянии подключения, включении питания, энергопотреблении и т. д. подключенного устройства (как и все, что вы могли бы подключите: телевизор, сервер, холодильник, стиральную машину, сушилку и т. д.).

Проверка почти готова, но не хватает одной мелочи, чтобы скрипт не мог отдать состояние только одного устройства с опцией --name. В оболочке cli он работает, и команда выглядит так:

https://labs.consol.de/assets/downloads/nagios/check_nwc_health-7.12.1.2.tar.gz

[icinga@centos7 icinga2]# /usr/lib64/nagios/plugins/check_nwc_health --hostname 10.10.10.3 --port 49000 --community 'Umligro:-)' --mode smart-home-device-status --name 'Wäschetrockner' --verbose
OK - device Wschetrockner ok
device Wschetrockner is connected and switched on

Вывод правильный с опцией --name.

Теперь конфиг icinga:

хост.конф:

object Host "fritzbox-7390.fritz.box" {
  check_command = "hostalive"
  address = "10.10.10.3"
  vars.os_type = "FritzOS"

  vars.avm_port = "49000"
  vars.avm_passwort = "Umligro:-)"
  vars.avm_mode_status = "smart-home-device-status"

  vars.avm_consumption_warning = "80"
  vars.avm_consumption_critical = "95"
}

command.conf:

object CheckCommand "check_fritzbox-7390" {
  import "plugin-check-command"
  command = [ PluginDir + "/check_nwc_health" ]

    "--hostname" = "$avm_host$"
    "--port" = "$avm_port$"
    "--community" = "$avm_passwort$"
    "--mode" = "$avm_mode$"

    "--name" = {
      value = "--name $avm_device_name$"
      description = "Name of smart home device"
      skip_key = true
      required = true
    }

    "--verbose" = ""
  }
}

services.conf:
apply Service "fritz-device-status-Geschirrspüler_Haus" {
  import "generic-service"

  check_command = "check_fritzbox-7390"

  vars.avm_host = "$address$"
  vars.avm_mode = "smart-home-device-status"
  vars.avm_device_name = "Geschirrspüler Haus"

  vars.avm_consumption_warning = "$nwc_health_warning$"
  vars.avm_consumption_critical = "$nwc_health_critical$"

  assign where host.vars.os_type == "FritzOS"
}

apply Service "fritz-device-status-Wäschetrockner" {
  import "generic-service"

  check_command = "check_fritzbox-7390"

  vars.avm_host = "$address$"
  vars.avm_mode = "smart-home-device-status"
  vars.avm_device_name = "Wäschetrockner"

  vars.avm_consumption_warning = "$nwc_health_warning$"
  vars.avm_consumption_critical = "$nwc_health_critical$"

  assign where host.vars.os_type == "FritzOS"
}

И вывод веб-интерфейса icinga выглядит так:

fritzbox-7390.fritz.box
fritz-device-status-Geschirrspüler_Haus
UNKNOWN 07-22-2020 15:25:34 0d 0h 35m 55s   1/5 (#0)    Unknown option: name Geschirrspüler Haus    
fritz-device-status-Wäschetrockner
UNKNOWN 07-22-2020 15:25:04 0d 0h 35m 55s   1/5 (#0)    Unknown option: name Wäschetrockner 
ping4
OK  07-22-2020 15:24:45 0d 1h 3m 1s 1/5 PING OK - Packet loss = 0%, RTA = 2.26 ms

Я сейчас на исходе своих знаний и нервов, и после примерно 6 часов поиска я должен отказаться от файлов отладки.

Пожалуйста, кто-нибудь может помочь мне с этой проблемой, может быть, это просто маленькая вещь, которую я упустил из виду.

С уважением, Крис


person Teddy2000    schedule 22.07.2020    source источник


Ответы (1)


Плагин, который вы используете, не принимает параметр --name, поэтому просто удалите его из конфигурации команды, и он должен работать.

Для справки: https://exchange.icinga.com/lausser/check_nwc_health

Также правильный синтаксис будет выглядеть так:

  "--name" = {
  value = "$avm_device_name$"
  description = "Name of smart home device"
}

Зачем пропускать ключ, а потом передавать сам ключ в аргументе? Команды справятся с этим.

person Christian    schedule 02.12.2020