Icinga

使用 icinga 遠端代理執行遠端檢查命令

  • May 4, 2020

我在 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 AgentEstablish connectionAccepts config設置為yes。

然後我使用這個模板創建了主機。

然後我為每個要測試的監控項創建了一個服務模板,並將“在代理上執行”設置為“是”。

然後我從該模板服務創建了一個服務,並將其附加到我創建的主機模板上,這樣每個服務都將在我所有基於代理的伺服器上受到監控。

然後我部署了配置,瞧!完美執行。檢測到主機,並在這些伺服器上執行服務監控任務。

這個項目給我留下了深刻的印象,它很容易理解和配置我想要的任何東西。

引用自:https://serverfault.com/questions/1015470