一、概述
Zabbix可以實現通過掃描IP地址來發現監控節點,只要節點滿足發現條件即可,比如安裝了agent或開放了snmp端口等,本實驗主要是通過配置Zabbix的Discovery(自動發現)功能來實現自動掃描網絡節點,並根據節點操作系統類型自動關聯模板添加到監控項中,從而實現自動化監控。
二、準備模板
可以根據之前的方法自己定義模板,也可以直接用系統自帶的模板,我這裏分別定義了“OS linux”、“OS windows”、“Network Device”模板用來將linux,windows和交換機分別進行關聯。之前簡單說過了linux的模板建立,windows和linux差不多,這裏要特別說明一下網絡設備模板的配置,這個和其他兩個稍有不同。
1.克隆模板,(如果你的網絡設備有不同的“SNMP COMMUNITY字符串”最好克隆現有的模板)
進入Configure>Templates,交換機屬於SNMP設備,無法安裝zabbix agent,因此在模板列表中需要選擇“Templates SNMP Device”,這個模板包含了兩個子模板“templates snmp generic和templates snmpinterfaces”,分別是針對交換機系統信息和接口信息監控的,一併都克隆過來。主模板命名爲Network Device,另外兩個子模板取名”Network SNMP Generic“和”Network SNMP Interfaces”。
2.修改“SNMP COMMUNITY“字符串變量
要想讀取網絡設備的信息,zabbix必須要知道網絡設備的snmp community串和具有訪問權限,交換機上具體怎麼配置就不說了,搞網絡的都知道。在zabbix中snmp字符串是通過全局變量來指定的。
進入全局變量定義位置,Administration>General>Marcros,將裏面的value值改成自己的snmp字符串,然後“Update”即可,當然還可以Add自己定義其他變量,全局有效.
在模板“Network SNMP interfaces>Items>Number of network interfaces”下會看到模板引用變量的地方。
三、配置Discovery
進入“Configuration>Discovery>Create discovery rule”,新建一個發現規則,這個規則主要是掃描指定的IP段,發現安裝了Zabbix agent的服務器,通過通過某個值來判斷服務器是否可用。
IP range:可以填寫連續的ip段,也可以非連續,如“192.168.1.2,192.168.1.3-5”,用逗號隔開。
Delay:掃描的間隔時間,默認是3600s
Checks:
Check type :選擇掃描服務器的方式,一般常用的就是zabbix agent和snmp v2,
Port range:zabbix agent的監聽端口,默認不用改。
key:指定掃描服務器的哪些項,我們這裏指定system.uname,即服務器的架構信息,只要能正確獲得該值,就證明在線。
如果是SNMP設備,那麼就要填寫SNMP字符串和掃描項,比如sysName.0代表掃描設備主機名,這個項可以通過snmpwalk從網絡設備獲取,這裏不表。
這樣添加之後Discovery的配置就完成了。
四、Action添加機器到監控
通過上面的步驟,只是掃描出來設備,並不會添加到我們的監控列表中,因此還需要通過Action這個手段將掃描的機器加入其中。
選擇“Configuration>Actions>Discovery>Create action”,添加一個action,用來判斷掃描出的機器操作系統類型,並且自動匹配指定模板。
Action頁面:只需要寫一個名字即可,其他可以不用更改。
Conditions:定義條件,比如找出系統是linux的、掃描狀態是ok的、啓動了時間超過600s且 安裝了zabbix agent的機器
operations:將簽名根據條件篩選出來的機器添加到相應的linux模板裏面,然後添加完成。
Windows和網絡設備的添加方法一樣,只不過在conditions裏面更改相應的條件值,如下圖,這裏不再贅述。
這樣就完成了掃描節點並根據操作系統來匹配模板。
五、自動移除
當一個機器下線移走,可以通過Action來自動將其從監控列表中移除。也是在“Configuration>Actions>Discovery>Create action”中定義,只是修改一下conditions和operations既可
這裏寫是怎樣簡單進行一個掃描和自動發現,其實這部分內容也很多。篇幅有限不能贅述,可以通過官方文檔瞭解更多的內容。