开发者学堂课程【DevOps 日志分析实战 :容器监控与分析实践(一)】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/736/detail/13101
容器监控与分析实践(一)
内容介绍:
一、构建全方位 Kuberneters 监控。
二、基础指标监控-Prometheus的前世今生
三、基础事件监控-Kubernetes事件中心
四、部署Prometheus 监控操作与演示
本节主要内容是容器监控与分析实践,涉及到容器部分可以想到容器编排领域的实时的标准 Kuberneters 。在本节中主要是学习如何构建全方位 Kuberneters 监控。
一、构建全方位 Kuberneters 监控。
1.Kuberneters 的好处
比如容器编排、弹性伸缩、负载均衡、快速发布、负载均衡、高可靠、无人值守、异常自动恢复、高效运维等等。
对于运维人员来说,Kuberneters 能够帮助快速构建监控、做高效的运维,例如异常自动恢复等等。
在真实的场景下,Kuberneters 也会遇到问题,Kuberneters 并不是帮助将所有的监控、运维、各种异常恢复等等完成,更多是提供一个平台,该平台能够帮助更快速发布,更快的完成弹性伸缩、更容易的完成其观察。所以 Kuberneters 会遇到各种各样的问题,对于操作者要做的是构建一个全方位的监控、知道应用哪个位置挂了、为什么挂了,挂了后如何去恢复。
2.Kuberneters 监控架构
在开发 S 上分为多个层次,包括基础设施、ServiceMesh 层(如果有 ServiceMesh)、网关接入层、业务层(内部指标)。
基础设施主要包括 CPU 、内存等一些机器级指标和容器级指标(包括 CPU 内存消耗、容器是否重启、容器的网络磁盘 io等等 ),还有一部分是 Events 信息,该部分K8s Events 是 K8s API Server,相当于目前 K8s 发生哪些重要的事件。该部分主要依赖于 Metrics,也就是监控指标,比如 cpu 曲线、内存曲线等等,Metrics 主要依赖 Prometheus 进行监控。ServiceMesh 的一部分和 Metrics 相关,包含链路式追踪的一些数据(该部分数据可以用 Metrics 来做)。接入层该部分主要用 K8s 的 Ingress,K8s 的 Ingress作为整个 K8s 的流量路口,该部分的监控也非常重要,Ingress 一般情况下采用 Nginx 的 Ingress controller,所以更多是基于 Nginx 的访问日志去做各种各样的监控、各种各样的站点、后端的响应延时等等。业务层更多依赖于业务日志监控,包括业务日志中的存储信息以及从业务日志中提取关键性的指标去做异常的检测和判断。
所有这些都是通过 SLS (也就是日志服务)都可以轻松实现。
从业务价值上说,对业务监控是最有效的;从覆盖面来说,基础设施的覆盖面相对来说更广。搭建应该是从下到上。
3.DevOps 数据中台架构
从 DevOps 的角度来说,SLS 扮演一个数据中台的架构,数据中台支持从各种各样的地方把各种类型的 DevOps 要用到的数据(包括日志、链路追踪的数据、指标数据),能够从各种数据源(例如容器、移动端、ROT)将数据采集,采集后支持数据分析(数据分析的方式包括 circle92的语法等等)和智能的算法(智能的聚类、智能的预测等等),向上提供一些可视化的组件帮助将这些数据展现出来,也提供一些告警通知、Webhook,帮助做一些辅助的角色。