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

简介: 快速学习容器监控与分析实践。

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

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


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

四、部署 Prometheus 监控操作与演示

1.登录容器服务管理控制台

image.png

2.创建命名空间

(1)在左侧导航栏中,单击命名空间

(2)单击创建

(3)配置名称为 monitoring,并单击确定

image.png

3.创建保密字典

(1)在左侧导航栏中,选择应用配置>保密字典

(2)选择 monitoring 这个命名空间,单击创建(名为 sls-ak,并默认将子账号的 ak 申请完成)

(3)配置如下参数,单击确定

image.png 

参数

说明

名称

配置为 sls-ak

命名空间

选中在步骤2中创建的命名空间,即 monitoring

类型

选中 Opaque,并添加知下两个键值对。

·名称为username,值为您的RAM用户的AccessKeylD。

·名称为password,值为您的RAM用户的AccessKeySecrete

建议您使用只具备日志服务 Project 写入权限的 PAM 用户的 AccessKey.

详情请参见授予指定 Project 写入权限。

4.创建 prometheus-operator

(1)在应用市场,点击应用目录>运维/可观测性

(2)然后单击 ack-prometheus-operator,将集群选择为 sls-zc-test

image.png

(3)还需要调整参数:

调整 prometheusSpec 下的 retention,建议修改为1d或12h。

将 tsdb 下的 enabla 设置为 true,并增加 remoteWrite配置。

remoteWrite 配置中的 ur1 为日志服务 Metricstore 的 URL,请根据实际值替换。格式为https:// {project}.{sls-enpoint}/prometheus/{project}/{metricstore}/api/v1/write。其中 {sls-enpoint} 为日志服务的Endpoint,详情请参见服务入口,{project} 和{metricstore} 为您已创建的日志版务的 Project 和 Metricstore

remoteWrite 配置:

image.png

根据创建的 Metricstore 调整,所以先创建一个新的 Project 。

创建完成 Project 后在时序库中创建一个 Metricstore(名为 prom),创建完成后可以看到以下信息:
image.png

后面要将上面的配置填入 remoteWrite 配置,如下:

url:https://k8s-prom-bj.cn-beijing-intranet.log.aliyuncs .com/promatheus/k8s-5-prom-bj/prom/ api. /v1/write

prometheus-operator 即创建完成。

5.然后配置 Grafana,简单安装 Grafana 即可

Grafana 的安装非常简单,直接安装官网的 Grafana(按照官网的方式按照即可)

使用 Grafana 访问 Promotheus 数据

(1)登录 Grafanae

(2)在左侧导航栏,单击设置标> Data Sources。

(3)在 Data Sources 页签。单击 Add data source。

(4)单击 Prometheus 区城中的 Select.

(5)在 Settings 页签中,配置如下参数。

参数

说明

Name

配置数据源名称,例如Prometheus-01

HTTP

日志服务 Metricstore 的URL:格式为https:// {project}.{sls-enpoint}/prometheus/{project}/{metricstore}。其中 {sls-enpoint} 为日志服务的Endpoint,详情请参见服务入口,{project} 和{metricstore} 为您已创建的日志版务的 Project 和 Metricstore。例如:url:https://k8s-prom-bj.cn-beijing-intranet.log.aliyuncs .com/promatheus

Whitellsted Cookies:添加访问白名单,可选

Ayth

只需要打开 Basic auth 开关

Basic Auth Detals

User为阿里云账号的 AecessKaeylD。

Password 为阿里云账号的 AccessKeySecret。

建议您使用具备日志联务Project只读权限的RAM用户的AccessKey。详情请参见授予指定Project 只读权限。

配置为:

image.png

然后点击 Save&Test

完成后可以查询到采集完成的数据:

image.png

在 SLS 控制台也能查询:
image.png

注意查询方式不同,在控制台的查询方式为 promick 加 SQL 的方式,在 Grafana 上默认方式填入,还可以做一些过滤:

image.png

导入模板,可以直接搜索 grefana dashboard 的模板,可以直接使用

例如直接搜索 Kubernetes ,点击 Kubernetes Deployment Statefulset Daemonset metrics,然后复制其 id即可导入

点击加号中的 import:

image.png

将其 id 粘贴,即导入完成:

image.png

导入完成后会根据一些查询条件,实际场景的需求做一些定制。

