溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Zabbix自動(dòng)發(fā)現(xiàn)與自動(dòng)注冊(cè)、自定義監(jiān)控的實(shí)現(xiàn)

發(fā)布時(shí)間:2020-02-21 15:47:01 來(lái)源:網(wǎng)絡(luò) 閱讀:841 作者:筱振 欄目:系統(tǒng)運(yùn)維

一、自動(dòng)發(fā)現(xiàn)與自動(dòng)注冊(cè)

Zabbix的發(fā)現(xiàn)主要包括三種類(lèi)型:

1)Zabbix的自動(dòng)網(wǎng)絡(luò)發(fā)現(xiàn)

Zabbix提供非常有利和靈活的自動(dòng)網(wǎng)絡(luò)發(fā)現(xiàn)功能。通過(guò)網(wǎng)絡(luò)發(fā)現(xiàn),可以實(shí)現(xiàn)加速Zabbix部署、簡(jiǎn)化管理、在不斷變化的環(huán)境中使用Zabbix而不需要過(guò)多的管理;

zabbix網(wǎng)絡(luò)發(fā)現(xiàn)基于以下信息:
1)IP段自動(dòng)發(fā)現(xiàn);
2)可用的外部服務(wù)(FTP、SSH、WEB、TCP等);
3)從Zabbix客戶端接收到信息;
4)從SNMP客戶端接收到信息;

1)自動(dòng)發(fā)現(xiàn)原理

網(wǎng)絡(luò)發(fā)現(xiàn)主要由兩個(gè)步驟組成:發(fā)現(xiàn)和動(dòng)作;

Zabbix會(huì)周期性地掃描在網(wǎng)絡(luò)發(fā)現(xiàn)規(guī)則中定義的IP地址段。根據(jù)每一個(gè)規(guī)則配置自身的檢查頻率。每一個(gè)規(guī)則都定義了一個(gè)對(duì)指定IP段的服務(wù)檢查集合。

動(dòng)作是對(duì)發(fā)現(xiàn)的主機(jī)進(jìn)行相關(guān)的設(shè)置。常用的動(dòng)作有添加主機(jī)、刪除主機(jī)、啟用主機(jī)、停用主機(jī)、添加主機(jī)到某個(gè)主機(jī)組中、發(fā)現(xiàn)通知等;

2)配置網(wǎng)絡(luò)發(fā)現(xiàn)規(guī)則

如圖:
Zabbix自動(dòng)發(fā)現(xiàn)與自動(dòng)注冊(cè)、自定義監(jiān)控的實(shí)現(xiàn)
Zabbix自動(dòng)發(fā)現(xiàn)與自動(dòng)注冊(cè)、自定義監(jiān)控的實(shí)現(xiàn)
Zabbix自動(dòng)發(fā)現(xiàn)與自動(dòng)注冊(cè)、自定義監(jiān)控的實(shí)現(xiàn)
綜上所述,這個(gè)字段發(fā)現(xiàn)規(guī)則的意思:zabbix會(huì)自動(dòng)掃描192.168.1.1到192.168.1.254這個(gè)IP地址段的所有IP地址,以此連接這些IP的10050端口,接著通過(guò)"system.uname"鍵值查看是否能獲取數(shù)據(jù),如果可以獲取到數(shù)據(jù),那么就把這個(gè)主機(jī)加入到自動(dòng)發(fā)現(xiàn)規(guī)則中。

自動(dòng)發(fā)現(xiàn)規(guī)則添加完成后,接著,就可以添加自動(dòng)發(fā)現(xiàn)動(dòng)作了,如圖:
Zabbix自動(dòng)發(fā)現(xiàn)與自動(dòng)注冊(cè)、自定義監(jiān)控的實(shí)現(xiàn)
Zabbix自動(dòng)發(fā)現(xiàn)與自動(dòng)注冊(cè)、自定義監(jiān)控的實(shí)現(xiàn)
Zabbix自動(dòng)發(fā)現(xiàn)與自動(dòng)注冊(cè)、自定義監(jiān)控的實(shí)現(xiàn)
經(jīng)過(guò)以上的操作,zabbix的自動(dòng)發(fā)現(xiàn)配置已經(jīng)完成,稍等片刻,就會(huì)有符合條件的主機(jī)自動(dòng)添加到zabbix web中。

