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