關于我(wǒ)(wǒ)們

質量為本、客戶為根、勇于拼搏、務實創新

< 返回新聞公共列表

服務器監控的知(zhī)識

發布時間:2019-08-22 13:55:38

監控的主要目的是為了将一(yī)些重要指标采樣記錄下(xià)來,一(yī)旦這些指标發生(shēng)較大(dà)變化,可以配合報警系統将問題反饋到負責人那。監控的點可以很細緻,也可以隻選主要的指标。

日志(zhì)監控

01



業務邏輯型的監控主要體(tǐ)現在日志(zhì)上,做足了日志(zhì)記錄的功夫之後,如何将日志(zhì)應用起來是個問題。通過監控異常日志(zhì)文件的變動,将新增的異常按異常類型和數量反映出來。某些異常與具體(tǐ)的某個子系統相關,監控出現的某個異常多半能反映出子系統的狀态。


除了異常日志(zhì)的監控外(wài),對于訪問日志(zhì)的監控也能體(tǐ)現出實際的業務QPS值。觀察QPS的表現能夠檢查業務在時間上的分(fēn)布。


此外(wài),從訪問日志(zhì)中(zhōng)也能實現PV和UV的監控。同QPS值一(yī)樣,通過對PV/UV的監控,可以很好地知(zhī)道應用的使用者們的習慣、預知(zhī)訪問高峰等。


響應時間

02



響應時間也是一(yī)個需要監控的點。一(yī)旦系統的某個子系統出現異常或者性能瓶頸,将會導緻系統的響應時間變長。響應時間可以在Nginx一(yī)類的反向代理上監控,也可以通過應用自行産生(shēng)的訪問日志(zhì)來監控。健康的系統響應時間應該是波動較小(xiǎo)的、持續均衡的。

進程監控

03



監控日志(zhì)和響應時間都能較好地監控到系統的狀态,但是它們的前提是系統是運行狀态的,所以監控進程是比前兩者更為緊要的任務。監控進程一(yī)般是檢查操作系統中(zhōng)運行的應用進程數,比如對于采用多進程架構的Web應用,就需要檢查工(gōng)作進程的數量,如果低于預估值,就應當發出報警聲。


磁盤監控

04



磁盤監控主要是監控磁盤的用量。由于日志(zhì)頻(pín)繁寫的緣故,磁盤空間漸漸被用光。一(yī)旦磁盤不夠用,将會引發系統的各種問題。給磁盤的使用量設置一(yī)個上限,一(yī)旦磁盤用量超過警戒值,服務器的管理者就應該整理日志(zhì)或清理磁盤了。


内存監控

05



對于Node而言,一(yī)旦出現内存洩漏,不是那麼容易排查的。監控服務器的内存使用狀況,可以檢查應用中(zhōng)是否存在内存洩漏的狀況。如果内存隻升不降,那麼鐵定存在内存洩漏問題。健康的内存使用應當是有升有降,在訪問量大(dà)的時候上升,在訪問量回落的時候,占用量也随之回落。


如果進程中(zhōng)存在内存洩漏,又(yòu)一(yī)時沒有排查解決,有一(yī)種方案可以解決這種狀況。這種方案應用于多進程架構的服務集群,讓每個工(gōng)作進程指定服務多少次請求,達到請求數之後進程就不再服務新的連接,主進程啟動新的工(gōng)作進程來服務客戶,舊(jiù)的進程等所有連接斷開(kāi)後就退出。這樣即使存在内存洩漏的風險,也能有效地規避内存洩漏帶來的影響。但這屬于規避問題,隻解決了問題的表象,不推薦使用。


總而言之,監控内存并長時間觀察是防止系統出現異常的好方法。如果突然出現内存異常,也能夠追蹤到是近期的哪些代碼改動導緻的問題。


CPU占用監控

06



服務器的CPU占用監控也是必不可少的項,CPU的使用分(fēn)為用戶态、内核态、IOWait等。如果用戶态CPU使用率較高,說明服務器上的應用需要大(dà)量的CPU開(kāi)銷;如果内核态CPU使用率較高,說明服務器花費(fèi)大(dà)量時間進行進程調度或者系統調用;IOWait使用率則反應的是CPU等待磁盤I/O操作。


CPU的使用率中(zhōng),用戶态小(xiǎo)于70%、内核态小(xiǎo)于35%且整體(tǐ)小(xiǎo)于70%時,處于健康狀态。監控CPU占用情況,可以幫助分(fēn)析應用程序在實際業務中(zhōng)的狀況。合理設置監控阈值能夠很好地預警。


CPU load監控

07



CPU load又(yòu)稱CPU平均負載,它用來描述操作系統當前的繁忙程度,可以簡單地理解為CPU在單位時間内正在使用和等待使用CPU的平均任務數。它有3個指标,即1分(fēn)鐘的平均負載、5分(fēn)鐘的平均負載、15分(fēn)鐘的平均負載。CPU load過高說明進程數量過多,這在Node中(zhōng)可能體(tǐ)現在用子進程模塊反複啟動新的進程。監控該值可以防止意外(wài)産生(shēng)。


I/O負載

08



I/O負載指的主要是磁盤I/O。反應的是磁盤上的讀寫情況,對于Node編寫的應用,主要是面向網絡服務,是故不太可能出現I/O負載過高的情況,大(dà)多數的I/O壓力自于數據庫。不管Node進程是否與數據庫或其他I/O密集的應用共處相同的服務器,我(wǒ)(wǒ)們都應監控該值以防萬一(yī)。


網絡監控

09



雖然網絡流量監控的優先級沒有上述項目那麼高,但還是需要對流量進行監控并設置上限值。即便應用突然受到用戶的青睐,流量暴漲時也能通過數值感知(zhī)到網站的宣傳是否有效。一(yī)旦流量超過警戒值,開(kāi)發者就應當找出流量增長的原因。對于正常增長,應當評估是否該增加硬件設備來為更多用戶提供服務。網絡流量監控的兩個主要指标是流入流量和流出流量。


應用狀态監

10



除了這些硬性需要檢測的指标外(wài),應用還應當提供一(yī)種機制來反饋其自身的狀态信息,外(wài)部監控将會持續性地調用應用的反饋接口來檢查它的健康狀态。


最簡單的狀态反饋就是給監控響應一(yī)個時間戳,監控方檢查時間戳是否正常即可。


健壯一(yī)些的狀态響應則是将應用的依賴項的狀态打印出來,如數據庫連接是否正常、緩存是否正常等。



/template/Home/Zkeys/PC/Static