对EKS(AWS云k8s)启用AMP(AWS云Prometheus)监控+AMG(AWS云 grafana)

问题

需要在针对已有的EKS k8s集群启用Prometheus指标监控。而且,这里使用AMP即AWS云的Prometheus托管服务。好像这个服务,只有AWS国际云才有,AWS中国云没得这个托管服务。下面,我们就来尝试在已有的EKS集群上面启用AMP监控。

步骤

下面使用页面方式创建的抓取程序有问题,创建抓取程序的安全组不能指定,如果想指定安全组,需要使用CLI工具进行抓取程序创建。
获取默认抓取程序配置命令,如下:

aws amp get-default-scraper-configuration --region us-east-1

这里会得到一个base64编码的抓取程序配置。
然后,使用下面的手动命令创建抓取程序,如下:

aws amp create-scraper --source eksConfiguration="{clusterArn='arn:aws:eks:us-east-1:xxxxxx:cluster/xxxxx', securityGroupIds=['sg-xxxxxx'],subnetIds=['subnet-xxxxxxx', 'subnet-xxxxxx', 'subnet-xxxxxxxx']}" --scrape-configuration configurationBlob="asdfaslkdgjoasdlnOQo=" --destination ampConfiguration="{workspaceArn='arn:aws:aps:us-east-1:xxxxxx:workspace/ws-xxxx-xxxx-xxxx'}"

这里使用aws amp create-scraper命令行进行抓取程序创建,主要是为了设置安全组,这里的安全组,是EKS集群的安全组,类似如下:

eks-cluster-sg-xxxx-009384

是这样描述的:

EKS created security group applied to ENI that is attached to EKS Control Plane master nodes, as well as any managed workloads.

这个安全组基本上面没有端口和ip限制。
下面使用页面创建方式作废。

打开如下页面:
添加prometheus入口
点击“添加抓取程序”,接下来,使用创建AMP工作空间,如下图:
创建抓取程序页面
这里我们直接用默认的设置就好。等待一段时间,这里的等待时间可能有点久。

ClusterRole

创建aps-collector-user用户