2)主動(dòng)客戶端自動(dòng)注冊(cè)

自動(dòng)注冊(cè)功能主要用于Agent主動(dòng)且自動(dòng)向Server注冊(cè)。與前面的網(wǎng)絡(luò)自動(dòng)發(fā)現(xiàn)有同樣的功能,但是這個(gè)功能更適用于特定的環(huán)境,當(dāng)存在一個(gè)條件未知(如agent端的IP地址段、agent端的操作系統(tǒng)版本等信息)時(shí),Agent去請(qǐng)求Server仍可實(shí)現(xiàn)主機(jī)自動(dòng)添加到zabbix web中的功能。比如云環(huán)境下的監(jiān)控。云環(huán)境中,IP分配就是隨機(jī)的,這個(gè)功能就可以很好的解決類(lèi)似的問(wèn)題。

配置主動(dòng)客戶端自動(dòng)注冊(cè)有兩個(gè)步驟,如下:

1)客戶端修改配置文件

打開(kāi)客戶端配置文件,修改如下配置:

[root@agent ~]# vim /etc/zabbix/zabbix_agentd.conf
Server=192.168.1.10        //設(shè)置被動(dòng)模式下的zabbix服務(wù)器的IP地址
ServerActive=192.168.1.10           //設(shè)置主動(dòng)模式下的zabbix服務(wù)器的IP地址
Hostname=192.168.1.8
HostMetadata= linux zabbix,lzj
//設(shè)置兩個(gè)元數(shù)據(jù),一個(gè)聲明為linux服務(wù)器,一個(gè)寫(xiě)一個(gè)通用的字符串

自動(dòng)注冊(cè)請(qǐng)求發(fā)生在每次客戶端發(fā)送一個(gè)刷新主動(dòng)檢查請(qǐng)求到服務(wù)器時(shí)。請(qǐng)求的延時(shí)在客戶端中配置文件中的“RefreshActiveChecks”參數(shù)中指定。第一次請(qǐng)求將在客戶端重啟之后立即發(fā)送。

2)配置網(wǎng)絡(luò)自動(dòng)注冊(cè)規(guī)則

如圖:
Zabbix自動(dòng)發(fā)現(xiàn)與自動(dòng)注冊(cè)、自定義監(jiān)控的實(shí)現(xiàn)
Zabbix自動(dòng)發(fā)現(xiàn)與自動(dòng)注冊(cè)、自定義監(jiān)控的實(shí)現(xiàn)
Zabbix自動(dòng)發(fā)現(xiàn)與自動(dòng)注冊(cè)、自定義監(jiān)控的實(shí)現(xiàn)
經(jīng)過(guò)以上的操作,zabbix的自動(dòng)發(fā)現(xiàn)注冊(cè)已經(jīng)完成,稍等片刻,就會(huì)有符合條件的主機(jī)自動(dòng)添加到zabbix web中。

3)低級(jí)別發(fā)現(xiàn)Low-level discovery(LLD)

在Zabbix中,支持三種現(xiàn)成類(lèi)型的數(shù)據(jù)項(xiàng)發(fā)現(xiàn),分別是:

1)文件系統(tǒng)發(fā)現(xiàn);
2)網(wǎng)絡(luò)接口發(fā)現(xiàn);
3)SNMP OID發(fā)現(xiàn);
4)CPU核和狀態(tài);

zabbix自帶的LLD key,如下:

1)vfs.fs.discovery //適用于zabbix agent監(jiān)控方式
2)snmp.discovery //適用于SNMP agent監(jiān)控方式
3)net.if.discovery //適用于zabbix agent監(jiān)控方式
4)system.cpu.discovery //適用于zabbix agent監(jiān)控方式

