一、什么是監(jiān)控系統(tǒng)
在運(yùn)維領(lǐng)域,監(jiān)控系統(tǒng)即用于監(jiān)控生產(chǎn)環(huán)境所使用的硬件、軟件或者是業(yè)務(wù)的運(yùn)行情況的報(bào)警系統(tǒng)。其能夠?qū)ιa(chǎn)環(huán)境所產(chǎn)生的異常作出報(bào)警,使得管理員能夠及時(shí)獲知報(bào)警信息,保證業(yè)務(wù)的正常運(yùn)行。
監(jiān)控系統(tǒng)功能可以分為以下幾個(gè)模塊:
1、采樣:即周期性地獲取某個(gè)關(guān)注指標(biāo)相關(guān)的數(shù)據(jù),一個(gè)監(jiān)控系統(tǒng)通常支持多種采樣手段,常見(jiàn)的手段有:ssh/telnet、agent、IPMI、SNMP、JMX等等。
2、存儲(chǔ):即用于存儲(chǔ)采樣所收集到的數(shù)據(jù),以便于管理員進(jìn)行回溯查看。其存儲(chǔ)的數(shù)據(jù)可分為歷史數(shù)據(jù)和趨勢(shì)數(shù)據(jù),其中歷史數(shù)據(jù)即每次采樣所收集到的數(shù)據(jù)結(jié)果,通常保存周期為三個(gè)月到半年;而另一個(gè)趨勢(shì)數(shù)據(jù)即為一段時(shí)間內(nèi)的所采樣的數(shù)據(jù)的最大值、最小值、平均值等數(shù)據(jù),因數(shù)據(jù)量較小,通常保存較長(zhǎng)的時(shí)間。監(jiān)控系統(tǒng)常用的存儲(chǔ)系統(tǒng)有Mysql、mariadb、Oracle、rrd等等。
3、報(bào)警:即當(dāng)監(jiān)控的對(duì)象發(fā)生異常時(shí),系統(tǒng)用于通常管理員或其他相關(guān)人員的報(bào)警媒介。常用的報(bào)警媒介有:郵件、短信、微信、腳本等等。
4、展示:監(jiān)控系統(tǒng)通過(guò)采樣收集得到的數(shù)據(jù),那么肯定得通過(guò)展示才能讓管理人員更加方便的知道當(dāng)前的監(jiān)控項(xiàng)的運(yùn)行情況。展示就是監(jiān)控系統(tǒng)把數(shù)據(jù)從數(shù)據(jù)庫(kù)中讀取出來(lái),然后通過(guò)統(tǒng)一的整理歸類(lèi)為標(biāo)準(zhǔn)的圖形化進(jìn)行輸出展示,常見(jiàn)的展示接口有:webGUI、GUI、APP等等。
上述就是一個(gè)運(yùn)維監(jiān)控系統(tǒng)應(yīng)用的四大功能,目前比較流行的開(kāi)源監(jiān)控系統(tǒng)由:zabbix、cacti、nagios、ganglia等等。
二、SNMP協(xié)議
SNMP即Simple Network Management Protocol,簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議,是用于在網(wǎng)絡(luò)實(shí)體或節(jié)點(diǎn)之間交換管理或監(jiān)控信息的協(xié)議。
作為運(yùn)維人員,我們的工作很大一部分就是為了保證我們的網(wǎng)絡(luò)能夠正常、穩(wěn)定地運(yùn)行。因此監(jiān)控、控制、管理各種網(wǎng)絡(luò)設(shè)備成了我們?nèi)粘5墓ぷ鲀?nèi)容。而SNMP協(xié)議就是在早起網(wǎng)絡(luò)興起時(shí)代產(chǎn)生的,用于減輕管理人員運(yùn)維工作的協(xié)議。使用SNMP協(xié)議能夠?qū)χС衷搮f(xié)議的網(wǎng)絡(luò)設(shè)備進(jìn)行監(jiān)控和信息采集,而這些信息則可以用來(lái)構(gòu)建網(wǎng)絡(luò)中的監(jiān)控系統(tǒng)。
SNMP協(xié)議,如其名所示,其部署也很簡(jiǎn)單。只要一個(gè)網(wǎng)絡(luò)設(shè)備支持SNMP協(xié)議,那么基本上我們都可以使用SNMP協(xié)議來(lái)對(duì)其進(jìn)行監(jiān)控。其由著以下幾個(gè)優(yōu)點(diǎn):
1、標(biāo)準(zhǔn)化協(xié)議:SNMP協(xié)議屬于TCP/IP協(xié)議中的標(biāo)準(zhǔn)網(wǎng)絡(luò)管理協(xié)議,因此其兼容大多數(shù)的網(wǎng)絡(luò)設(shè)備。
2、認(rèn)可度高/流行度高:幾乎所有主流的廠商都支持SNMP,所有使用SNMP管理的設(shè)備都使用相同的管理接口以支持通用的管理消息集合。
3、可移植性高:SNMP獨(dú)立于操作系統(tǒng)和編程語(yǔ)言,SNMP的功能設(shè)計(jì)是可移植的,它定義了一套核心操作集,所有支持SNMP的設(shè)備都需要支持這套操作。
4、輕量級(jí):SNMP協(xié)議的工作不會(huì)對(duì)設(shè)備的操作或性能產(chǎn)生沖擊,網(wǎng)絡(luò)設(shè)備只需以極小的資源消耗和負(fù)載即可增加對(duì)SNMP的管理支持。
5、擴(kuò)展性高:因?yàn)樗械腟NMP管理的設(shè)備上都會(huì)支持相同的一套核心操作集,而且SNMP也支持計(jì)算機(jī)網(wǎng)絡(luò)設(shè)備中各種類(lèi)型的設(shè)備的信息交互,因此添加設(shè)備變得很簡(jiǎn)單。
SNMP協(xié)議的組成通常分為三個(gè)部分:
1、網(wǎng)絡(luò)設(shè)備:即網(wǎng)絡(luò)中需要監(jiān)控或管理的設(shè)備。
2、Agent:即網(wǎng)絡(luò)設(shè)備和管理組件之間的中間件,是運(yùn)行在網(wǎng)絡(luò)設(shè)備中的程序進(jìn)程,用于收集設(shè)備的管理信息并反饋給管理組件。
3、管理組件:管理組件即管理系統(tǒng)通常是一個(gè)遠(yuǎn)程部署的獨(dú)立系統(tǒng),可以為一臺(tái)計(jì)算機(jī),也可以為一臺(tái)服務(wù)器。管理員可通過(guò)該系統(tǒng)對(duì)各種設(shè)備進(jìn)行監(jiān)控與管理。
SNMP協(xié)議發(fā)展到現(xiàn)在,一共經(jīng)歷了三個(gè)主要的版本:SNMPv1、SNMPv2、SNMPv3。對(duì)于當(dāng)前互聯(lián)網(wǎng)時(shí)代來(lái)說(shuō),最好的版本當(dāng)屬SNMPv3,因?yàn)槠渥隽舜罅筷P(guān)于安全性的增強(qiáng),包括:
1、會(huì)檢驗(yàn)收到的SNMP消息在網(wǎng)絡(luò)傳輸過(guò)程中是否被篡改;
2、添加一個(gè)SNMP實(shí)體身份證明,用于校驗(yàn)發(fā)送SNMP信息的發(fā)送人身份。
3、會(huì)檢查收到的SNMP消息內(nèi)容是否包含管理消息,是否是即時(shí)創(chuàng)建的。
4、對(duì)每個(gè)SNMP消息的內(nèi)容進(jìn)行加密保護(hù)。