创建一个集群角色和用户,内容如下:

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:name: aps-collector-role
rules:- apiGroups: [""]resources: ["nodes", "nodes/proxy", "nodes/metrics", "services", "endpoints", "pods", "ingresses", "configmaps"]verbs: ["describe", "get", "list", "watch"]- apiGroups: ["extensions", "networking.k8s.io"]resources: ["ingresses/status", "ingresses"]verbs: ["describe", "get", "list", "watch"]- nonResourceURLs: ["/metrics"]verbs: ["get"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:name: aps-collector-user-role-binding
subjects:
- kind: Username: aps-collector-userapiGroup: rbac.authorization.k8s.io
roleRef:kind: ClusterRolename: aps-collector-roleapiGroup: rbac.authorization.k8s.io

保存为clusterrole-binding.yml文件。应用上述文件:

kubectl apply -f clusterrole-binding.yml

创建的集群角色aps-collector-role和用户aps-collector-user成功后,我们找到之前一步创建抓取程序时得到的roleArn,具体页面如下:
抓取程序角色
记住这个抓取程序的IAM角色,然后,将这个IAM角色映射到之前在k8s中创建的aps-collector-user用户。映射命令如下:

eksctl create iamidentitymapping --cluster cluster-name --region region-id --arn roleArn --username aps-collector-user

注意:复制到的抓取程序roleArn,需要去掉aws-service-role/scraper.aps.amazonaws.com/这一段,才能用eksctl命令创建映射。
具体了例子如下:

eksctl create iamidentitymapping --cluster uat --region us-east-1 --arn arn:aws:iam::xxxxxxxxxxx:role/AWSServiceRoleForAmazonPrometheusScraper_xxxxxx --username aps-collector-user
2024-04-16 16:50:15 []  checking arn arn:aws:iam::xxxxxxxxxxx:role/AWSServiceRoleForAmazonPrometheusScraper_xxxxxx against entries in the auth ConfigMap
2024-04-16 16:50:15 []  adding identity "arn:aws:iam::xxxxxxxxxxx:role/AWSServiceRoleForAmazonPrometheusScraper_xxxxxx" to auth ConfigMap

查看ConfigMap映射,如下命令:

eksctl get iamidentitymapping --cluster uat --region=us-east-1

IAM Identity Center

因为我们使用IAM Identity Center中的用户,登录Grafana Web页面。所以,我们先要用管理账号登录aws,在IAM Identity Center中创建用户和用户组。如果用成员账号登录IAM Identity Center中创建用户和用户组,在后面的AMG(AWS云 grafana)中会看不到的,所以,我们需要使用管理账号在IAM Identity Center中创建用户和用户组。在下面界面,使用管理账号创建用户和用户组,下面是具体页面入口:
IAM Identity Center入口

AMG(AWS云 grafana)

按上述方式创建完用户和用户组之后,我们开始创建grafana工作区。开始创建grafana工作区,如下图:
grafana工作区
设置grafana工作区,如下图:
AWG主要设置
设置数据源,设置访问权限,如下图:

设置使用idp方式访问
最后审计一片,如果没问题,就直接创建工作区,如下图:
创建工作区

等待一段时间,可能这里等待时间有点长。

配置IAM Identity Center用户组访问权限

最后,在grafana工作区配置IAM Identity Center用户组访问权限,具体如下图:
点击分配新用户或组
添加admin用户组
设置admin用户组为管理员权限,如下图:
设置管理员权限
效果如下:
管理员组

打开grafana web页面

grafana页面地址
使用IAM Identity Center中admin用户组的成员登录,这个grafana页面。效果如下:
主页效果

设置grafana的数据源

在grafana控制台直接点击“在Grafana中配置”,如下图:
在Grafana中配置
使用IAM Identity Center中admin用户组的成员登录,选择AMP所在云区,就可以看到之前,我们创建的AMP工作区,如下图:
添加数据源
添加完数据源之后,就是一些常规的prometheus操作了。
到这里就差不多完成了AMP+AMG对EKS的监控了。

然后,进入仪表盘倒入页面,如下图:
导入仪表盘
导入315仪表盘。如下图:
导入315仪表盘
最终效果,如下图:
效果图

总结

AMP+AMG监控EKS这一套,在AWS云上面,在2024年4月这个时间点,感觉还是不很成熟,不过,比之前预览版本的prometheus好多了,之前预览版本的AMP,还得在EKS集群安装一个prometheus服务器。感觉有点画蛇添足。现在这个版本AMP,只需要在集群安装一个抓取程序就可以了。不过,页面新建的抓取程序在现在这个时间点,还不能设置安全组,有点小问题。得使用CLI建抓取程序才行。整体来说AWS云托管Prometheus,托管Grafana,来监控k8s集群,总比没有要好。

参考

  • Prometheus 指标
  • 配置 Amazon EKS 集群
  • Configure AWS SSO and Multi-Account Data Source Access with Amazon Managed Service for Grafana
  • Setting Up AWS IAM Identity Center (SSO) and AWS Organizations
  • 使用AWS数据源配置将适用于 Prometheus 的亚马逊托管服务添加为数据源
  • Simplified Observability for Amazon EKS with the new Amazon Managed Service for Prometheus agentless collector
  • Prometheus with Grafana
  • Kubernetes cluster monitoring (via Prometheus)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/314103.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue 脚手架创建

脚手架创建 介绍 脚手架是什么呢,就是vue自动创建脚手架的项目模板,用于搭建项目的整体骨架,就比如后端开发时,咱们可以创建一个空项目,一步步创建为mvc项目,但是vs封装了mvc的框架,我们可以直…

[C++][算法基础]求组合数(I)

给定 𝑛 组询问,每组询问给定两个整数 𝑎,𝑏,请你输出 的值。 输入格式 第一行包含整数 𝑛。 接下来 𝑛 行,每行包含一组 𝑎 和 𝑏。 输出格…

VMware17Pro虚拟机安装macOS教程(超详细)

目录 1. 前言2. 下载所需文件3. 安装VMware3.1 安装3.2 启动并查看版本信息3.3 虚拟机默认位置配置 4. 安装补丁4.1 解压补丁4.2 结束VMware相关进程4.3 运行补丁包 5. 安装macOS5.1 新建虚拟机5.2 修改虚拟机配置5.3 安装操作系统5.3.1 选择 ISO 映像文件5.3.2 开启虚拟机5.2.…

07 流量回放实现自动化回归测试

在本模块的前四讲里,我向你介绍了可以直接落地的、能够支撑百万并发的读服务的系统架构,包含懒加载缓存、全量缓存,以及数据同步等方案的技术细节。 基于上述方案及细节,你可以直接对你所负责的读服务进行架构升级,将…

江苏开放大学2024年春《会计基础 050266》第二次任务:第二次过程性考核参考答案

电大搜题 多的用不完的题库,支持文字、图片搜题,包含国家开放大学、广东开放大学、超星等等多个平台题库,考试作业必备神器。 公众号 答案:更多答案,请关注【电大搜题】微信公众号 答案:更多答案&#…

数据结构-二叉树-堆(二)

一、建堆的时间复杂度问题 1、除了向上调整建堆,我们还可以向下调整建堆。不能在根上直接开始向下调整。这里的条件就是左右子树必须都是大堆或者小堆。我们可以倒着往前走,可以从最后一个叶子开始调整。但是从叶子开始调整没有意义。所以我们可以从倒数…

C#开发的全套成熟的LIS系统源码JavaScript+SQLserver 2012区域云LIS系统源码

C#开发的全套成熟的LIS系统源码JavaScriptSQLserver 2012区域云LIS系统源码 医院云LIS系统是一套成熟的实验室信息管理系统,目前已在多家三级级医院应用,并不断更新。云LIS系统是为病人为中心、以业务处理为基础、以提高检验科室管理水平和工作效率为目标…

Godot3D学习笔记1——界面布局简介

创建完成项目之后可以看到如下界面: Godot引擎也是场景式编程,这里的一个场景相当于一个关卡。 这里我们点击左侧“3D场景”按钮创建一个3D场景,现在在中间的画面中会出现一个球。在左侧节点视图中选中“Node3D”,右键创建子节点…

Python打怪升级(4)

在计算机领域常常有说"合法"和"非法"指的是:是否合理,是否有效,并不是指触犯了法律。 random.randint(begin,end) 详细讲解一下这个random是指模板,也就是别人写好的代码直接来用,在Python当中,…

探索和构建 LLaMA 3 架构:深入探讨组件、编码和推理技术(四)分组多查询注意力

探索和构建 LLaMA 3 架构:深入探讨组件、编码和推理技术(四)分组多查询注意力 Grouped-query Attention,简称GQA 分组查询注意力(Grouped-query Attention,简称GQA)是多查询和多头注意力的插值…

grafana报错This panel requires Angular (deprecated)

1.原因 报错解释: Grafana在更新到7.0版本后,弃用了AngularJS(一种用于构建大型Web应用的JavaScript框架)。在早期的Grafana版本中,某些面板可能依赖于AngularJS,但这种依赖已经逐步被新的React或Vue面板所…

【软考经验分享】软考-中级-嵌入式备考

这里写目录标题 教辅用书嵌入式系统设计师考试大纲嵌入式系统设计师教程嵌入式系统设计师5天修炼嵌入式系统设计师考前冲刺100题 刷题软件希赛网软考真题 视频教程希赛网王道-计组计网 教辅用书 嵌入式系统设计师考试大纲 50页左右,内容为罗列一些考点&#xff0c…

Java基础之JVM基础调优与常见问题

常见命令 以下命令的介绍,全部在jdk8环境下运行的; jps ☆☆☆☆☆ 查看当前运行的进程号; jmap ☆☆☆ jmap命令可以查看jvm的内存信息,class对应的实例个数以及占用的内存大小 jmap -histo 查看当前java进程 [rdVM-8-12-c…

ARM学习(26)链接库的依赖查看

笔者今天来聊一下查看链接库的依赖。 通常情况下,运行一个可执行文件的时候,可能会出现找不到依赖库的情况,比如图下这种情况,可以看到是缺少了license.dll或者libtest.so,所以无法运行。怎么知道它到底缺少什么dll呢&…

多输入多输出 | Matlab实现WOA-LSSVM鲸鱼算法优化最小二乘支持向量机多输入多输出预测

多输入多输出 | Matlab实现WOA-LSSVM鲸鱼算法优化最小二乘支持向量机多输入多输出预测 目录 多输入多输出 | Matlab实现WOA-LSSVM鲸鱼算法优化最小二乘支持向量机多输入多输出预测预测效果基本介绍程序设计往期精彩参考资料 预测效果 基本介绍 Matlab实现WOA-LSSVM鲸鱼算法优化…

SpringCloud系列(5)--SpringCloud微服务工程公共部分提取

前言:在上一章节中我们创建了两个个SpringCloud工程,但在两个工程中分别存在着一些重复的部分,例如重复的实体类(如图所示),这样会造成系统的冗余,所以我们需要把公共的类提取到一个工程里&…

AOC vs. DAC:哪个更适合您的网络需求?

在现代网络通信中,选择合适的连接线缆对于数据传输的稳定性和速度至关重要。两种常见的线缆类型是 AOC(Active Optical Cable) 和 DAC(Direct Attach Cable)。本文将详细介绍这两种线缆的特点、优势和适用场景&#xf…

03_Scala变量和数据类型

文章目录 [toc] **变量和数据类型****1.注释****2.变量和常量****3. 标识符的命名规范****4.scala的字符串****5.键盘输入****5.1 StdIn.readLine()****5.2 从文件中读取数据****5.3 Scala向外写数据** 变量和数据类型 1.注释 和Java完全一样 ** ** 2.变量和常量 var name…

LiveNVR监控流媒体Onvif/RTSP常见问题-如何对比监控摄像头延时视频流延时支持webrtc视频流播放超低延时播放

LiveNVR如何对比监控摄像头延时视频流延时支持webrtc视频流播放超低延时播放 1、问题场景2、如何对比延时?3、WEBRTC延时对比4、LiveNVR支持WEBRTC输出5、RTSP/HLS/FLV/RTMP拉流Onvif流媒体服务 1、问题场景 需要低延时的视频流监控播放,之前可以用rtmp…

OpenHarmony实战开发-媒体查询 (@ohos.mediaquery)

概述 媒体查询作为响应式设计的核心,在移动设备上应用十分广泛。媒体查询可根据不同设备类型或同设备不同状态修改应用的样式。媒体查询常用于下面两种场景: 针对设备和应用的属性信息(比如显示区域、深浅色、分辨率)&#xff0…