iT邦幫忙

2025 iThome 鐵人賽

DAY 25
0
自我挑戰組

一路side project - 學習筆記系列 第 25

[Day 25] Cloud Monitoring x 第一個警告(Alert)

  • 分享至 

  • xImage
  •  

Cloud Monitoring: Qwik Start

總覽 (Overview)

Cloud Monitoring 會從各種來源收集資料,包括:

  • Google Cloud (GCP)
  • Amazon Web Services (AWS)
  • 外部網站的正常運行時間探測 (hosted uptime probes)
  • 應用程式本身埋設的監控碼 (application instrumentation)
  • 以及許多常見的應用程式元件 (如 Cassandra, Nginx, Apache, Elasticsearch 等)。

收集到這些指標 (metrics)、事件 (events) 和元數據 (metadata) 後,Cloud Monitoring 會將其擷取並透過儀表板 (dashboards)、圖表 (charts) 和快訊 (alerts) 的方式呈現出來,讓我們更容易理解系統狀況。快訊功能還可以和許多協作工具整合,例如 Slack、PagerDuty 等。

在這個 lab 中,會在一台虛擬機器 (VM) 上安裝監控和日誌代理程式 (agent),用來收集機器的資訊,其中也可能包含第三方應用程式的指標與日誌。

什麼是「代理程式 (Agent)」?

可以把「代理程式」想像成一個安裝在伺服器(VM)上的小型探測機器人

它的主要工作就是持續收集這台機器的各種數據,例如:

  • 系統指標:CPU 使用率、記憶體用量、硬碟空間、網路流量等。
  • 應用程式日誌:像是網站伺服器 (Apache) 的存取紀錄或錯誤訊息。

收集完後,它會自動將這些資料回傳到 Cloud Monitoring 的中央平台進行分析和視覺化。如果沒有這個代理程式,Cloud Monitoring 就無法得知 VM 內部發生的詳細情況。


實驗目標 (Objectives)

在這個實驗中,要學會如何:

  • 使用 Cloud Monitoring 監控一台 Compute Engine 虛擬機器 (VM) 執行個體。
  • 為 VM 安裝監控和日誌記錄代理程式。

Task 1:建立一台 Compute Engine 執行個體

這個任務的目標是創建一台 Linux 虛擬機器,作為我們後續監控的對象。

操作步驟:

  1. 在 GCP 主控台的導覽選單 (☰) 中,點擊 Compute Engine > VM 執行個體,然後點擊 建立執行個體
  2. 按照以下設定填寫欄位,其餘保留預設值:
    • 名稱 (Name): lamp-1-vm
    • 區域 (Region): <由lab指定>
    • 可用區 (Zone): <由lab指定>
    • 系列 (Series): E2
    • 機器類型 (Machine): e2-medium
  3. 開機磁碟 (Boot Disk) 區塊,確認作業系統是 Debian GNU/Linux 12 (bookworm)
  4. 防火牆 (Firewall) 區塊,勾選 允許 HTTP 流量
  5. 點擊 建立

等待幾分鐘,當 VM 建立完成後,會看到一個綠色勾勾。

為什麼要「允許 HTTP 流量」?

GCP 的防火牆預設會阻擋所有來自外部網路的連線,這是一種安全機制。HTTP 是網頁瀏覽的標準協定,它使用 80 連接埠 (port)。勾選這個選項,等於是在防火牆上開了一個通往 80 埠的門,這樣我們才能從外部網路(例如瀏覽器)連線到等一下要安裝的 Apache 網站伺服器。


Task 2:在 VM 上安裝 Apache2 網站伺服器

這個任務的目標是在剛剛建立的 VM 上安裝一個網站伺服器,讓它變成一台可以提供網頁服務的機器。