6.手动开启事件中心操作与演示

事件中心的开通比较方便,事件中心与容器服务做了集成。

在容器服务,如果正常的创建集群的过程(设置集群名称,选择 k8s,集群配置,组建配置,确认配置)

注意:组建配置中,默认将日志服务和 node-problem-detector放入,所以默认勾选即可,也可以勾选 Ingress Dashboard。如果不安装 node-problem-detector 也可以在组件管理中开启。

手动开启:

点击集群,找到组件管理,可以找到 node-problem-detector。如果没有安装则点击安装即可自动安装,自动安装后默认开启事件中心。

日志的组件也是如此(但默认都是已经安装,可以直接使用)

7.分析 Ingress 日志操作与演示

如果没有安装 Ingress ,可以点击集群中的连接信息:

image.png

点击通过 Cloud Shell 管理集群即可。

登录 Cloud Shell 就默认用命令行操作。

可以创建一个 Ingress 的监控,monitoring 的一个 yaml,语句为:

vim ingress-monitoring.yaml

然后将 yaml 代码粘贴并保存

并将其应用,输入语句 kubectl apply -t ingress – monitoring.yaml

到此即完成了 Ingress 的监控

对于 Ingress ,之前默认创建集群都会有 Ingress (可能数据较少)

image.png

也有各种 Ingress 的大盘(里面数据还没有流量):

image.png

看到另一个账号中的 Ingress 数据:

image.png

其中有各种类型的指标在其左侧可以点击快速看到各类型的的数据。

还可以做自定义的查询,例如:method :Get(也可以查 not method :Get)

(查询 method 是 get 的请求)

image.png

还可以分析一些状态码的分布:not method :Get | SELECT status,count(1) as total group by status

(非 get 请求的 status 分布)

image.png

上图可视化是表格的形式也可以选择饼图的形式(较直接),也可以选择柱状图、条形图的形式。

8.高级用法:

查询分析行输入

not method :Get | SELECT ip_to_province(x_forward_for) as total group by p order by total desc

image.png

可以查询到各种省份分布的信息。

也可以输入:

*| SELECT ip_to_province(x_forward_for) as total group by p order by total desc

得到省份分布信息

点击地图:

image.png

会按照中国地图的省份自动变为可视化,数量越高地图上省份颜色越深

还可以使用其他地图查看(高德地图不支持,需要用经纬度查看),世界地图需要将查询改为:

*| SELECT ip_to_country(x_forward_for) as total group by p order by total desc

得到:

image.png

热力图和高德地图:

*| SELECT ip_to_city_goo(x_forward_for) as total group by p order by total desc

image.png

image.png

该账号的 Ingress 的数据为:

image.png

展示了现有的 PV 、移动端 ois 的占比、平均的延时、Top 的一些指标、top 的延迟、top 的错误等等

Ingress Host 中的数据都可以按照不同的维度做过滤操作。

仪表盘还有监控中心,具体每一个服务的监控:

image.png

该处监控指标更加丰富,包括 PV、流量、错误比例、各种平均延时等等,还有一些统计类型,这样非常方便的从图上得到各种各样的指标,但是这些指标背后都是基于访问日志分析出来的。

可以点击预览语句:

image.png

可以看到具体是如何实现的。

也可以跳转到查询分析(原始数据),会自动将 select 填入:

image.png

事件中心:

将各种各样的告警的维度列出来:

image.png

各种告警都可以截取配置:

image.png

还可以添加通知方式:

(可以多个渠道并行通知)

image.png

默认的事件也会被排列出来,有哪些非常重要的事件需要关注,还有一些 OMM 的事件、Pod 驱逐事件。比较关键的事件都会被列出信息。

Kubernetes 事件查询:
例如担心 Waring 等级的事件,可以只过滤某一种类型的事件,如下:

image.png

然后可以看到这些事件的详细信息,其背后对应的也是日志查询的方式,如果有需求可以基于这种日志查询方式去做一些定制化。

