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自動化監控之自動註冊