我在 4 台服务器上安装了 icinga v2.11.3-1,其中一台作为主服务器,其余的是代理节点,它们配置正确,因为它们在主机下的 icingaweb2 中可见。
我想要做的是能够在远程代理上运行检查命令。
假设我想监视名为my-server
.
所以在主节点中我添加了以下配置:
首先定义主机和区域:
object Host "my-server" {
import "generic-host"
address = "my-server-host"
vars.os = "Linux"
vars.disks["disk /mnt/data"] = {
disk_partitions = "/mnt/data"
}
vars.agent_endpoint = name
}
object Endpoint "my-server" {
host = "my-server"
}
object Zone "my-server" {
endpoints = ["my-server"]
parent = "master"
}
请注意,我添加了vars.agent_endpoint
.
在服务上应用了以下内容disk
:
apply Service "disk" {
check_command = "disk"
// Check is executed on the remote command endpoint
command_endpoint = host.vars.agent_endpoint
zone = host.vars.agent_endpoint
assign where host.vars.agent_endpoint
}
host.vars.disks
这是在 services.conf 配置文件中检查的定义:
apply Service for (disk => config in host.vars.disks) {
import "generic-service"
check_command = "disk"
vars += config
}
但它仍会检查父节点中的可用空间并显示该结果。
我可能错过了配置中的某些内容,我不知道是什么
关于这个问题的任何想法将不胜感激。
谢谢!
所以..我找不到手动解决它的方法..但我发现了更好的东西!我通常更喜欢手动配置,但我发现了一个名为 director 的 icingaweb2 插件,它使所有配置变得更加容易。
所以该项目位于https://github.com/Icinga/icingaweb2-module-director
所以我从我的所有服务器中删除了 icinga2 配置和软件包并开始清理,刚刚在所有服务器上安装了 icinga2,在所有服务器上运行
icinga2 node wizard
并在主节点上配置 icingaweb2。在这里我仍然没有看到我的任何服务器,因为没有任何端点连接到它们。然后我安装了director,登录到director web 界面,用check 命令
hostalive
和配置了一个主机模板Icinaga2 Agent
,Establish connection
并Accepts config
设置为yes。然后我使用这个模板创建了主机。
然后我为每个要测试的监控项创建了一个服务模板,并将“在代理上运行”设置为“是”。
然后我从该模板服务创建了一个服务,并将其附加到我创建的主机模板上,这样每个服务都将在我所有基于代理的服务器上受到监控。
然后我部署了配置,瞧!完美运行。检测到主机,并在这些服务器上执行服务监控任务。
这个项目给我留下了深刻的印象,它很容易理解和配置我想要的任何东西。