自從用了這些監控工具,我連續幾天沒睡好覺!

程序员鱼皮發表於2024-08-01

大家好,我是程式設計師魚皮,今天分享一些很實用的系統監控告警工具。

為什麼要用監控告警?

說到監控告警,沒有企業開發經驗的同學非常容易忽視它,甚至會有同學覺得沒有必要,大不了出了 Bug 再修就是了。

自從用了這些監控工具,我連續幾天沒睡好覺!

這種想法大錯特錯!

我們把系統想象成人的身體。有的時候,一個人表面看起來可能很健康,但可能只是沒有機會發現自己體內的異常,結果等到真的出事了,往往要承擔的後果更嚴重。所以才需要定期體檢,及時發現和處理問題。系統監控告警的作用也是類似的,能夠及時發現系統中潛在的異常和問題、線上出了問題也能第一時間發現,儘早處理,從而預防或減輕故障。

此外,監控系統還有一些其他的好處,我們接著往下看。

怎麼實現監控告警呢?

最直接能想到的辦法就是自己寫程式碼實現,比如給要重點關注的功能加點兒邏輯,出現某個異常的時候傳送一條簡訊 / 郵件 / 企微訊息即可。我們最開始就是這麼做的:

自從用了這些監控工具,我連續幾天沒睡好覺!

但其實業務告警只是監控告警的其中一個層面,就像是人體的表面皮膚檢查。如果我們想更全面地、更準確地監控系統的健康,還要裡裡外外做個全方位的體檢,包括伺服器監控、網路監控、應用監控、資料庫監控、API 介面監控等等。

是的,聽上去就很複雜,所以監控在現代運維中有了一個更專業的別名,叫 “可觀測性”。可觀測性是指系統能夠透過監控和分析其內部狀態來了解和診斷其健康狀況和效能的能力。這個概念不僅包含了傳統的監控,還擴充套件到了資料的收集、分析和響應。舉個例子,我們透過監控發現系統的記憶體利用率不高,就可以適當降配節約成本;發現系統的記憶體利用率過高,就可以考慮是否要升配擴容。

想要自己最佳化系統的可觀測性還是很複雜的,資料收集、資料儲存、資料分析、告警機制、可用性保障、效能等等都要考慮,大廠都是有規模的基礎設施團隊來做。

對於我們個人開發者或者小公司來說,既然是全方位的 “體檢”,我們一般不會自己來做,而是會選擇更專業的工具或服務,直接使用和接入就好。下面就推薦幾個我們團隊在用的。

監控工具推薦

1、伺服器監控

1)伺服器自帶的監控能力

只要你使用的是大廠的雲伺服器,基本都自帶了伺服器監控,還可以設定告警。比如下圖騰訊雲輕量應用伺服器的監控,能看到 CPU、記憶體、網路頻寬、硬碟等資源的使用情況:

自從用了這些監控工具,我連續幾天沒睡好覺!

2)容器平臺的監控能力

如果你使用的是容器的方式來部署專案,基本上容器平臺也自帶了監控告警能力。比如微信雲託管的服務監控,除了看到系統資源的佔用情況外,還能看到介面呼叫量、請求錯誤量、介面 QPS 和響應時間,相當於自帶了一部分 API 介面監控能力。

自從用了這些監控工具,我連續幾天沒睡好覺!

而且雲託管平臺支援在微信群內接收告警資訊,非常方便。一旦節點被攻擊了,立刻就能通知到你。

自從用了這些監控工具,我連續幾天沒睡好覺!

2、資料庫監控

以前,沒有資料庫監控,我們很難關注到資料庫的執行狀態,不知道它工作辛不辛苦、有沒有摸魚或者超負荷加班。但現在,如果你使用的是第三方雲服務商的雲資料庫,可以直接在平臺上檢視資料庫的資源利用情況。比如我們用的騰訊雲資料庫自帶的監控:

自從用了這些監控工具,我連續幾天沒睡好覺!

以前只能透過使用者反饋或者伺服器的故障來發現危害系統的慢 SQL,現在使用雲資料庫自帶的智慧管家,就能第一時間幫你發現慢 SQL,防患於未然。

自從用了這些監控工具,我連續幾天沒睡好覺!

還能一鍵幫你的資料庫做個體檢,不是 100 分的話都要及時修改:

自從用了這些監控工具,我連續幾天沒睡好覺!

3、應用監控

應用監控的範圍比較廣,我們使用的是阿里雲的應用實時監控服務 ARMS,主要的原因是對比下來阿里在 Java 應用服務這一塊的專業性確實更高。

包括應用伺服器(比如 Java 的 Tomcat)的狀態、API 介面呼叫情況、系統內部依賴服務的呼叫情況、定時任務的呼叫情況、執行緒池的狀態、虛擬機器的記憶體、GC 的情況等等。

自從用了這些監控工具,我連續幾天沒睡好覺!

自從用了這些監控工具,我連續幾天沒睡好覺!

還能檢視應用拓撲結構、分析呼叫鏈路等等:

自從用了這些監控工具,我連續幾天沒睡好覺!

除了監控能力外,它的告警能力是真的強!我們把服務接入到了企微,只要有個環節出了問題,立刻就會給我們傳送告警。還可以快速檢視告警詳情、認領告警、遮蔽告警等等。

自從用了這些監控工具,我連續幾天沒睡好覺!

實不相瞞,我們剛接入這玩意的那幾天,還是挺痛苦的,因為暴露了很多之前沒發現的系統問題,大半夜的企微也一直滴滴滴滴滴滴擱那響!我們團隊的開發同學苦不堪言。

自從用了這些監控工具,我連續幾天沒睡好覺!

不過現在已經習慣了。。。額,準確地說是系統經過最佳化後,已經變得更健康了~

不管怎麼樣,接入監控告警還是很有必要的,感覺像是開了通透世界,對系統的狀態瞭若指掌了!

但是監控服務的使用超過一定次數,是需要費用的,大概每月幾十 G 的免費額度吧,企業專案的話其實很快就用完了。用於學習或者個人網站可以試試。

4、前端監控

除了上面的監控外,有時我們還想了解使用者的行為、使用者屬性和業務指標,比如每天有多少使用者訪問網站、是用的 PC 還是手機、手機是什麼牌子的、有多少新使用者註冊等等。那麼可能還需要前端監控(當然也可以後端埋點統計),之前分享過的,用百度統計,一行程式碼就能接入到前端網站中,很方便~

自從用了這些監控工具,我連續幾天沒睡好覺!


OK,以上就是本期分享,恰飯去了~

更多

💻 程式設計學習交流:程式設計導航

📃 簡歷快速製作:老魚簡歷

✏️ 面試刷題神器:面試鴨

相關文章