iT邦幫忙

鐵人檔案

2026 iThome 鐵人賽
回列表
Kubernetes

從看得到到看得懂:30 天在自架 K8s 上實踐可觀測性與告警 系列

「你的服務怎麼監控?」面試被問到,我只答得出「看 log 有沒有 error」。事後查了資料,Grafana、SLO 這些名詞認得了,監控和可觀測性差在哪還是講不清楚。

一開始不碰工具,先講清楚 SLI/SLO 與三大支柱各能回答什麼問題。接著用 kind 在筆電養一個服務,在其中埋三個故障,之後用 metrics、logs、traces 逐一查出來。也會實作告警,重點是不製造告警疲勞。最後讓一隻 agent 讀 Alertmanager,再用 OpenTelemetry 觀測它自己,並把整套環境寫成 Terraform,砍掉叢集重建驗收。

寫給和我一樣一知半解的人。

參賽天數 23 天 | 共 23 篇文章 | 4 人訂閱 訂閱系列文 RSS系列文
DAY 11

Day 11:USE 還是 RED:兩套方法論怎麼選

昨天講了四個黃金訊號,今天要講另外兩套:USE 和 RED。 剛開始看到這三套的時候覺得也太複雜了吧,為什麼差不多東西要出三套,到底要用哪一個?查了之後發現這個...

2026-09-11 ‧ 由 wise4466 分享
DAY 12

Day 12:擴容之後,為什麼另一半的 Pod 沒收到流量

昨天講完 USE 和 RED 兩套方法論,也把三個服務的 RED 九宮格做出來了。今天做另外一半:節點的 USE。 然後我打算做一個小實驗,把 pricing...

2026-09-12 ‧ 由 wise4466 分享
DAY 13

Day 13:自己埋指標與它的代價:counter/histogram、cardinality 與 label 設計

昨天把 pricing 擴成兩份,發現流量全壓在同一個 Pod 上,結論是「聚合會藏東西」。而聚合藏不藏得住,取決於當初把什麼寫進標籤裡。 這是 Metrics...

2026-09-13 ‧ 由 wise4466 分享
DAY 14

Day 14:為什麼結構化日誌是可觀測性的前提

昨天把 Metrics 區塊收尾了,今天開始 Logs。這一天一樣不裝任何東西,講一件我原本覺得很無聊、後來發現是整個區塊前提的事。 坦白說,我第一次看到「結構...

2026-09-14 ‧ 由 wise4466 分享
DAY 15

Day 15:用 Loki 收 log,並在 Grafana 裡與指標並排

昨天講完為什麼 log 要寫成結構化的,今天把它們收起來。 要裝兩個東西:Loki(存 log 的資料庫)和 Grafana Alloy(去讀 log 再送進...

2026-09-15 ‧ 由 wise4466 分享
DAY 16

Day 16:LogQL 實戰:反查 Day 6 埋的第一個故障

今天是這個系列第一次破案。 Day 6 埋了三個故障,第一個是「算錯價但回 200」——部分商品沒套到折扣,狀態碼正常、速度正常、錯誤率 0。Day 7 用 k...

2026-09-16 ‧ 由 wise4466 分享
DAY 17

Day 17:分散式追蹤在解什麼問題:從一個跨服務請求說起

昨天結案的時候有一條「查不到的」:pricing 的 WARN 跟 gateway 的 checkout 之間沒有共同欄位,我知道兩邊各發生幾次,就是對不起來。...

2026-09-17 ‧ 由 wise4466 分享
DAY 18

Day 18:OpenTelemetry 的設計理念與 Collector 架構

昨天講了 trace 的原理,今天講產生它的工具:OpenTelemetry,通常簡稱 OTel。 這篇要回答三個問題:它為什麼會出現、它包含哪些東西、還有那個...

2026-09-18 ‧ 由 wise4466 分享
DAY 19

Day 19:自動與手動 instrumentation:把 trace 埋進示範服務

今天是這 30 天唯一要認真寫程式的一天。 instrumentation(埋點)的意思是在程式裡加上產生遙測資料的程式碼。它分自動和手動兩種,我兩種都會用,因...

2026-09-19 ‧ 由 wise4466 分享
DAY 20

Day 20:三大支柱串起來:exemplar 與 trace_id 關聯,反查第二個故障

Day 3 我給自己立了一個判準:從一張圖上的異常點出發,要幾次點擊才能看到造成它的那筆 log?如果答案是「開三個瀏覽器分頁」,那我有的是三個孤島,不是三大支...

2026-09-20 ‧ 由 wise4466 分享