Knative中可以通過日志服務收集日志信息,同時可以根據日志信息,在日志服務中快速方便地設置監控告警。
前提條件
已創建ACK托管集群。具體操作,請參見創建Kubernetes托管版集群。
已為集群部署Knative。具體操作,請參見在ACK集群中部署Knative。
已部署Knative Service服務。具體操作,請參見快速部署Serverless應用。
操作步驟
部署一個名稱為
helloworld-go
的Knative服務。具體操作,請參見快速部署Serverless應用。為服務接入日志采集。具體操作,請參見在Knative上實現日志采集。
設置查詢分析。
請參見分析概述。
登錄日志服務管理控制臺,單擊目標Project名稱,在日志庫頁簽的Logstore列表中,可以看到已創建的Logstore。
單擊目標Logstore名稱。
輸入命令并單擊查詢/分析。
例如,如果您想根據ERROR出現的次數進行監控,可以使用以下的SQL語句來統計ERROR的數量:
* | select 'ERROR' , count(1) as total group by 'ERROR'
這條SQL語句會篩選出所有包含ERROR字段的記錄,并統計其數量,然后按照ERROR進行分組。
告警設置。
登錄日志服務控制臺。
在Project列表區域,單擊目標Project。
在 頁簽中,單擊目標Logstore。
在查詢和分析頁面,單擊圖標。
在告警監控規則面板,配置告警規則。
關于如何配置告警規則,請參見創建日志告警監控規則。
設置告警通知策略。
關于如何設置告警通知策略,請參見快速設置日志告警。
執行如下命令,訪問helloworld-go服務。
此時會觸發告警通知。
curl -H "Host: helloworld-go.default.example.com" http://<網關IP> # 網關IP和域名請以您的實際數據為準。
預期輸出:
Hello Knative!
如果是設置的郵件通知,告警信息如下圖所示。
總結
通過結合日志服務的監控告警方式,在Knative中可以監控到部署應用的異常狀態并及時通知給運維、開發人員進行處理,保證服務持續運行。