操作步驟:

  1. 在 VM 執行個體清單中,找到 lamp-1-vm 這一行,點擊 SSH 按鈕,開啟一個連線到 VM 的終端機視窗。

  2. 在 SSH 視窗中,依序執行以下指令來安裝 Apache2:BashBash

    # 更新套件庫清單,確保能抓到最新的軟體版本
    sudo apt-get update
    
    # 安裝 Apache 網站伺服器和 PHP 語言套件
    sudo apt-get install apache2 php7.0
    
    • sudo:是 "Superuser Do" 的縮寫,意思是「用系統管理員權限執行」。安裝軟體或修改系統設定通常需要這個權限。
    • apt-get:是 Debian/Ubuntu 系列 Linux 系統的套件管理器update 是更新軟體來源清單,install 則是安裝指定的軟體。
    • Apache2:是世界上最流行的網站伺服器軟體之一,它的工作就是接收來自瀏覽器的請求,並回傳對應的網頁內容。

    (過程中如果詢問是否繼續,輸入 Y 並按 Enter)

    # 重新啟動 Apache 服務,讓設定生效
    sudo service apache2 restart
    
  3. 回到 GCP 主控台的 VM 執行個體頁面,點擊 lamp-1-vm外部 IP (External IP)。應該會看到 Apache 的預設歡迎頁面。(可能會跳警告不安全,就直接繼續即可)

  4. 可透過SSH 方式查看 service 是否 active

    sudo systemctl status google-cloud-ops-agent"*"
    

https://ithelp.ithome.com.tw/upload/images/20251008/20154764trWTLlqht9.png


Task 3:建立一個「執行時間檢查」(Uptime Check)

這個任務的目標是設定一個監控服務,它會從外部網路定期檢查網站是否還活著

操作步驟:

  1. 在 GCP 主控台,前往 導覽選單 > 所有產品 > 可觀測性 > Monitoring

  2. 當 Monitoring 的總覽頁面開啟後,指標範圍 (Metrics Scope) 就準備好了。

  3. 在左側選單點擊 執行時間檢查 (Uptime checks),然後點擊 建立執行時間檢查

  4. 設定以下項目:

    • 通訊協定 (Protocol): HTTP
    • 資源類型 (Resource Type): Instance (執行個體)
    • 執行個體 (Instance): lamp-1-vm
    • 檢查頻率 (Check Frequency): 1 分鐘

    https://ithelp.ithome.com.tw/upload/images/20251008/20154764DbRsJ6OYlg.png

  5. 點擊 繼續 (Continue)

  6. 回應驗證 (Response Validation) 頁面,保留預設值,點擊 繼續

  7. 快訊與通知 (Alert & Notification) 頁面,保留預設值,點擊 繼續

  8. 標題 (Title): 輸入 Lamp Uptime Check

  9. 點擊 測試 (Test),確認 Monitoring 服務可以成功連線到 VM。看到綠色勾勾後,點擊 建立 (Create)

在 Console 會看到:
https://ithelp.ithome.com.tw/upload/images/20251008/20154764c3piddblWn.png


Task 4:建立一個「快訊政策」(Alerting Policy)

這個任務的目標是設定一個規則:當某個監控指標超過我們設定的門檻時,就自動發出通知

操作步驟:

  1. 在 Monitoring 頁面的左側選單,點擊 快訊 (Alerting),然後點擊 +建立政策 (+Create Policy)
  2. 點擊 選取指標 (Select a metric) 下拉選單,取消勾選 啟用中 (Active)
  3. 在搜尋框中輸入 Network traffic,然後選擇 VM instance > Interface > Network traffic,點擊 套用 (Apply)
  4. 點擊 下一步 (Next)
  5. 設定觸發條件:
    • 閾值位置 (Threshold position): 高於閾值 (Above threshold)
    • 閾值 (Threshold value): 500
    • 重新測試時間範圍 (Retest window): 1 分鐘
  6. 點擊 下一步 (Next)
  7. 點擊 通知管道 (Notification Channels) 旁邊的下拉箭頭,選擇 管理通知管道 (Manage Notification Channels)
  8. 在新分頁中,找到 電子郵件 (Email) 並點擊 新增 (ADD NEW)
  9. 輸入個人 Email 地址和一個顯示名稱 (Display name),然後儲存。
  10. 回到剛剛建立快訊政策的分頁,重新點擊 通知管道 (可能需要點擊旁邊的重新整理圖示),選擇剛剛建立的 Email 通知。
  11. 快訊名稱 (Alert name): 輸入 Inbound Traffic Alert
  12. 點擊 下一步 (Next),然後 建立政策 (Create Policy)

指標 (Metric) vs. 閾值 (Threshold)

  • 指標 (Metric):是一個可量化的數值,用來描述系統的某個狀態。例如:CPU 使用率、記憶體用量、網路流量 (bytes/sec) 等。
  • 閾值 (Threshold):是設定的一個臨界值
  • 政策 (Policy):就是一個完整的規則,例如:「如果 (IF) 網路流量 這個指標,在 1 分鐘 內持續高於 (Above) 500 這個閾值那麼 (THEN) 就透過 Email 這個通知管道發送警報。」

