使用AppDynamics监控AWS EKS集群的相关问题咨询
EKS集群AppDynamics监控重点指标
你可以按照分层逻辑梳理核心关注指标,避免漏看关键风险点:
集群控制面层
- 集群总CPU配额/使用率、总内存配额/使用率:直接反应集群整体资源水位,避免资源耗尽导致新Pod无法调度
- 集群节点总数、健康节点占比:异常节点下线时可以快速感知集群可用容量变化
- 调度器调度成功率、API服务器响应延迟:反应K8s核心控制面的运行状态,控制面故障会导致整个集群操作失效
- 持久化存储(PV/PVC)总使用率:避免有状态服务存储打满导致服务异常
节点层
- 单节点CPU使用率、内存使用率、磁盘I/O使用率、网络带宽使用率:快速定位资源瓶颈节点
- 节点kubelet、kube-proxy等系统组件健康状态:节点组件故障会导致该节点上所有Pod无法正常被管理
- 节点文件系统使用率(尤其是系统盘、数据盘分区):避免磁盘满导致节点变为NotReady状态
工作负载/服务层
- Deployment/StatefulSet/DaemonSet的期望副本数、实际运行副本数、可用副本数:快速感知服务实例异常缩减的情况
- Service的请求成功率、平均响应延迟、请求QPS:反应服务层面的业务运行状态
- HPA的当前副本数、目标指标匹配度:感知弹性扩缩容是否正常运作
Pod层
- PodCPU使用率/限制值占比、内存使用率/限制值占比:提前发现Pod资源不足或资源浪费的情况
- Pod重启次数:重启次数过高一般说明服务存在崩溃异常,需要排查
- Pod内容器的就绪探针、存活探针成功率:探针失败会导致Pod无法对外提供服务或被反复重启
- Pod网络入/出带宽、网络丢包率:定位Pod层面的网络异常
AppDynamics与AWS EKS对接配置步骤
前置准备:你需要持有有效的AppDynamics账号,AWS账号具备EKS管理员权限,本地已经安装好kubectl、eksctl、helm工具,配置步骤如下:
- 获取AppDynamics接入凭证
登录AppDynamics控制器,进入租户设置页面,获取控制器地址、账号名、接入密钥三个核心参数,后续部署集群代理会用到 - 配置AWS侧权限(推荐使用IRSA避免密钥硬编码)
首先为AppDynamics集群代理创建IAM策略,权限范围包含EKS集群资源只读、CloudWatch指标只读、EC2实例元数据读取权限;之后为AppDynamics代理对应的K8s ServiceAccount绑定上述IAM策略即可 - 使用Helm部署AppDynamics集群代理
- 添加AppDynamics官方Helm仓库:
helm repo add appdynamics https://appdynamics.jfrog.io/artifactory/helm-charts/ - 拉取最新的Chart包到本地:
helm pull appdynamics/cluster-agent --untar - 编辑values.yaml配置文件,填入之前获取的控制器地址、账号名、接入密钥,开启EKS相关指标采集开关,默认会采集所有命名空间的资源数据,如需限定采集范围可以在配置中指定命名空间列表,使用IRSA的话需要在serviceAccount配置段指定已经绑定IAM角色的ServiceAccount名称
- 部署集群代理到EKS集群:
helm install appdynamics-cluster-agent ./cluster-agent -n appdynamics --create-namespace
- 添加AppDynamics官方Helm仓库:
- 验证采集状态
执行kubectl get pods -n appdynamics确认集群代理Pod处于Running状态,登录AppDynamics控制器进入Kubernetes监控页面,等待3-5分钟即可看到EKS集群的全量资源数据
注意:如果需要监控Pod内的应用代码性能,可以额外在应用部署清单中注入对应语言的AppDynamics代理(Java/Go/Python等),即可实现从集群基础设施到应用代码的全链路监控
内容的提问来源于stack exchange,提问作者keshav swami
相关产品推荐
相关产品推荐

