我有 hostgroups.cfg 文件,其中有不同的主机和不同的端口号。我想将每个主机的端口号传递给 services.cfg 文件,我在该文件中放置了 check_http 命令。
由于我的不同主机具有不同的 http 进程和不同的端口号,所以我想直接从 hosts.cfg 文件传递端口号。可以吗?
以下是 hosts 和 services.cfg 文件中的示例条目
主机文件:
define host{
use abc
host_name test
alias /test/
address 192.168.0.24
hostgroups testgroup
}
services.cfg 文件
define service{
use critical-service
hostgroup_name test
service_description HTTP
check_command check_http!8080!7!5
}
命令.cfg 文件
define command{
command_name check_http
command_line $USER1$/check_http -H $HOSTADDRESS$ -p
$ARG1$ --url $HOSTALIAS$ -c $ARG2$ -w $ARG3$
}
答案1
在您的主机配置中,添加自定义变量像这样:
define host {
use abc
host_name test
alias /test/
address 192.168.0.24
hostgroups testgroup
_port 8080
}
然后在您的 services.cfg 中,将端口换成您设置的变量(您需要为所有主机设置它):
define service {
use critical-service
hostgroup_name test
service_description HTTP
check_command check_http!$_HOSTPORT$!7!5
}