可以使用zabbix_get工具來(lái)獲取key獲取的數(shù)據(jù),對(duì)于snmp,不能通過(guò)zabbix_get工具進(jìn)行驗(yàn)證,只能在web頁(yè)面中進(jìn)行配置使用。

比如:

[root@zabbix ~]# zabbix_get -s 192.168.1.8 -k net.if.discovery
{"data":[{"{#IFNAME}":"lo"},{"{#IFNAME}":"virbr0-nic"},{"{#IFNAME}":"virbr0"},{"{#IFNAME}":"ens33"}]}

其中,{#IFNAME}就是一個(gè)宏變量,會(huì)返回系統(tǒng)中所有網(wǎng)卡的名稱。宏變量可以定義在主機(jī)、模板以及全局,宏變量都是大寫(xiě)的。使用宏變量,可以使zabbix功能更加強(qiáng)大。

在LLD中,常用的內(nèi)置宏變量如下:
1){#FSNAME}表示文件系統(tǒng)名稱;
2){#FSTYPE}表示文件系統(tǒng)類(lèi)型;
3){#IFNAME}表示網(wǎng)卡名稱;
4){#SNMPINDEX}會(huì)獲取OID中最后一個(gè)值;

宏級(jí)別有很多種,其優(yōu)先級(jí)由高到低順序如下:

主機(jī)級(jí)別的宏優(yōu)先級(jí)最高;
第一級(jí)模板中的宏;
第二級(jí)模板中的宏;
全局級(jí)別的宏;

因此,zabbix查找宏的順序?yàn)椋菏紫炔檎抑鳈C(jī)級(jí)別的宏,如果在主機(jī)級(jí)別不存在宏設(shè)置,那么zabbix就會(huì)去模板中查看是否設(shè)置有宏。如果模板中也沒(méi)有,將會(huì)查找使用全局的宏。若是在各級(jí)別中都沒(méi)有找到宏,將不使用宏。

二、zabbix自定義監(jiān)控項(xiàng)

有時(shí)當(dāng)我們監(jiān)控的項(xiàng)目在zabbix預(yù)定義的key中沒(méi)有定義時(shí),這時(shí)我們可以通過(guò)編寫(xiě)zabbix用戶參數(shù)的方法來(lái)監(jiān)控我們要求的項(xiàng)目item。形象一點(diǎn)說(shuō)zabbix代理端配置文件中UserParameters就相當(dāng)于腳本獲取要監(jiān)控的值,然后將相關(guān)的腳本或命令寫(xiě)入U(xiǎn)serParameters中,然后zabbix server讀取配置文件中的返回值通過(guò)處理前端的方式返回給用戶。

1)zabbix端開(kāi)啟UserParameters指令
[root@agent ~]# vim /etc/zabbix/zabbix_agentd.conf
UnsafeUserParameters=1
//啟用agent端自定義item功能,設(shè)置此參數(shù)為1后,就可以使用UserParameters指令了

UserParameters用于自定義itme。語(yǔ)法格式為:

UserParameters=<key>,<command>
//UserParameters:為關(guān)鍵字;
//key:為用戶自定義key名稱;
//command:需運(yùn)行的命令或腳本;

簡(jiǎn)單的例子,如下:

UserParameters=ping, echo 1
//代理程序?qū)?huì)永遠(yuǎn)返回1當(dāng)我們?cè)诜?wù)器端添加item的key為ping時(shí)
2)讓key接受參數(shù)

讓key也接受參數(shù)的方法使item添加時(shí)更具備了靈活性。例如:系統(tǒng)于定義key:

vm.memory.size[<mode>]
//其中mode模式就是用戶要接受的參數(shù),當(dāng)我們填寫(xiě)為free時(shí)則返回的為內(nèi)存的剩余大小,如果我們填入的為userd時(shí)返回的內(nèi)存是已經(jīng)使用的大小。

