简体   繁体   English

icinga 检查命令 check_nwc_health 返回“未知选项:”但在 cli 中该命令有效

[英]icinga check command check_nwc_health returns “Unkown option:” but at cli the command works

i want to write a test / check condition in icinga2 using the check_nwc_health check to get some status infos of avm dect 200 electricity socket where gives informations about state of connection, power on, energy consumption etc, of the connected device (like everything you could plug in: tv, server, fridge, washing machine, dryer etc.).我想使用 check_nwc_health 检查在 icinga2 中编写测试/检查条件,以获取 avm dect 200 电源插座的一些状态信息,其中提供有关 state 连接设备的信息,开机,能耗等(就像你可以做的一切一样插入:电视、服务器、冰箱、洗衣机、烘干机等)。

The check is nearly ready, but one little thing is missing, so that the script can't give the state of only one device with the option --name.检查几乎准备就绪,但缺少一点东西,因此脚本无法仅提供一个带有选项 --name 的设备的 state。 On the shell cli it is working an the command goes like this:在 shell cli 上,它正在运行,命令如下:

https://labs.consol.de/assets/downloads/nagios/check_nwc_health-7.12.1.2.tar.gz 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

The output is correct with the --name option. output 使用 --name 选项是正确的。

Now the icinga config:现在 icinga 配置:

host.conf:主机配置:

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"
}

commands.conf:命令.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"
}

And the icinga web interface output looks like this:而 icinga web 接口 output 看起来像这样:

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

I am now at the end of my knowledge and my nerves and after about 6 hours of searching I have to give up on the debug files.现在,我的知识和神经已经耗尽,经过大约 6 个小时的搜索,我不得不放弃调试文件。

Please someone can help me with this problem, maybe it is just a small thing that I have overlooked.请有人可以帮助我解决这个问题,也许这只是我忽略的一件小事。

Best regards, Chris最好的问候,克里斯

The plugin you are using does not accept "--name" parameter, so just remove it from command config and it should work.您使用的插件不接受“--name”参数,因此只需将其从命令配置中删除即可。

For reference: https://exchange.icinga.com/lausser/check_nwc_health供参考: https://exchange.icinga.com/lausser/check_nwc_health

Also the correct syntax would look like:正确的语法也如下所示:

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

Why to skip the key and then pass the key itself in the argument?为什么要跳过密钥然后在参数中传递密钥本身? Commands will handle this.命令将处理这个问题。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM