# Monitor,Alert and Action ###### tags: `Kubernetes` ###### tags: `Operators` 根據 CNCF 官方調查,最常用的監控軟體有: OpenMetrics,DataDog,Prometheus,ELK,Grafana # 制定維運整體流程 ![](https://i.imgur.com/JGNDb3a.png) 1. Problem Report * 資訊收集: 建立gitlab issue 並提供以下資訊 * 問題詳細內容 (可能需要制定issue模板) * 現象描述 (What happened & What you expected to happen) * 複現手法 (How to reproduce it (as minimally and precisely as possible) * Anything else we need to know? * 環境資訊 (Enviroment) * 相關 log 檔。 2. Triage: * 問題定位,分類: 了解嚴重度,優先權。 * 艾森豪矩陣 ![](https://i.imgur.com/Ln5c2PN.png) 3. Examine: * 根據 log 進行分析、限縮問題 * 環境複現(提供可執行驗證和測試環境) * 盡可能歸納出解法。 4. Diagnose: (目的是盡快恢復系統,找出 workaround是基本) * 一線處理 * 實際遇過的問題 * 模擬過的問題 * 簡單系統層級問題 * 設定檔修改 * 系統、服務重啟,備份還原,資源擴展 * 二線處理 * 深層系統層級問題 * 網路 * 儲存 * 程式邏輯問題 5. Test/Treat: * 並執行解法確認是否有效。 * 無效,回到3. * 有效,進入 patch 流程。 5. 修復流程 * 程式邏輯的問題,透過 GitOps Flow。 * 系統層級的問題,手動處理,但須留下紀錄。(要再想想看能不能自動化) # 制定維運事項分工 R&R 1. 工作流程圖 * 定義事項 * https://docs.google.com/spreadsheets/d/1RaDP1zGRrl18dYG4JOrSJWu5TzD55KURIKmKuKy3_Zk/edit#gid=525459160 * 畫圖 ![](https://i.imgur.com/8TgG2dg.png) 2. OCIS 內部分工R&R * 以.1圖為base,用顏色區分 3. OCIS 外包分工R&R * 以.1圖為base,用顏色區分 ## 制定監控指標 **狀態:** 1. K8S * [x] k8s health * [x] k8s node status * K8S components * K8S resources * [x] Pod 數量 * K8S operators 2. Cloud Infra * [x] 各微服務 health check 3. Other system * harbor * [x] health check * DB * [x] health check * RabbitMQ * [x] health check * Redis * [x] health check * kong * [x] health check Q1. 所有組件是否Container化? 3. Phycical node device * [X] CPU,GPU,memory,diskIO * network * systemd **行為: 4. Logs * [x] k8s audit log(auth,request,response) https://www.kubernetes.org.cn/2611.html * [x] cloud infra log(需分 level: 有分 Info,Warnning,error) * [x] OS syslog * 誰操做了甚麼動作? * k8s 指令相關 ```kubectl logs pod <pod name> -n namespace``` ## 規劃告警系統 1. 透過 Grafana 發 mail 2. 透過 Alert service 發 mail/Line Q1. 詢問 Ryan 該alert service 是根據甚麼資訊去觸發告警? ## Survey監控軟體工具 1. Prometheus 2. Grafana 3. ELK (PLG) * PLG(輕量化的ELK): https://dzone.com/articles/logging-in-kubernetes-with-loki-and-the-plg-stack ## 監控指標進階應用 1. SLA * 制定 SLA 評估標準 * Service Response time * Node Ready time * UI/數據報表 呈現方式 ## 問題處置與解決 1. 人為介入 2. 自動化