我对nagios非常陌生,并试图得到一个自定义的命令来弯曲我的意志。
我已经查看了各种示例,并且找不到任何追加$ HOSTADDRESS $macros的任何人,所以也许我必须去讨论这个不同的路由,但是我需要的是将一个parameter passing给命令,如下所示:
HOST_ADDRESS/StatusCheck?auth=secretKey
这是一个可用的例子(只有一个主机)
define service { use generic-service hostgroup_name my-hostgroup service_description my custom check check_command check_custom_status!http://example.com/StatusCheck?auth=secretKey }
显然,这对我来说不起作用,因为它只检查一个主机(在这种情况下是example.com)。
这是一个不起作用的例子,但我希望它能做到,我可以切换语法有点让这个工作?
define service { use generic-service hostgroup_name my-hostgroup service_description my custom check check_command check_custom_status!$HOSTADDRESS$/StatusCheck?auth=secretKey }
(它不检查/StatusCheck页面)。 如何附加$ HOSTADDRESS $macros?
我希望有一个非常简单的解决办法,如果我忽略了一些非常简单的道歉。
命令定义
define command { command_name check_custom_status command_line $USER1$/check_custom_status.pl -U $ARG1$ }
我的Perl脚本需要一个单一的URL参数( -U )
主机和服务定义中不使用macros。 如果你想使用它,你会把$HOSTADDRESS$macros放在命令定义中。
$HOSTADDRESS$macros已经可用于正在运行的命令以及数十个其他macros,因为Nagios知道该命令与哪个主机/服务相关联。
在你的情况下,你可能想要这样的东西,你把身份validation密钥作为ARG1传递给你:
define command { command_name check_custom_status command_line $USER1$/check_custom_status.pl -U http://$HOSTADDRESS$/StatusCheck?auth=$ARG1$ }
查看macros及其工作方式以及可用的macros文档页面列表,以了解它是如何工作的。