基于Linux的性能監(jiān)測(cè)比拼和實(shí)現(xiàn)攻略
性能監(jiān)測(cè)的基本概念:
當(dāng)今企業(yè)對(duì)關(guān)鍵服務(wù)效能和穩(wěn)定性方面的要求不斷提高,所以如何科學(xué)以及準(zhǔn)確地獲得服務(wù)運(yùn)行方面的綜合信息顯得越來(lái)越重要。于是企業(yè)在部署服務(wù)的同時(shí)也都會(huì)通過(guò)各種各樣的方式和手段來(lái)部署對(duì)服務(wù)以及其外圍環(huán)境資源的監(jiān)測(cè)。監(jiān)測(cè)的對(duì)象除服務(wù)本身之外還包括服務(wù)所運(yùn)行的基本環(huán)境,如CPU、內(nèi)存、I/O、存儲(chǔ)空間、網(wǎng)絡(luò)吞吐量等使用情況。通過(guò)對(duì)這種長(zhǎng)期監(jiān)測(cè)所收集到的數(shù)據(jù)來(lái)使用不同的圖形化分析軟件進(jìn)行整理和分析,我們不難判斷出服務(wù)在當(dāng)前以及長(zhǎng)期所運(yùn)行的情況,并為以后的性能調(diào)優(yōu)以及系統(tǒng)排錯(cuò)建立參考的依據(jù)。
基于Linux上性能監(jiān)測(cè)的基本原理以及種類(lèi):
在Linux系統(tǒng)上的性能監(jiān)測(cè)所采用的方式基本上有兩種:
第一種,通過(guò)snmp + 數(shù)據(jù)采集軟件來(lái)實(shí)現(xiàn):
通過(guò)在Linux服務(wù)器上啟動(dòng)snmp簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議來(lái)動(dòng)態(tài)采集服務(wù)器在軟件甚至硬件各方面的運(yùn)行參數(shù),這樣服務(wù)器就成為了一個(gè)被監(jiān)測(cè)的節(jié)點(diǎn)。然后在其它的網(wǎng)管工作站上一部分的客戶(hù)端軟件能夠采集snmp數(shù)據(jù)并動(dòng)態(tài)生成可以通過(guò)Web頁(yè)面訪問(wèn)的HTML信息,而另外一部分的客戶(hù)端軟件本身集成了更強(qiáng)大的數(shù)據(jù)采集以及繪圖功能,結(jié)合到一起可以生成更加直觀和具體的web頁(yè)面。這種類(lèi)型的監(jiān)測(cè)所獲得的數(shù)據(jù)格式標(biāo)準(zhǔn)而且全面,配置簡(jiǎn)單,所以從綜合監(jiān)測(cè)的角度看是一個(gè)不錯(cuò)的方案。
第二種,通過(guò)性能監(jiān)測(cè)命令編寫(xiě)script + 數(shù)據(jù)采集軟件來(lái)實(shí)現(xiàn):
在某些情況下snmp協(xié)議的配置相對(duì)比較麻煩,但是系統(tǒng)本身提供了很多諸如sar,iostat以及free等不同的可以周期和規(guī)律性執(zhí)行的性能監(jiān)測(cè)命令,這就給監(jiān)測(cè)提供了相當(dāng)?shù)谋憷R驗(yàn)榭梢詫⑦@些命令嵌入到腳本中以周期性生成性能監(jiān)測(cè)軟件所需要的數(shù)據(jù),最終一樣可以通過(guò)這些數(shù)據(jù)繪制出直觀的統(tǒng)計(jì)圖。這種類(lèi)型的監(jiān)測(cè)所獲得的信息更加靈活和精確,對(duì)于一些熟悉scripts編程的用戶(hù)來(lái)說(shuō),使用起來(lái)相當(dāng)?shù)眯膽?yīng)手。
除此之外,利用命令監(jiān)測(cè)可以無(wú)限制擴(kuò)展,用戶(hù)可以通過(guò)各種管道來(lái)獲得和定制自己的監(jiān)測(cè)腳本。所以綜上所述,這兩種監(jiān)測(cè)的方案各有其優(yōu)勢(shì)。因此我們會(huì)在下文中針對(duì)兩種方案各提供一部分案例由簡(jiǎn)單到復(fù)雜,一步步對(duì)各種方案的操作方法予以說(shuō)明和講解。
在更多的情況下很多企業(yè)都傾向于選擇通過(guò)SNMP來(lái)獲取服務(wù)器運(yùn)行的各種信息,因此我們花點(diǎn)時(shí)間來(lái)介紹一下SNMP協(xié)議的基本概念以及工作原理。
簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議SNMP是一種廣泛用于監(jiān)測(cè)網(wǎng)絡(luò)設(shè)備(計(jì)算機(jī)、路由器)甚至其它設(shè)備(例如UPS)的網(wǎng)絡(luò)協(xié)議,也是專(zhuān)門(mén)設(shè)計(jì)用于在IP網(wǎng)絡(luò)管理網(wǎng)絡(luò)節(jié)點(diǎn)(包括服務(wù)器、工作站、路由器、交換機(jī)及 HUBS 等)的一種標(biāo)準(zhǔn),屬于應(yīng)用層協(xié)議。SNMP使網(wǎng)絡(luò)管理員能夠管理網(wǎng)絡(luò)效能,發(fā)現(xiàn)并解決網(wǎng)絡(luò)問(wèn)題以及規(guī)劃網(wǎng)絡(luò)增長(zhǎng)。通過(guò) SNMP 接收隨機(jī)消息(及事件報(bào)告),網(wǎng)絡(luò)管理系統(tǒng)將獲知網(wǎng)絡(luò)出現(xiàn)的各種問(wèn)題。
SNMP 管理的網(wǎng)絡(luò)有三個(gè)主要組成部分:被管理的設(shè)備(Managed Device)、代理(Agent)和網(wǎng)絡(luò)管理系統(tǒng)(Network Management Station即NMS)。
被管理的設(shè)備是一個(gè)網(wǎng)絡(luò)節(jié)點(diǎn),包含ANMP代理并處在管理網(wǎng)絡(luò)之中,有時(shí)也稱(chēng)為網(wǎng)絡(luò)單元,用于收集并存儲(chǔ)網(wǎng)絡(luò)信息,通過(guò)SNMP、NMS能得到這些信息。被管理的設(shè)備可能是路由器、訪問(wèn)服務(wù)器,交換機(jī)和網(wǎng)橋、HUBS、主機(jī)或打印機(jī)等。
SNMP代理是被管理設(shè)備上的一個(gè)網(wǎng)絡(luò)管理軟件模塊。SNMP代理?yè)碛斜镜氐南嚓P(guān)管理信息,并將它們轉(zhuǎn)換成與SNMP兼容的格式。
NMS運(yùn)行應(yīng)用程序以實(shí)現(xiàn)監(jiān)測(cè)被管理設(shè)備。此外,NMS還為網(wǎng)絡(luò)管理提供了大量的處理程序及必須的儲(chǔ)存資源。任何受管理的網(wǎng)絡(luò)至少需要一個(gè)或多個(gè)NMS。
目前,SNMP有3種不同的版本:SNMPv1、SNMPv2和SNMPv3。第1版和第2版沒(méi)有太大差距,但SNMPv2是增強(qiáng)版本,包含了其它協(xié)議操作。前兩種snmp協(xié)議主要使用基于團(tuán)體名稱(chēng)(community)的方式來(lái)實(shí)現(xiàn)網(wǎng)管工作站對(duì)代理的訪問(wèn)認(rèn)證,與前兩種相比SNMPv3則包含更多安全和遠(yuǎn)程配置,在認(rèn)證方面可以使用基于某種對(duì)稱(chēng)和非對(duì)稱(chēng)加密協(xié)議來(lái)加密的用戶(hù)名和密碼來(lái)實(shí)現(xiàn)網(wǎng)管工作站對(duì)代理的訪問(wèn)認(rèn)證。而且為解決不同SNMP版本間的不兼容問(wèn)題,RFC3584定義了三者共存策略。
另外SNMP協(xié)議包括了四種基本的動(dòng)作:
Get:如果網(wǎng)絡(luò)管理系統(tǒng)需要獲得被監(jiān)測(cè)的設(shè)備信息,則會(huì)執(zhí)行g(shù)et動(dòng)作。
GetNext:如果要獲得的某個(gè)項(xiàng)目信息是一個(gè)項(xiàng)目列表中多個(gè)項(xiàng)目之一,網(wǎng)絡(luò)管理系統(tǒng)會(huì)執(zhí)行g(shù)etnext獲得相關(guān)所有項(xiàng)目信息。
Set:網(wǎng)絡(luò)管理系統(tǒng)使用set命令來(lái)改變被管理項(xiàng)目的某個(gè)值。
Trap:如果被管理設(shè)備需要通知網(wǎng)絡(luò)管理系統(tǒng)某些信息,需要執(zhí)行trap命令。
最后在Red Hat中的SNMP相關(guān)包,在該包中提供了MIB,其信息文件是/usr/share/snmp/mibs。MIB是關(guān)于某個(gè)設(shè)備層次化的數(shù)據(jù)庫(kù)(Management Information Base)。對(duì)于這個(gè)設(shè)備的每個(gè)值都采用唯一的Object Identifier即OID表示,OID格式包括可用名稱(chēng),前綴或者數(shù)字。
如果在系統(tǒng)中安裝了net-snmp-utils包,則snmp中的MIB和OID信息可以通過(guò)snmptranslate命令來(lái)顯示出整個(gè)MIB樹(shù)以及其上OID的信息,snmptranslate主要用于轉(zhuǎn)換以文字名稱(chēng)或者數(shù)字ID顯示的OID信息以及列出snmp的MIB結(jié)構(gòu)樹(shù)。
相關(guān)文章:
1. 在虛擬機(jī)中如何配置Linux系統(tǒng)網(wǎng)絡(luò)環(huán)境?2. fedora終端怎么自定義透明效果? linux透明效果的設(shè)置方法3. 如何解決Linux下Too many open files問(wèn)題4. Linux之find命令的參數(shù)5. CentOS 8.0.1905 linux服務(wù)器系統(tǒng)安裝與配置圖解教程6. Linux系統(tǒng)下使用Git撤銷(xiāo)操作的方法教程7. linux服務(wù)器快速卸載安裝node環(huán)境(簡(jiǎn)單上手)8. Linux Mint系統(tǒng)怎么開(kāi)啟淡出特效?9. 解決Linuxmint-18.2字體顯示不清晰的方法10. 解決linux忘記root密碼的方法
