使用 icinga 遠端代理執行遠端檢查命令
我在 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。然後我使用這個模板創建了主機。
然後我為每個要測試的監控項創建了一個服務模板,並將“在代理上執行”設置為“是”。
然後我從該模板服務創建了一個服務,並將其附加到我創建的主機模板上,這樣每個服務都將在我所有基於代理的伺服器上受到監控。
然後我部署了配置,瞧!完美執行。檢測到主機,並在這些伺服器上執行服務監控任務。
這個項目給我留下了深刻的印象,它很容易理解和配置我想要的任何東西。