如何監(jiān)控 Linux 服務(wù)器狀態(tài)

如何監(jiān)控 Linux 服務(wù)器狀態(tài)

linux 服務(wù)器我們天天打交道,特別是 Linux 工程師更是如此。為了保證服務(wù)器的安全與性能,我們經(jīng)常需要監(jiān)控服務(wù)器的一些狀態(tài),以保證工作能順利開(kāi)展。

本文介紹的幾個(gè)命令,不僅僅適用于服務(wù)器監(jiān)控,也適用于我們?nèi)粘G闆r下的開(kāi)發(fā)。

1. watch

watch 命令我們的使用頻率很高,它的基本作用是,按照指定頻率重復(fù)執(zhí)行某一條指令。使用這個(gè)命令,我們可以重復(fù)調(diào)用一些命令來(lái)達(dá)到監(jiān)控服務(wù)器的作用。

默認(rèn)情況下,watch 命令的執(zhí)行周期是 2 秒,但我們可以使用 -n 選項(xiàng)來(lái)指定運(yùn)行頻率,比如我們想要每隔 5 秒執(zhí)行 date 命令,可以這么執(zhí)行:

$?watch?-n?5?date

一臺(tái)服務(wù)器肯定有多人在用,特別是本部門(mén)的小伙伴。對(duì)于這些小伙伴有沒(méi)渾水摸魚(yú),我們可以使用一些命令來(lái)監(jiān)控他們。

我們可以每隔 10 秒執(zhí)行 who 命令,來(lái)看看都有誰(shuí)在使用服務(wù)器。

$?watch?-n?10?who Every?10.0s:?who?????????????????????????????butterfly:?Tue?Jan?23?16:02:03?2019  shs??????:0???????????2019-01-23?09:45?(:0) dory?????pts/0????????2019-01-23?15:50?(192.168.0.5) alvin?????pts/1????????2019-01-23?16:01?(192.168.0.15) shark????pts/3????????2019-01-23?11:11?(192.168.0.27)

如果發(fā)現(xiàn)系統(tǒng)運(yùn)行很慢,我們可以調(diào)用 uptime 命令來(lái)查看系統(tǒng)平均負(fù)載情況。

$?watch?uptime Every?2.0s:?uptime???????????????????????????butterfly:?Tue?Jan?23?16:25:48?2019  ?16:25:48?up?22?days,??4:38,??3?users,??load?average:?1.15,?0.89,?1.02

一些關(guān)鍵的進(jìn)程肯定不能掛,否則可能會(huì)影響到業(yè)務(wù)開(kāi)展,所以我們可以重復(fù)統(tǒng)計(jì)服務(wù)器中的所有進(jìn)程數(shù)量。

$?watch?-n?5?'ps?-ef?|?wc?-l' Every?5.0s:?ps?-ef?|?wc?-l???????????????????butterfly:?Tue?Jan?23?16:11:54?2019  245

想動(dòng)態(tài)知道服務(wù)器內(nèi)存使用情況,可以重復(fù)執(zhí)行 free 命令。

$?watch?-n?5?free?-m Every?5.0s:?free?-m??????????????????????????butterfly:?Tue?Jan?23?16:34:09?2019  ??????????????total????????used????????free??????shared??buff/cache???available Mem:???????????5959?????????776????????3276??????????12????????1906????????4878 Swap:??????????2047???????????0????????2047

當(dāng)然不僅僅是這些,我們還可以重復(fù)調(diào)用很多命令來(lái)對(duì)服務(wù)器一些關(guān)鍵參數(shù)進(jìn)行監(jiān)控,

2. top

使用 top 命令我們可以知道系統(tǒng)的很多關(guān)鍵參數(shù),而且是動(dòng)態(tài)更新的。默認(rèn)情況下,top 監(jiān)控的是系統(tǒng)的整體狀態(tài),如果我們只想知道某個(gè)人的使用情況,可以使用 -u 選項(xiàng)來(lái)指定這個(gè)人。

$?top?-u?alvin top?-?16:14:33?up?2?days,??4:27,??3?users,??load?average:?0.00,?0.01,?0.02 Tasks:?199?total,???1?running,?198?sleeping,???0?stopped,???0?zombie %Cpu(s):??0.0?us,??0.2?sy,??0.0?ni,?99.8?id,??0.0?wa,??0.0?hi,??0.0?si,??0.0?st MiB?Mem?:???5959.4?total,???3277.3?free,????776.4?used,???1905.8?buff/cache MiB?Swap:???2048.0?total,???2048.0?free,??????0.0?used.???4878.4?avail?Mem  ??PID?USER??????PR??NI????VIRT????RES????SHR?S??%CPU??%MEM?????TIME+?COMMAND 23026?alvin??????20???0???46340???7820???6504?S???0.0???0.1???0:00.05?systemd 23033?alvin??????20???0??149660???3140?????72?S???0.0???0.1???0:00.00?(sd-pam) 23125?alvin??????20???0???63396???5100???4092?S???0.0???0.1???0:00.00?sshd 23128?alvin??????20???0???16836???5636???4284?S???0.0???0.1???0:00.03?zsh

在這個(gè)結(jié)果里,你不僅僅可以看到 alvin 這個(gè)用戶(hù)運(yùn)行的所有的進(jìn)程數(shù),也可以看到每個(gè)進(jìn)程所消耗的系統(tǒng)資源(CPU,內(nèi)存),同時(shí)依然可以看到整個(gè)系統(tǒng)的關(guān)鍵參數(shù)。

3. ac

如果你想知道每個(gè)用戶(hù)登錄服務(wù)器所使用的時(shí)間,你可以使用 ac 命令。這個(gè)命令需要你安裝acct 包(Debian)或 psacct 包(RHEL,Centos)。

如果我們想知道所有用戶(hù)登陸服務(wù)器所使用的時(shí)間之和,我們可以直接運(yùn)行 ac 命令,無(wú)需任何參數(shù)。

$?ac ????????total?????1261.72

如果我們想知道各個(gè)用戶(hù)所使用時(shí)間,可以加上 -p 選項(xiàng)。

$?ac?-p ????????shark????????????????????????????????5.24 ????????alvin????????????????????????????????5.52 ????????shs???????????????????????????????1251.00 ????????total?????1261.76

我們還可以通過(guò)加上 -d 選項(xiàng)來(lái)查看具體每一天用戶(hù)使用服務(wù)器時(shí)間之和。

$?ac?-d?|?tail?-10 Jan?11??total????????0.05 Jan?12??total????????1.36 Jan?13??total???????16.39 Jan?15??total???????55.33 Jan?16??total???????38.02 Jan?17??total???????28.51 Jan?19??total???????48.66 Jan?20??total????????1.37 Jan?22??total???????23.48 Today???total????????9.83

小結(jié)

我們可以使用很多命令來(lái)監(jiān)控系統(tǒng)的運(yùn)行狀態(tài),本文主要介紹了三個(gè):watch 命令可以讓你重復(fù)執(zhí)行某一條命令來(lái)監(jiān)控一些參數(shù)的變化,top 命令可以查看某個(gè)用戶(hù)運(yùn)行的進(jìn)程數(shù)以及消耗的資源,而 ac 命令則可以查看每個(gè)用戶(hù)使用服務(wù)器時(shí)間。你經(jīng)常使用哪個(gè)命令呢?歡迎留言討論!

更多Linux文章,請(qǐng)?jiān)L問(wèn)Linux教程欄目進(jìn)行學(xué)習(xí)!

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊15 分享
站長(zhǎng)的頭像-小浪學(xué)習(xí)網(wǎng)月度會(huì)員