Ingress 主要提供 HTTP 層(7 層)路由功能,是目前 K8s 中 HTTP/HTTPS 服務的主流暴露方式。爲簡化廣大用戶對於 Ingress 日誌分析與監控的門檻,阿里雲容器服務和日誌服務將 Ingress 日誌打通,只須要應用一個 yaml 資源便可完成日誌採集、分析、可視化等一整套 Ingress 日誌方案的部署。html
目前 Kubernetes(K8s)已經真正地佔領了容器編排市場,是默認的雲無關計算抽象,愈來愈多的企業開始將服務構建在K8s集羣上。在 K8s 中,組件經過 Service 對外暴露服務,常見的包括 NodePort、LoadBalancer、Ingress 等。其中 Ingress 主要提供 HTTP 層(7 層)路由功能,相比 TCP(4 層)的負載均衡具有很是多的優點(路由規則更加靈活、支持金絲雀、藍綠、A/B Test 發佈模式、SSL 支持、日誌、監控、支持自定義擴展等),是目前 K8s 中 HTTP/HTTPS 服務的主流暴露方式。算法
K8s 中 Ingress 只是一種 API 資源的聲明,具體的實現須要安裝對應的 Ingress Controller,由 Ingress Controller 接管 Ingress 定義,將流量轉發到對應的 Service。目前 Ingress Controller 的實現有很是多種,比較流行的有 Nginx、Traefik、Istio、Kong 等,在國內接受度最高的是 Nginx Ingress Controller。後端
日誌和監控是全部 Ingress Controller 都會提供的基礎功能,日誌通常包括訪問日誌(Access Log)、控制日誌(Controller Log)和錯誤日誌(Error Log),監控主要從日誌以及 Controller 中提取部分 Metric 信息。這些數據中訪問日誌的量級最大、信息最多、價值也最高,通常7層的訪問日誌包括:URL、源 IP、UserAgent、狀態碼、入流量、出流量、響應時間等,對於 Ingress Controller 這種轉發型的日誌,還包括轉發的 Service 名、Service 響應時間等額外信息。從這些信息中,咱們可以分析出很是多的信息,例如:瀏覽器
咱們的開發、運維、運營、安全等人員能夠基於這些信息完成各自的需求,例如:安全
然而手動搭建、運維一整套的 Ingress 日誌分析與監控系統很是複雜,系統所須要的模塊有:架構
爲簡化廣大用戶對於 Ingress 日誌分析與監控的門檻,阿里雲容器服務和日誌服務將 Ingress 日誌打通(官方文檔https://help.aliyun.com/document_detail/86532.html[](https://help.aliyun.com/document_detail/86532.html)),只須要應用一個 yaml 資源便可完成日誌採集、分析、可視化等一整套 Ingress 日誌方案的部署。
負載均衡
日誌服務默認爲 Ingress 建立 5 個報表,分別是:Ingress 概覽、Ingress 訪問中心、Ingress 監控中心、Ingress 藍綠髮布監控中心、Ingress 異常檢測中心。不一樣角色的人員可根據需求使用不一樣的報表,同時每一個報表均提供篩選框用於篩選特定的 Service、URL、狀態碼等。全部的報表均基於日誌服務提供的基礎可視化組件實現,可根據公司實際場景進行定製化調整。運維
Ingress 概覽報表主要展現當前 Ingress 的總體狀態,主要包括如下幾類信息:機器學習
Ingress 訪問中心主要側重於用於訪問請求相關的統計信息,通常用於運營分析,包括:當日 UV/PV、UV/PV 分佈、UV/PV 趨勢、TOP 訪問省份/城市、TOP 訪問瀏覽器、TOP 訪問IP、移動端佔比、Android/IOS 佔比等。學習
Ingress 監控中心主要側重於網站實時監控數據,通常用於實時監控與告警,包括:請求成功率、錯誤比例、5XX 比例、請求未轉發比例、平均延遲、P95/P99/P9999 延遲、狀態碼分佈、Ingress 壓力分佈、Service 訪問 TOP十、Service 錯誤 TOP十、Service 延遲 TOP十、Service 流量 TOP10 等。
Ingress 藍綠髮布監控中心主要用於版本發佈時的實時監控與對比(版本先後對比以及藍綠版本當前對比),以便在服務發佈時快速檢測異常並進行回滾。在該報表中須要選擇進行對比的藍綠版本(ServiceA 和 ServiceB),報表將根據選擇動態顯示藍綠版本相關指標,包括:PV、5XX 比例、成功率、平均延遲、P95/P99/P9999 延遲、流量等。
Ingress 異常檢測中心基於日誌服務提供的機器學習算法,經過多種時序分析算法從 Ingress 的指標中自動檢測異常點,提升問題發現的效率。
Ingress 做爲 K8s 網站請求的主要入口,實時監控與告警是必不可少的 Ops 手段之一。在日誌服務上,基於上述的報表,只需 3 個簡單的步驟便可完成告警的建立。下述示例爲 Ingress 配置 5XX 比例的告警,告警每 5 分鐘執行一次,當 5XX 比例超過 1% 時觸發。
除了通用的告警功能外,日誌服務還額外支持:
日誌服務除支持經過告警方式通知外,還支持報表訂閱功能,可以使用該功能將報表按期渲染成圖片並經過郵件、釘釘羣等方式發送。例如天天早上 10 點向運營羣中發送昨日網站訪問狀況、每週發送報告到郵件組中存檔、新版本發佈時每 5 分鐘發送一次監控報表...
若是容器服務 Kubernetes 版提供的默認報表沒法知足你的分析需求,能夠直接使用日誌服務 SQL、儀表盤等功能進行自定義的分析和可視化。
爲了讓你們能夠體驗 Kubernetes 審計日誌功能,咱們特別開通了體驗中心,你們能夠經過 https://promotion.aliyun.com/ntms/act/logdoclist.html 進入,該頁面提供了很是多和 Kubernetes相關的報表。
原文連接 本文爲雲棲社區原創內容,未經容許不得轉載。