Task 5:建立儀表板和圖表

這個任務的目標是建立一個客製化的儀表板,將要關心的監控指標用圖表的方式集中呈現,方便一目了然。

操作步驟:

  1. 在 Monitoring 頁面的左側選單,點擊 資訊主頁 (Dashboards),然後點擊 +建立自訂資訊主頁
  2. 將儀表板命名為 Cloud Monitoring LAMP Qwik Start Dashboard
  3. 新增第一個圖表 (CPU 負載):
    • 點擊 +新增小工具 (+ ADD WIDGET)
    • 視覺化選項選擇 折線圖 (Line)
    • 小工具標題設為 CPU Load
    • 選取指標 中,搜尋 CPU load (1m),並選擇 VM instance > Cpu > CPU load (1m),然後套用。
  4. 新增第二個圖表 (接收的封包):
    • 再次點擊 +新增小工具,選擇 折線圖
    • 小工具標題設為 Received Packets
    • 選取指標 中,搜尋 Received packets,並選擇 VM instance > Instance > Received packets,然後套用。

Task 6:檢視日誌 (Logs)

這個任務的目標是查看由 VM 產生的詳細事件記錄,並觀察開關機時日誌的變化。

操作步驟:

  1. 前往 導覽選單 > 記錄 > 記錄瀏覽器 (Logs Explorer)
  2. 在資源 (Resource) 的下拉選單中,選擇 VM Instance > lamp-1-vm,然後點擊 套用 (Apply)。就可以看到這台 VM 的相關日誌。

https://ithelp.ithome.com.tw/upload/images/20251008/20154764snpp13ukPx.png

  1. 觀察開關機的變化:

    • 另外開啟一個新的瀏覽器視窗,前往 Compute Engine > VM 執行個體 頁面。
    • 在 VM 清單中,點擊 lamp-1-vm 右邊的三個點,選擇 停止 (Stop)

    https://ithelp.ithome.com.tw/upload/images/20251008/20154764HtYsW6xZh5.png

    • 同時觀察「記錄瀏覽器」視窗,會看到機器停止的相關日誌訊息。
    • 幾分鐘後,再用同樣的方式將 VM 啟動/繼續 (Start/resume)
    • 再次觀察「記錄瀏覽器」,會看到機器啟動過程的日誌訊息。

    https://ithelp.ithome.com.tw/upload/images/20251008/20154764ufsRxIsBMP.png

指標 (Metrics) vs. 日誌 (Logs) - 核心差異

這兩者是監控系統的兩大支柱:

  • 指標 (Metrics):是數字,通常是聚合性的數據(例如:過去一分鐘的平均 CPU 使用率)。它們適合用來觀察趨勢和設定快訊。指標告訴「發生了什麼事」(例如:CPU 飆高了)。
    • 比喻:汽車儀表板上的時速表、轉速表、油量表。
  • 日誌 (Logs):是文字,記錄了單一、帶有時間戳的事件(例如:「使用者登入失敗」、「資料庫連線逾時」)。它們適合用來除錯追查問題的根本原因。日誌告訴「為什麼會發生這件事」。
    • 比喻:飛機的黑盒子,記錄了詳細的操作和事件序列。

Task 7:檢查 Uptime Check 結果和觸發的快訊

最後一個任務是驗證前面設定的監控和快訊是否正常運作。

操作步驟:

  1. 檢查 Uptime Check:
    • 回到 Monitoring 頁面,點擊左側選單的 執行時間檢查 (Uptime checks)
    • 此時會看到 Lamp Uptime Check 的狀態。因為剛剛重啟了 VM,全球各地的檢查點可能需要幾分鐘才會全部變回成功(綠色)。
  2. 檢查快訊是否被觸發:
    • 在左側選單點擊 快訊 (Alerting)。如果之前有任何指標超過閾值,會在這裡看到相關的事件 (incidents)
    • 檢查個人電子信箱,應該會收到一封來自 Cloud Monitoring 的快訊郵件。

https://ithelp.ithome.com.tw/upload/images/20251008/20154764cROdv2axIz.png

gmail:
https://ithelp.ithome.com.tw/upload/images/20251008/20154764XPJ42OpksL.png


上一篇
[Day 24] GCP x IAM 權限控管 [學習筆記]
系列文
一路side project - 學習筆記25
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言