我正在尝试配置一个包含2个客户端的Icinga2主服务器。所以我希望配置就像我正在配置主服务器并将配置同步到客户端。 这已经有效,但是如果客户端出现问题。师父说它还在,因为客户正在检查自己。 棘手的是我无法使用IP,因为所有IP都是动态的,我无法为每个服务器注册dyn-dns。稍后它将是30-50台服务器。
希望有人可以帮助我。
答案 0 :(得分:0)
您可以使用puppet-icinga2来收集有关节点的信息。在客户端,您将创建可导出的资源(接下来是木偶代码):
@@icinga2::object::host { $::fqdn:
display_name => $::fqdn,
address => $::ipaddress_eth0,
check_command => 'hostalive',
target => "/etc/icinga2/zones.d/${::domain}/hosts.conf",
zone => $::fqdn,
}
@@::icinga2::object::endpoint { "$::fqdn":
host => "$::ipaddress_eth0",
}
@@::icinga2::object::zone { "$::fqdn":
endpoints => [ "$::fqdn", ],
parent => 'master',
}
将传播到master(需要PuppetDB):
Icinga2::Object::Host <<| |>> { }
Icinga2::Object::Endpoint <<| |>> { }
Icinga2::Object::Zone <<| |>> { }
只要木偶大师拥有稳定的DNS,您就会更新zone.conf
。在puppet agent
运行客户端主机信息后,在PuppetDB中注册。在master上运行下一个puppet agent
时,它将获得有关该节点的最新信息。
然后你可以实施icinga master的检查:
apply Service "ping" to Host {
import "generic-service"
check_command = "ping"
zone = "master" //execute check from master zone
assign where "linux-server" in host.groups
}
请注意,还有其他自动化集成,如Ansible,可能会提供类似的功能。