整体上说,是基于 SLS 去构建除了整个 K8s 的监控,包括Grafans 中基础的指标,平均 cpu 内存的使用率等等,也可以得到系统内部的实践,例如目前节点被删除,pod 被丢,pod 被销毁等等,这些事件会告诉然后方便直接做告警。Ingress 是可以基于 Ingress 的访问日志去做各种各样的服务的质量,还有自己业务日志的监控,业务日志的监控需要自己配置一些参数以及策略(该部分有非常丰富的文档来操作)

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
Kubernetes Cloud Native Docker
云原生时代的容器化实践:Docker和Kubernetes入门
【10月更文挑战第37天】在数字化转型的浪潮中,云原生技术成为企业提升敏捷性和效率的关键。本篇文章将引导读者了解如何利用Docker进行容器化打包及部署,以及Kubernetes集群管理的基础操作,帮助初学者快速入门云原生的世界。通过实际案例分析,我们将深入探讨这些技术在现代IT架构中的应用与影响。
602 2
|
4月前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
636 5
|
7月前
|
Cloud Native 中间件 调度
云原生信息提取系统:容器化流程与CI/CD集成实践
本文介绍如何通过工程化手段解决数据提取任务中的稳定性与部署难题。结合 Scrapy、Docker、代理中间件与 CI/CD 工具,构建可自动运行、持续迭代的云原生信息提取系统,实现结构化数据采集与标准化交付。
382 1
云原生信息提取系统:容器化流程与CI/CD集成实践
|
11月前
|
Ubuntu 关系型数据库 MySQL
容器技术实践:在Ubuntu上使用Docker安装MySQL的步骤。
通过以上的操作,你已经步入了Docker和MySQL的世界,享受了容器技术给你带来的便利。这个旅程中你可能会遇到各种挑战,但是只要你沿着我们划定的路线行进,你就一定可以达到目的地。这就是Ubuntu、Docker和MySQL的灵魂所在,它们为你开辟了一条通往新探索的道路,带你亲身感受到了技术的力量。欢迎在Ubuntu的广阔大海中探索,用Docker技术引领你的航行,随时准备感受新技术带来的震撼和乐趣。
444 16
|
12月前
|
人工智能 Prometheus 监控
容器化AI模型的监控与治理:确保模型持续稳定运行
在前几篇文章中,我们探讨了AI模型的容器化部署及构建容器化机器学习流水线。然而,将模型部署到生产环境只是第一步,更重要的是确保其持续稳定运行并保持性能。为此,必须关注容器化AI模型的监控与治理。 监控和治理至关重要,因为AI模型在生产环境中面临数据漂移、概念漂移、模型退化和安全风险等挑战。全面的监控涵盖模型性能、数据质量、解释性、安全性和版本管理等方面。使用Prometheus和Grafana可有效监控性能指标,而遵循模型治理最佳实践(如建立治理框架、定期评估、持续改进和加强安全)则能进一步提升模型的可信度和可靠性。总之,容器化AI模型的监控与治理是确保其长期稳定运行的关键。
|
12月前
|
监控 Kubernetes Cloud Native
基于阿里云容器服务Kubernetes版(ACK)的微服务架构设计与实践
本文介绍了如何基于阿里云容器服务Kubernetes版(ACK)设计和实现微服务架构。首先概述了微服务架构的优势与挑战,如模块化、可扩展性及技术多样性。接着详细描述了ACK的核心功能,包括集群管理、应用管理、网络与安全、监控与日志等。在设计基于ACK的微服务架构时,需考虑服务拆分、通信、发现与负载均衡、配置管理、监控与日志以及CI/CD等方面。通过一个电商应用案例,展示了用户服务、商品服务、订单服务和支付服务的具体部署步骤。最后总结了ACK为微服务架构提供的强大支持,帮助应对各种挑战,构建高效可靠的云原生应用。
|
人工智能 运维 监控
阿里云ACK容器服务生产级可观测体系建设实践
本文整理自2024云栖大会冯诗淳(花名:行疾)的演讲,介绍了阿里云容器服务团队在生产级可观测体系建设方面的实践。冯诗淳详细阐述了容器化架构带来的挑战及解决方案,强调了可观测性对于构建稳健运维体系的重要性。文中提到,阿里云作为亚洲唯一蝉联全球领导者的容器管理平台,其可观测能力在多项关键评测中表现优异,支持AI、容器网络、存储等多个场景的高级容器可观测能力。此外,还介绍了阿里云容器服务在多云管理、成本优化等方面的最新进展,以及即将推出的ACK AI助手2.0,旨在通过智能引擎和专家诊断经验,简化异常数据查找,缩短故障响应时间。
阿里云ACK容器服务生产级可观测体系建设实践