容器监控与分析实践(二)| 学习笔记

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
简介: 快速学习容器监控与分析实践。

开发者学堂课程【DevOps 日志分析实战 :容器监控与分析实践(二)】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/736/detail/13101


容器监控与分析实践(二)

二、基础指标监控-Prometheus 的前世今生

(基础指标监控主要依赖于 Prometheus)

2012年成立,初始成员 Matt、Julius

主要受谷歌监控系统启发(Borg 监控系统,Borg 是谷歌内部的一套容器架构,最后发展到开源也就是 Kubernetes,所以说 Prometheus 搭配 K8s 是一个非常好的搭配方式)

1.主要目标:

监控动态的云上环境

对现有的监控数据模型、查询、效率等不满意

2.目前的地位:

CNCF 第二大 Project(第一大是 K8s,其与 Prometheus 是在一个大的组织下,无论金融还是各方面的支持都非常的优秀)

Kubernetes 标准化监控方案

开源首选监控方案之一

3.基础指标监控-Prometheus 架构

image.png

主要通过 pull 的方式从各个地方拉取数据(pull 的方式相对来说更加简洁),只需要对应的系统提供 http 的一个端口。内部是单机的架构,包括数据的接收(里面有服务发现,服务发现中的重要模块是 K8s 的服务发现,可以动态的监控需要的 pull 、Server等等)、存储(依赖于内部单机的 HDD 的存储)、查询。

后面会对接 Alertmanger ,Alertmanger 一般用来做告警,还有部分对接 Web uUI 等等。

4.Prometheus 的特点

是 pull 模型;有非常强的服务发现机制;是单机的架构;存储主要依赖于 SSD(如果用 HDD 是标准的机器硬盘的话其性能会较差);可视化提供的功能较少。

5.Prometheus 生产环境上的一些痛

·内存占用:近两小时数据保存内存,时间线膨胀

·异常恢复:binlog replay 时间过长,无限 OOM

·长期存储︰单机存储受限,无法长期对比指标

·单机问题︰抓取、计算单点执行,很难大规模扩展

·Pull 模型∶很难覆盖实时场景(定期 pull ,没办法实时推送指标)

. PromQL :不支持与外部维表关联(是内部查询的引擎,有时机器要关联机房、机器状态或者其他信息时,PromQL 不支持实时的关联)

6.SLS 时序存储-兼容 Prometheus 方案

image.png

SLS 提供了兼容 Prometheus 方案,其中对于时序数据的存储做扩展(从单机模式扩展到纯分布式的架构)

并且提供了默认的 PromQL 执行引擎,同时可以进行 SQL 的查询(对接各种 Web 数据延续做关联的分析),还提供了一些智能的算法,帮助做智能巡检等等场景

总体的特点:

上下游对接非常强,不仅仅包括 Prometheus ,其他数据源也可以使对接。

高性能,因为是纯分布式架构,其存储和计算完全分离,可以单独根据存储或计算去做扩容。

对开源非常友好,Prometheus 可以直接对接 Prometheus、HTTP、AQL、Grafana。

智能方面,提供了各种智能算法,可以加快运维效率。

基础指标监控-充分发挥 Prometheus 数据的价值

Prometheus 的数据如果默认在单机中是一个死的系统,不支持外部延续对接或者实时计算,所以扩展是去支持各种数据。

通过 Prometheus 写进,通过 OpenTelemetry (一个大的 project)也支持智能写入。

并且对接三个执行引擎,分别是 SQL 执行引擎、智能分析引擎、默认的 PromQL 执行引擎

还有一个数据队列的功能,支持用实时计算的方式去订阅数据,做实时的分析,这样可以降低对数据的延时,包括整个链路的延时。

image.png

7.基础指标监控-Prometheus 接入方式

只需要在 K8s 的 Prometheus Operator 中配置一些 Remote Write 的写入方式,然后配置 basicAuth 的鉴权并写入到 SLS 。

image.png

整体步骤如下:

创建 Namespace

配置保密字典

修改安装包参数

配置 Grafana 可视化

配置告警


三、基础事件监控-Kubernetes 事件中心

在 K8s 中有 API Server,会产生各种各样的事件,包括宿主机的事件,系统组件的事件,应用产生的事件,都能实时的采集到日志服务。

image.png

然后会提供一整套包括实时的告警、日志的查询、自定义的分析(包括可视化的报表)的方案,并且该方案开通的成本非常低,只需要在创建集群时勾选即可。

image.png

1.接入层监控-Kubernetes Ingress 监控

image.png

从 Ingress controller 得到 Ingress 的访问日志,然后提取各种指标,指标包括:

PV 同比/环比下跌

请求地域分布

TOP 省份、城市

TOP 延迟、失败 URL

成功率/5XX比例

平均延迟、P99/P9999延迟

后端请求失败率

蓝绿版本发布对比

该指标可以一键生成,安装方式也非常简单(开通在默认集群上勾选即可)

