1. 程式人生 > >zabbix自動化監控之自動註冊

zabbix自動化監控之自動註冊

gist pac min sta info ima refresh zabbix 不足

自動註冊與自動發現剛好相反,是zabbix agent主動聯系zabbix server,最後由zabbix server將這些agent加到host裏。活動的Zabbix agent可以自動註冊到服務器進行監控。這種方式無需在服務器上手動配置它們。當以前未知的active agent要求檢查時,會發生自動註冊。該功能可能非常方便自動監控新的節點。一旦在Zabbix中有一個新節點,Zabbix將自動啟動主機監控,並進行性能和可用性數據的收集。Active agent自動註冊還支持對被添加的主機進行被動檢查的監控。當active agent要求檢查時,提供它配置文件中定義的"ListenIP"或"ListenPort"配置參數,這些參數將發送到服務器。(如果指定了多個IP地址,則第一個將被發送到服務器。)服務器在添加新的自動註冊主機時,使用接收到的IP地址和端口配置agent。如果沒有接收到IP地址值,則使用傳入連接的IP地址。如果沒有接收到端口值,則使用10050。對於需要部署特別多服務器的人來說,這功能相當給力。所有服務器批量裝好zabbix agent,server配置好觸發器,所有的服務器都配置好了,非常快速。可見自動註冊的效率比自動發現的效率高。

配置自動註冊:

1、在agent配置文件中指定zabbix Server active

agent在原來的基礎上,增加設置Server active即主動向server端發送數據

[root@db01 ~]# vim /etc/zabbix/zabbix_agentd.conf

136 ServerActive=192.168.1.63

[root@db01 ~]# systemctl restart zabbix-agent.service

2、server啟用自動註冊功能

當服務器從agent收到自動註冊請求時,它會調用一個動作。事件源"自動註冊"的操作必須配置為agent自動註冊(設置網絡發現不需要使active agents自動註冊)。

在Zabbix頁面,轉到配置→動作,選擇自動註冊為事件源,然後單擊創建操作:

在"動作"選項卡,輸入一個名稱

技術分享圖片

在"條件"選項卡中,定義新的觸發條件(agent代理名稱,主機元數據,主機名稱)

技術分享圖片

在"操作"選項卡中,添加"發送消息","添加主機","添加到主機組"(例如,發現的主機),"鏈接到模板"等。

如果只能主動監視(例如Zabbix服務器被防火墻不允許訪問的主機)的自動註冊主機,則可能需要創建一個特定的模板,如Template_Linux-active以鏈接到主機

技術分享圖片

動作編輯完成後點擊添加,啟用該動作

技術分享圖片

3、自動註冊實現

若想快速實現自動註冊,可以重啟zabbix server

[root@zabbix ~]# systemctl restart zabbix-server.service

查看主機,自動註冊的主機db01已經添加,並鏈接模板開始監控

技術分享圖片

查看動作日誌及郵件

技術分享圖片

技術分享圖片

4、使用主機元數據自動註冊

當agent程序向服務器發送自動註冊請求時,會發送其主機名。在某些情況下(例如,Amazon雲端節點),Zabbix服務器的主機名不足以區分發現的主機。主機元數據可將其他信息從agent發送到服務器。

主機元數據在agent配置文件 - zabbix_agentd.conf中配置。在配置文件中指定主機元數據有兩種方式:

HostMetadata

HostMetadataItem

每當活動agent刷新主動檢查到服務器的請求時,都會進行自動註冊嘗試。請求的延遲在agent的RefreshActiveChecks參數中指定。第一個請求在agent重新啟動後立即發送。

例1

使用主機元數據來區分Linux和Windows主機。

假設你希望主機由Zabbix server自動註冊。首先你的網絡上有active Zabbix agents(請參閱上面的"配置"部分),其次你的網絡上有Windows主機和Linux主機,再次Zabbix頁面可以使用"Template OS Linux"和"Template OS Windows" 模板,然後在主機註冊時,你才能將Linux / Windows模板應用於正在註冊的主機。默認情況下,只有主機名在自動註冊時才會發送到服務器,這可能還不夠。為了確保將正確的模板應用於主機,應該使用主機元數據。

Agent配置

首先要做的是配置agents。添加下一行agent配置文件:

HostMetadataItem=system.uname

這樣才能確保主機元數據將包含"Linux"或"Windows",具體取決於運行agent的主機。主機元數據示例如下:

Linux: Linux server3 3.2.0-4-686-pae #1 SMP Debian 3.2.41-2 i686 GNU/Linux

Windows: Windows WIN-0PXGGSTYNHO 6.0.6001 Windows Server 2008 Service Pack 1 Intel IA-32

對配置文件進行任何更改後,請重新啟動agent

前段配置

現在需要在前端創建2個動作。第一個動作:

名稱:Linux主機自動註冊

條件:主機元數據似 Linux

操作:鏈接到模板:Template OS Linux

在這種情況下,可以跳過"添加主機"操作。鏈接到模板需要首先添加主機,服務器會自動執行

第二個動作:

名稱:Windows主機自動註冊

主機元數據似 Windows

操作:鏈接到模板:Template OS Windows

例2

使用主機元數據用於區分各個主機

Agent配置

將下一行添加到代理配置文件:

HostMetadata=Linux 21df83bf21bf0be663090bb8d4128558ab9b95fba66a6dbf834f8b91ae5e08ae

其中"Linux"是一個平臺,其余的字符串是一些難以猜測的秘密文本。

對配置文件進行任何更改後,重新啟動服務。

前段配置

在前端創建一個動作,使用上面提到的復雜密碼來禁止不需要的主機:

名稱:自動註冊動作Linux

條件:

計算類型:AND

條件(A):主機元數據 似 Linux

條件(B):主機元數據 似

21df83bf21bf0be663090bb8d4128558ab9b95fba66a6dbf834f8b91ae5e08ae

操作

向用戶發送消息:通過Admin發送所有媒體

添加到主機組:Linux servers

鏈接到模板:Template OS Linux

請註意,這種方法本身並沒有提供強大的保護,因為數據是以純文本形式傳輸的

部分參考自官方文檔:

https://www.zabbix.com/documentation/3.4/zh/manual/discovery/auto_registration

zabbix自動化監控之自動註冊