# 系統監控告警實踐

> 及時發現問題，保障系統穩定



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

無論你是用 Vibe Coding 做個人專案，還是想做一款真正的產品，掌握系統監控告警的方法都能幫你及時發現和處理問題，保障系統穩定運行。



## 為什麼要用監控告警？

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

![](https://pic.yupi.icu/1/image-20240729172241587.png)

**這種想法大錯特錯！**

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

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



## 怎麼實現監控告警呢？

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

![](https://pic.yupi.icu/1/image-20240729173020018.png)

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

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

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

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



## 監控工具推薦

### 1、伺服器監控

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

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

![](https://pic.yupi.icu/1/image-20240729175223676.png)



2）容器平台的監控能力

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

![](https://pic.yupi.icu/1/image-20240729175504698.png)

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

![](https://pic.yupi.icu/1/image-20240729175751550.png)



### 2、資料庫監控

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

![](https://pic.yupi.icu/1/image-20240729180105756.png)

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

![](https://pic.yupi.icu/1/image-20240729180157868.png)

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

![](https://pic.yupi.icu/1/image-20240729180528480.png)



### 3、應用監控

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

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

![](https://pic.yupi.icu/1/image-20240729181837634.png)

![](https://pic.yupi.icu/1/image-20240729182031915.png)

還能查看應用拓撲結構、分析呼叫鏈路等等：

![](https://pic.yupi.icu/1/image-20240729181939087.png)

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

![](https://pic.yupi.icu/1/image-20240729182157448.png)

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

![](https://pic.yupi.icu/1/image-20240729182459731.png)

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

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

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



### 4、前端監控

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

![](https://pic.yupi.icu/1/image-20240625112621549.png)






## 推薦資源

1）魚皮 AI 導航網站：[AI 資源大全、最新 AI 資訊、免費 AI 教程](https://ai.codefather.cn)

2）編程導航學習圈：[學習路線、編程教程、實戰專案、求職寶典、交流答疑](https://www.codefather.cn)

3）程式設計師面試八股文：[實習/校招/社招高頻考點、企業真題解析](https://www.mianshiya.com)

4）程式設計師寫履歷神器：[專業模板、豐富例句、直通面試](https://www.laoyujianli.com)

5）1 對 1 模擬面試：[實習/校招/社招面試拿 Offer 必備](https://ai.mianshiya.com)