2.中间件 /ServiceMesh 监控 -Istio 访问日志监控

ServiceMesh 目前以 Istio 为代表,这里主要是兼容 Istio 。

Istio 的访问日志可以直接对接,如果使用 ServiceMesh 可以非常方便的将数据对接并做可视化。

3.业务监控-Kubernetes 标准日志监控

image.png

业务监控需要依赖自己做日志的产生,用 SLS 做日志的采集。

日志采集的配置也非常简单,只需要定义几个环境变量或者部署一个 crd 就可以完成包括容器的文件、标准输出甚至该文件存储在宿主机上都支持实时的采集。采集后可以实时日志查看,包括上下文的查看、分析,也能做关键词的监控,也能根据日志去提取指标做业务指标的监控(例如下单的成功了、交易的金额、加入购物车的行为等等)

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
9天前
|
Kubernetes Cloud Native Docker
云原生时代的容器化实践:Docker和Kubernetes入门
【10月更文挑战第37天】在数字化转型的浪潮中,云原生技术成为企业提升敏捷性和效率的关键。本篇文章将引导读者了解如何利用Docker进行容器化打包及部署,以及Kubernetes集群管理的基础操作,帮助初学者快速入门云原生的世界。通过实际案例分析,我们将深入探讨这些技术在现代IT架构中的应用与影响。
38 2
|
2月前
|
Linux iOS开发 Docker
Docker:容器化技术的领航者 —— 从基础到实践的全面解析
在云计算与微服务架构日益盛行的今天,Docker作为容器化技术的佼佼者,正引领着一场软件开发与部署的革命。它不仅极大地提升了应用部署的灵活性与效率,还为持续集成/持续部署(CI/CD)提供了强有力的支撑。
242 69
|
10天前
|
Kubernetes Cloud Native Docker
云原生技术探索:容器化与微服务的实践之道
【10月更文挑战第36天】在云计算的浪潮中,云原生技术以其高效、灵活和可靠的特性成为企业数字化转型的重要推手。本文将深入探讨云原生的两大核心概念——容器化与微服务架构,并通过实际代码示例,揭示如何通过Docker和Kubernetes实现服务的快速部署和管理。我们将从基础概念入手,逐步引导读者理解并实践云原生技术,最终掌握如何构建和维护一个高效、可扩展的云原生应用。
|
11天前
|
Cloud Native 持续交付 Docker
Docker容器化技术:从入门到实践
Docker容器化技术:从入门到实践
|
12天前
|
存储 Kubernetes 调度
基于容器化技术的性能优化实践
基于容器化技术的性能优化实践
25 3
|
19天前
|
Kubernetes 负载均衡 Cloud Native
云原生应用:Kubernetes在容器编排中的实践与挑战
【10月更文挑战第27天】Kubernetes(简称K8s)是云原生应用的核心容器编排平台,提供自动化、扩展和管理容器化应用的能力。本文介绍Kubernetes的基本概念、安装配置、核心组件(如Pod和Deployment)、服务发现与负载均衡、网络配置及安全性挑战,帮助读者理解和实践Kubernetes在容器编排中的应用。
56 4
|
20天前
|
Kubernetes 监控 Cloud Native
云原生应用:Kubernetes在容器编排中的实践与挑战
【10月更文挑战第26天】随着云计算技术的发展,容器化成为现代应用部署的核心趋势。Kubernetes(K8s)作为容器编排领域的佼佼者,以其强大的可扩展性和自动化能力,为开发者提供了高效管理和部署容器化应用的平台。本文将详细介绍Kubernetes的基本概念、核心组件、实践过程及面临的挑战,帮助读者更好地理解和应用这一技术。
55 3
|
27天前
|
Kubernetes 监控 开发者
专家级实践:利用Cloud Toolkit进行微服务治理与容器化部署
【10月更文挑战第19天】在当今的软件开发领域,微服务架构因其高可伸缩性、易于维护和快速迭代的特点而备受青睐。然而,随着微服务数量的增加,管理和服务治理变得越来越复杂。作为阿里巴巴云推出的一款免费且开源的开发者工具,Cloud Toolkit 提供了一系列实用的功能,帮助开发者在微服务治理和容器化部署方面更加高效。本文将从个人的角度出发,探讨如何利用 Cloud Toolkit 来应对这些挑战。
35 2
|
1月前
|
存储 运维 云计算
探索Docker容器化:从入门到实践
在这个快速发展的云计算时代,Docker容器化技术正在改变应用的开发、部署和管理方式。本文旨在为初学者提供一个关于Docker的全面入门指南,并通过实践案例展示Docker在实际开发中的应用。我们将一起了解Docker的核心概念、基本操作、网络和存储,以及如何构建和部署一个简单的Web应用。无论你是开发者还是运维人员,本文都会帮助你快速掌握Docker的核心技能。
|
11天前
|
数据中心 开发者 Docker
理解并实践Docker容器化技术
理解并实践Docker容器化技术