您好,登錄后才能下訂單哦!
Zabbix的發現主要包括三種類型:
Zabbix提供非常有利和靈活的自動網絡發現功能。通過網絡發現,可以實現加速Zabbix部署、簡化管理、在不斷變化的環境中使用Zabbix而不需要過多的管理;
zabbix網絡發現基于以下信息:
1)IP段自動發現;
2)可用的外部服務(FTP、SSH、WEB、TCP等);
3)從Zabbix客戶端接收到信息;
4)從SNMP客戶端接收到信息;
網絡發現主要由兩個步驟組成:發現和動作;
Zabbix會周期性地掃描在網絡發現規則中定義的IP地址段。根據每一個規則配置自身的檢查頻率。每一個規則都定義了一個對指定IP段的服務檢查集合。
動作是對發現的主機進行相關的設置。常用的動作有添加主機、刪除主機、啟用主機、停用主機、添加主機到某個主機組中、發現通知等;
如圖:
綜上所述,這個字段發現規則的意思:zabbix會自動掃描192.168.1.1到192.168.1.254這個IP地址段的所有IP地址,以此連接這些IP的10050端口,接著通過"system.uname"鍵值查看是否能獲取數據,如果可以獲取到數據,那么就把這個主機加入到自動發現規則中。
自動發現規則添加完成后,接著,就可以添加自動發現動作了,如圖:
經過以上的操作,zabbix的自動發現配置已經完成,稍等片刻,就會有符合條件的主機自動添加到zabbix web中。
自動注冊功能主要用于Agent主動且自動向Server注冊。與前面的網絡自動發現有同樣的功能,但是這個功能更適用于特定的環境,當存在一個條件未知(如agent端的IP地址段、agent端的操作系統版本等信息)時,Agent去請求Server仍可實現主機自動添加到zabbix web中的功能。比如云環境下的監控。云環境中,IP分配就是隨機的,這個功能就可以很好的解決類似的問題。
配置主動客戶端自動注冊有兩個步驟,如下:
打開客戶端配置文件,修改如下配置:
[root@agent ~]# vim /etc/zabbix/zabbix_agentd.conf
Server=192.168.1.10 //設置被動模式下的zabbix服務器的IP地址
ServerActive=192.168.1.10 //設置主動模式下的zabbix服務器的IP地址
Hostname=192.168.1.8
HostMetadata= linux zabbix,lzj
//設置兩個元數據,一個聲明為linux服務器,一個寫一個通用的字符串
自動注冊請求發生在每次客戶端發送一個刷新主動檢查請求到服務器時。請求的延時在客戶端中配置文件中的“RefreshActiveChecks”參數中指定。第一次請求將在客戶端重啟之后立即發送。
如圖:
經過以上的操作,zabbix的自動發現注冊已經完成,稍等片刻,就會有符合條件的主機自動添加到zabbix web中。
在Zabbix中,支持三種現成類型的數據項發現,分別是:
1)文件系統發現;
2)網絡接口發現;
3)SNMP OID發現;
4)CPU核和狀態;
zabbix自帶的LLD key,如下:
1)vfs.fs.discovery //適用于zabbix agent監控方式
2)snmp.discovery //適用于SNMP agent監控方式
3)net.if.discovery //適用于zabbix agent監控方式
4)system.cpu.discovery //適用于zabbix agent監控方式
可以使用zabbix_get工具來獲取key獲取的數據,對于snmp,不能通過zabbix_get工具進行驗證,只能在web頁面中進行配置使用。
比如:
[root@zabbix ~]# zabbix_get -s 192.168.1.8 -k net.if.discovery
{"data":[{"{#IFNAME}":"lo"},{"{#IFNAME}":"virbr0-nic"},{"{#IFNAME}":"virbr0"},{"{#IFNAME}":"ens33"}]}
其中,{#IFNAME}就是一個宏變量,會返回系統中所有網卡的名稱。宏變量可以定義在主機、模板以及全局,宏變量都是大寫的。使用宏變量,可以使zabbix功能更加強大。
在LLD中,常用的內置宏變量如下:
1){#FSNAME}表示文件系統名稱;
2){#FSTYPE}表示文件系統類型;
3){#IFNAME}表示網卡名稱;
4){#SNMPINDEX}會獲取OID中最后一個值;
宏級別有很多種,其優先級由高到低順序如下:
主機級別的宏優先級最高;
第一級模板中的宏;
第二級模板中的宏;
全局級別的宏;
因此,zabbix查找宏的順序為:首先查找主機級別的宏,如果在主機級別不存在宏設置,那么zabbix就會去模板中查看是否設置有宏。如果模板中也沒有,將會查找使用全局的宏。若是在各級別中都沒有找到宏,將不使用宏。
有時當我們監控的項目在zabbix預定義的key中沒有定義時,這時我們可以通過編寫zabbix用戶參數的方法來監控我們要求的項目item。形象一點說zabbix代理端配置文件中UserParameters就相當于腳本獲取要監控的值,然后將相關的腳本或命令寫入UserParameters中,然后zabbix server讀取配置文件中的返回值通過處理前端的方式返回給用戶。
[root@agent ~]# vim /etc/zabbix/zabbix_agentd.conf
UnsafeUserParameters=1
//啟用agent端自定義item功能,設置此參數為1后,就可以使用UserParameters指令了
UserParameters用于自定義itme。語法格式為:
UserParameters=<key>,<command>
//UserParameters:為關鍵字;
//key:為用戶自定義key名稱;
//command:需運行的命令或腳本;
簡單的例子,如下:
UserParameters=ping, echo 1
//代理程序將會永遠返回1當我們在服務器端添加item的key為ping時
讓key也接受參數的方法使item添加時更具備了靈活性。例如:系統于定義key:
vm.memory.size[<mode>]
//其中mode模式就是用戶要接受的參數,當我們填寫為free時則返回的為內存的剩余大小,如果我們填入的為userd時返回的內存是已經使用的大小。
語法如下:
UserParameters=key[*],command
//其中,key的值在主機系統中必須是唯一的,其中*代表命令中接受的參數,command表示命令,也就是客戶端系統中可執行的命令
舉例:
UserParameters=ping[*],echo $1
//如果執行ping[0],那么將一致返回’0‘,如果執行ping[aaa],將一直返回’aaa‘
默認情況下,zabbix server會直接去每個agent上抓取數據,這對于zabbix agent來說,是被動模式,也是默認的一種獲取數據的方式。但是,當zabbix server監控主機數量過多時,由zabbix server端去抓取agent上的數據,zabbix server會出現嚴重的性能問題。主要表現如下:
1)web界面操作卡頓,容易出現502錯誤;
2)監控圖形中圖層斷裂;
3)監控告警不及時;
所以優化主要從兩個方面進行優化,分別是:
1)通過部署多個zabbix proxy模式做分布式監控;
2)調整zabbix agentd為主動模式;
zabbix agentd主動模式的含義是agentd端主動匯報自己收集到的數據給zabbix server,這樣,zabbix server就會空閑很多,下面介紹如何開啟agent的主動模式。
zabbix agent端的配置:
[root@agent ~]# vim /etc/zabbix/zabbix_agentd.conf
ServerActive=192.168.1.10 //定義agent端收集的數據送往那個主機
Hostname=192.168.1.8 //名稱需與web頁面添加主機名時對應
StartAgents=1 //StartAgents的默認值為3,如果需要關閉被動模式,可設置值為0即可,關閉被動模式后,agent端的10050端口也關閉了,為了兼容被動模式,沒有將值設為0,如果一開始就使用主動模式,建議將值設置為0,關閉被動模式
zabbix server端的配置
agent如果開啟了主動發送數據模式,還需以下操作:
[root@zabbix ~]# vim /usr/local/zabbix/etc/zabbix_server.conf
StartPollers=10 //把zabbix server主動收集數據進程減少一些
StartTrappers=200 //將負責處理agent推送來的數據進程開大些
調整模板
因為收集數據的模式發生了變化,因此需要將所有的監控項的監控類型由原來的“zabbix客戶端”改為“zabbix客戶端(主動式)”。
經過以上操作,就完成了主動模式的切換,調整之后,可以發現zabbix server端的負載,應該會降低不少,操作上卡頓的問題、圖形圖層斷裂的問題也就解決了!
——————————本文到此結束,感謝閱讀——————————
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。