監控異常偵測
最後更新日期:2021.09.30
適用服務:AWS / Azure / GCP
功能簡介
- 監控異常偵測幫助您監視和偵測時間序列資料中的異常狀況,而無需知道機器學習。 系統都會自動找出最適合的模型並套用到您的資料。
- 首先您需新增一個監視偵測模型,模型中會設定您的監控資料來源,系統會收集您的監控資料並開始進行分析,判斷異常偵測的界限、預期的值,以及哪些資料點異常。當偵測到異常時,會依據您的訂閱情況寄送通知。
- 現階段資料系統收集的監控資料以容器化管理的 Kubernetes 為主,後續將會再增加新的監控來源。
- 實際在多雲平台 portal 操作功能前需先完成 Prometheus 配置,方能建立好偵測模型並收集偵測歷史紀錄。
整合 Prometheus 的配置說明
本服務的目的
連結 kubenetes 本地端 Prometheus 將指標數據經由代理服務程式 MCloud-Agent,傳送到多雲平台 Mcloud 進行數據分析服務。
安裝部署 MCloud-Agent
先決條件: 網際網路連線是必須的 kubernetes 版本支援 v1.15 +
步驟 1. 為代理服務程式建立專屬命名空間
kubectl create namespace mcloud-logging
步驟 2. 下載代理服務程式 MCloud Agent 部署範本
wget https://mcloud-agent.s3.ap-northeast-1.amazonaws.com/mcloud-agent.yml
步驟 3. 修改部署範本相關環境參數,依據啟用異常偵測服務後所取得的資源資訊填寫下列必要參數
containers:
- env:
- name: STREAM_NAME
value: ""
- name: AWS_REGION
value: "ap-northeast-1"
- name: AWS_ACCESS_KEY_ID
value: ""
- name: AWS_SECRET_ACCESS_KEY
value: ""
- name: AWS_EXTERNAL_ID
value: ""
- name: ASSUME_ROLE_ARN
value: ""
步驟 4. 部署代理服務程式 MCloud Agent
kubectl -n mcloud-logging apply -f mcloud-agent.yml
Prometheus 配置調整
- 依據 Prometheus 官方安裝指引,配置遠端複寫位址,指向前述部署完成的代理服務程式端點位置
- 端點位置預設為
http://mcloud-agent-service.mcloud-logging:9501/receive
- 範例如下:
| Setting | Value | Description | | ---------------- | ---------------- | ---------------- | | `remote_write` | http://mcloud-agent-service.mcloud-logging:9501/receive | The URL of the endpoint to send samples to.
配置檢查
執行 kubectl 指令進行查驗代理服務程式是否配置完成並正確運行
kubectl -n mcloud-logging get pod
kubectl -n mcloud-logging logs <pod_name>
實際線上功能說明
偵測模型
新增偵測模型
- AWS登入帳號選完公雲帳號(Azure 依序選完公雲帳號和訂閱),會取得監控標的包含: (依序選取)
- K8S API server endpoint
- K8S namespace
- K8S workload resources
- container
- 選擇完監控標的後,填寫完要通知的信箱即可完成模型新增。
模型狀態
- 新增完的模型狀態會是 已建立。
- 經過 14天 後,模型會開始進行偵測 (狀態為: 運作中)。
- 模型能夠修改成 停止偵測 (也能夠再恢復偵測)。
偵測歷史紀錄
- 能夠查詢 過去90天 的異常發生紀錄 (預設 過去7天)。
- 針對每筆異常發生的時間點:
- 提供異常分析圖表: 會收集呈現時間點前後3個小時(預設)的異常指標數值(預設抓Top 4異常指標),最多能查看到 前14天 的指標數值。
- 能自由切換異常指標,最多可查看4個異常指標的異常分析圖表。
- 提供異常指標排序列表(關聯值高到低排序)。
- 會收集意見回饋,來幫助我們改善正確率。