語(yǔ)法如下:

UserParameters=key[*],command
//其中,key的值在主機(jī)系統(tǒng)中必須是唯一的,其中*代表命令中接受的參數(shù),command表示命令,也就是客戶端系統(tǒng)中可執(zhí)行的命令

舉例:

UserParameters=ping[*],echo $1
//如果執(zhí)行ping[0],那么將一致返回’0‘,如果執(zhí)行ping[aaa],將一直返回’aaa‘

三、zabbix的主動(dòng)模式與被動(dòng)模式

默認(rèn)情況下,zabbix server會(huì)直接去每個(gè)agent上抓取數(shù)據(jù),這對(duì)于zabbix agent來(lái)說(shuō),是被動(dòng)模式,也是默認(rèn)的一種獲取數(shù)據(jù)的方式。但是,當(dāng)zabbix server監(jiān)控主機(jī)數(shù)量過(guò)多時(shí),由zabbix server端去抓取agent上的數(shù)據(jù),zabbix server會(huì)出現(xiàn)嚴(yán)重的性能問(wèn)題。主要表現(xiàn)如下:

1)web界面操作卡頓,容易出現(xiàn)502錯(cuò)誤;
2)監(jiān)控圖形中圖層斷裂;
3)監(jiān)控告警不及時(shí);

所以優(yōu)化主要從兩個(gè)方面進(jìn)行優(yōu)化,分別是:

1)通過(guò)部署多個(gè)zabbix proxy模式做分布式監(jiān)控;
2)調(diào)整zabbix agentd為主動(dòng)模式;

zabbix agentd主動(dòng)模式的含義是agentd端主動(dòng)匯報(bào)自己收集到的數(shù)據(jù)給zabbix server,這樣,zabbix server就會(huì)空閑很多,下面介紹如何開(kāi)啟agent的主動(dòng)模式。

1)開(kāi)啟agent的主動(dòng)模式

zabbix agent端的配置:

[root@agent ~]# vim /etc/zabbix/zabbix_agentd.conf
ServerActive=192.168.1.10      //定義agent端收集的數(shù)據(jù)送往那個(gè)主機(jī)
Hostname=192.168.1.8            //名稱需與web頁(yè)面添加主機(jī)名時(shí)對(duì)應(yīng)
StartAgents=1             //StartAgents的默認(rèn)值為3,如果需要關(guān)閉被動(dòng)模式,可設(shè)置值為0即可,關(guān)閉被動(dòng)模式后,agent端的10050端口也關(guān)閉了,為了兼容被動(dòng)模式,沒(méi)有將值設(shè)為0,如果一開(kāi)始就使用主動(dòng)模式,建議將值設(shè)置為0,關(guān)閉被動(dòng)模式

zabbix server端的配置

agent如果開(kāi)啟了主動(dòng)發(fā)送數(shù)據(jù)模式,還需以下操作:

[root@zabbix ~]# vim /usr/local/zabbix/etc/zabbix_server.conf
StartPollers=10               //把zabbix server主動(dòng)收集數(shù)據(jù)進(jìn)程減少一些
StartTrappers=200              //將負(fù)責(zé)處理agent推送來(lái)的數(shù)據(jù)進(jìn)程開(kāi)大些

調(diào)整模板

因?yàn)槭占瘮?shù)據(jù)的模式發(fā)生了變化,因此需要將所有的監(jiān)控項(xiàng)的監(jiān)控類(lèi)型由原來(lái)的“zabbix客戶端”改為“zabbix客戶端(主動(dòng)式)”。

經(jīng)過(guò)以上操作,就完成了主動(dòng)模式的切換,調(diào)整之后,可以發(fā)現(xiàn)zabbix server端的負(fù)載,應(yīng)該會(huì)降低不少,操作上卡頓的問(wèn)題、圖形圖層斷裂的問(wèn)題也就解決了!

——————————本文到此結(jié)束,感謝閱讀——————————

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI