在實際生產環境中,我們可能需要將很多台主機添加到 Zabbix Server 里,我們進行手動添加的話,會比較麻煩、費時,而且還容易出錯。所以一般我們會設置主機自動注冊。這樣就比較方便。
官方文檔鏈接 : 點我
針對zabbix agent 設置參數做下特別說明
-
Server
指定可以連接本 agent 的
Zabbix Server
或者Zabbix Proxy
的 IP 。 -
ServerActive
參數是用於在 自動注冊和 主動監控(監控項)用的參數,設置為
zabbix server
或者是zabbix proxy
的 IP。 -
Hostname
我們需要設置 Hostname ,因為我們將在 動作中的觸發條件中使用,如果你沒有在
zabbix_agentd.conf
中特別定義Hostname, 則服務器將使用agent的系統主機名命名主機。Linux中的系統主機名可以通過運行hostname
命令獲取。最后成功添加的主機名稱也是該選項設置的值。
一、 通過 agent 自動注冊到 zabbix server (官方)
划重點:發起點就是: zabbix-agent
涉及配置:配置---》動作--》自動注冊
主機自動注冊配置涉及兩塊:
- agent 配置
- 動作-自動注冊
一、 agent 配置
需要配置的參數
Server
: 配置為Zabbix Server
或者Zabbix Proxy
的 IP。ServerActive
:配置為Zabbix Server
或者Zabbix Proxy
的 IP。如果端口改變了,需要在后面加上端口。Hostname
:設置主機的名稱。
我們也可以使用其它參數值進行設置然后在觸發條件中,例如 HostMetadata
和 HostMetadataItem
二、動作-自動注冊
配置 ---》 動作 ----》 自動注冊 ---》 創建動作。
動作需要設置觸發條件,我們可能只需要將自動發現的符合某個條件主機添加到某個主機群組。所以我們這里需要設置觸發條件。可以通過 主機名稱、主機元數據、zabbix proxy
來設置觸發條件。
操作:也就是自動發現的主機符合前面設置條件后需要設置的操作,比如添加到某個群組,鏈接到某個模板等等。
注意事項
- 如果我們設置好了,上面的配置后,但是發現沒有主機注冊,我們可以看看是不是我們
zabbix server
或者zabbix proxy
的監聽的端口在防火牆(或者是安全組)有沒有開放。默認監聽端口是 10051。 - 如果我們可以看到主機注冊成功了,但是 agent 的狀態一直不是活躍的,那么我們可以看看我們
zabbix agent
的監聽的端口在防火牆(或者是安全組)沒有開放。默認監聽端口是 10050。
二、通過 zabbix server 自動發現來添加主機
划重點:發起點就是: zabbix server
**涉及配置:配置---》動作--》自動發現,配置---》自動發現 **
zabbix agent 配置
由於發起點是 zabbix server
,所以我們在配置參數時,只需要配置 Server
和 Hostname
,然后將 ServerActive
參數注釋。如果我們沒有注釋該參數,則又會進行自動注冊了。如果我們沒有設置自動注冊項的話,該參數不注釋也可以的。
Zabbix server 配置
設置自動發現規則
設置動作-自動發現-創建動作
設置動作的觸發條件,就是匹配我們自動發現出來的主機,當自動發現的主機符合觸發條件,就添加到 指定的主機組和鏈接到指定的模板。
設置操作,鏈接模板,添加到主機群組。
我們可以在
監測---》自動發現
查看到我們自動發現到的主機。
三 腦洞大開
腦洞大開一
在思考這個場景的過程中,我想過當 zabbix agent
沒有固定ip(公司內部服務器),我們該如何監控,我想可以通過讓該主機自動注冊到 zabbix server
,然后使用 主動發送模式,也就是由 zabbix-agent
自動發送監控數據到 zabbix server
,記住我們這里需要設置所有的監控項類型為 zabbix agent(主動式)
。 問題點在於: **當客戶端IP 變了,zabbix server 是重新添加一個新的 host,還是會自動識別 **,經過測試,發現 zabbix server 不會添加新的主機,也不會更改 之前主機的IP,但是數據是正常采集的,zabbix agent 是會有一個報錯。
腦洞大開二
當把 zabbix server
放置在內網,沒有固定ip,那么是否可以實現監控呢?我思考了下,是發現不可以的,原因有一點,就是 既然 zabbix server 沒有固定ip,所以采用的模式是被動,那么在 zabbix -agent 要設置一個 Server
參數,這個參數的意義是允許哪個 ip 連接我的 agent 的。但是我們的 zabbix server 有沒有固定 IP。所以方法是行不通的。