Nagios / Icinga:每个NSClient ++主机的不同密码

是否有可能将不同的密码传递给我在我的icinga configs中定义的每个Windows主机的check_nt / check_nrpe命令? 例如,我有3个Windows主机

define host { use windows-server host_name prod address 10.0.0.1 } define host { use windows-server host_name db address 10.0.0.2 } define host { use windows-server host_name test address 10.0.0.3 } 

并build立了一个服务:

 define service{ use generic-service host_name prod,db,test service_description Uptime check_command check_nt!UPTIME normal_check_interval 180 } 

哪个叫

 define command { command_name check_nt command_line /usr/lib/nagios/plugins/check_nt -H '$HOSTADDRESS$' -p 12489 -v '$ARG1$' } 

这一切都很好,但我希望能够为每个主机(不能从Web界面查看)设置不同的密码。 我知道USERnmacros没有出现在网页界面,但是我不知道如何在这里使用它们。 有没有一个简单的方法来做到这一点,而不创build3个不同的服务,并在该阶段传递密码作为参数?

是的,只需重写命令定义:

 define command { command_name check_nt_pwd command_line /usr/lib/nagios/plugins/check_nt -H '$HOSTADDRESS$' -p 12489 -s '$ARG1$' -v '$ARG2$' } 

那么你可以使用三个服务定义,如下所示:

 define service{ use generic-service host_name prod service_description Uptime check_command check_nt!PWD1!UPTIME normal_check_interval 180 } define service{ use generic-service host_name db service_description Uptime check_command check_nt!PWD2!UPTIME normal_check_interval 180 } 

或者,如果你有一个现代的Nagios设置主机variables(_password),并使用一个macros($ _HOSTPASSWORD $)像这样:

 define host { use windows-server host_name prod address 10.0.0.1 _password PWD1 } define service{ use generic-service host_name prod,db,test service_description Uptime check_command check_nt!$_HOSTPASSWORD$!UPTIME normal_check_interval 180 } 

或者,如果您想以类似的方式直接将macros添加到命令定义中。