值得收藏!4個(gè)好用的Linux監(jiān)控工具!
身為一個(gè)運(yùn)維開發(fā)人員,如果你不知道眼下當(dāng)前服務(wù)器底層操作系統(tǒng)中正在發(fā)生什么,那就有點(diǎn)合眼摸象了。其實(shí),你可以根據(jù)相應(yīng)數(shù)據(jù)做出一定的推測(cè),但是要做到這一點(diǎn),就需要原始數(shù)據(jù),并且數(shù)據(jù)要有一定的實(shí)時(shí)性。
你需要能夠根據(jù)操作系統(tǒng)當(dāng)前的運(yùn)行狀態(tài),結(jié)合監(jiān)控?cái)?shù)據(jù)來(lái)做出合理判斷,采取相應(yīng)措施。
你是否曾經(jīng)遇到過(guò)一臺(tái)服務(wù)器運(yùn)行緩慢,但是 CPU 使用率看起來(lái)不是很高的情況?你是否遇到過(guò)服務(wù)器的網(wǎng)絡(luò)利用率很高,但是定位不到導(dǎo)致高網(wǎng)絡(luò)利用率的進(jìn)程情況?
下面介紹的這些工具可以給你提供幫助。最重要的是,它們中的大多數(shù)都可以在沒有 GUI 的情況下使用,并且能輕松安裝在大多數(shù)服務(wù)器上。以下就是每天能用到的一些不錯(cuò)的 Linux 監(jiān)控工具,它們可以幫助我們快速準(zhǔn)確地診斷和定位問題,快來(lái)一起看下去吧!

一、iotop
如果你想知道到底哪些進(jìn)程消耗了服務(wù)器寶貴的 I/O 資源,那么請(qǐng)使用 iotop,能無(wú)數(shù)次地使用它通過(guò) IOPS 參數(shù)來(lái)定位那些瘋狂占用磁盤 IO 的耗時(shí)進(jìn)程。

你只是無(wú)法從傳統(tǒng)工具(如 top)中獲取原始數(shù)據(jù)。當(dāng)使用 iotop 時(shí),你會(huì)發(fā)現(xiàn)正如工具的名字所描述的一樣,它會(huì)展示進(jìn)程和系統(tǒng)的 I/O 資源使用情況。
你可以將其用于多種目的,但最關(guān)鍵的是查看磁盤使用情況并標(biāo)記潛在的性能瓶頸。將此工具與 top 或 htop 等其他工具結(jié)合使用,能幫你更全面地了解服務(wù)器當(dāng)前負(fù)載情況。
但不建議將 iotop 用于基準(zhǔn)測(cè)試。盡管你能清楚地了解每個(gè)進(jìn)程占用多少 I/O 資源,但它更適合實(shí)時(shí)監(jiān)控而不是重復(fù)的性能測(cè)試。如果你對(duì) I/O 基準(zhǔn)測(cè)試感興趣,推薦一個(gè)名為 fio 的工具。
https://fio.readthedocs.io/en/latest/fio_doc.html

二、htop
該工具比 top 工具更具視覺吸引力,并且擁有出色的默認(rèn)配色方案。使用它,你就可以馬上對(duì)系統(tǒng)當(dāng)前運(yùn)行情況有一個(gè)清晰了解。
你能清晰地在水平條形圖中查看計(jì)算機(jī)內(nèi)核數(shù)目以及它們的利用率。同樣的,你還可以獲得內(nèi)存使用情況的簡(jiǎn)單統(tǒng)計(jì)信息,并且在底部也有經(jīng)典的 top 進(jìn)程列表。
它還能快速地提供使用者所關(guān)注的信息??梢钥吹椒?wù)器每核 CPU 使用率和內(nèi)存使用率在圖形上是怎樣的 - 而不是一個(gè)無(wú)聊的百分比。
如果你肯定某個(gè)進(jìn)程正在耗盡系統(tǒng)上的所有核心從而打開 htop 進(jìn)行查看,那么就會(huì)發(fā)現(xiàn)大片紅色,整個(gè)過(guò)程快速而簡(jiǎn)單。

三、IPTraf
這是一個(gè)診斷網(wǎng)絡(luò)問題非常有用的工具。使用此工具,你可以監(jiān)控正在網(wǎng)絡(luò)傳輸?shù)木W(wǎng)絡(luò)流量。也能以特定的接口或流量類型(例如特定的 TCP 端口)進(jìn)行過(guò)濾。它與 Wireshark 功能非常相似,不同之處在于它更輕巧,并且也可以在沒有 GUI 的情況下運(yùn)行。

http://iptraf.seul.org/
https://www.wireshark.org/
另外,該監(jiān)控工具還有一些非常棒的功能,比如按數(shù)據(jù)包大小對(duì)流量進(jìn)行統(tǒng)計(jì)細(xì)分:
你可以使用 tcpdump 或 tshark 之類的命令行工具執(zhí)行類似的操作,但是此工具是菜單驅(qū)動(dòng)的,更易于瀏覽。如果你更傾向于交互式地過(guò)濾和查看網(wǎng)絡(luò)流量情況,那么 IPTraf 這款工具會(huì)如你所愿。

四、Monit
這是你可以在 Linux 上使用的最靈活、功能最強(qiáng)大的監(jiān)視工具之一。Monit 出現(xiàn)了很多年,它能通過(guò)多種方式進(jìn)行配置以支持不同類型的閾值監(jiān)控和性能告警。

https://mmonit.com/
Monit 允許你指定要在 Linux 操作系統(tǒng)上監(jiān)視的進(jìn)程、端口、文件等。它支持使用復(fù)雜的回退計(jì)時(shí)器 back-off timer 和消息來(lái)設(shè)置動(dòng)態(tài)警報(bào)模式。
一個(gè)監(jiān)控場(chǎng)景比如你想要監(jiān)控特定進(jìn)程以確保其正在運(yùn)行。如果該進(jìn)程崩潰一次,只需重新啟動(dòng)它即可。如果它開始多次連續(xù)地崩潰,那就不要重新啟動(dòng)該進(jìn)程,而應(yīng)該發(fā)送警報(bào)。這樣的監(jiān)控場(chǎng)景可以通過(guò) Monit 的幾行配置輕松實(shí)現(xiàn)。
Monit 甚至為守護(hù)程序提供了一個(gè)不錯(cuò)的輕量級(jí) Web 界面,讓你一眼就能看到服務(wù)器發(fā)生了什么:

無(wú)論你是管理單個(gè)服務(wù)器還是集群,Monit 提供了最簡(jiǎn)單,最高效和最劃算的(免費(fèi)?。┓椒▉?lái)幫你監(jiān)控服務(wù)的運(yùn)行狀態(tài)。
注:文章源自微信公眾號(hào)進(jìn)擊云原生,侵刪