接入Prometheus监控后,您可以通过ARMS预定义的大盘监控Kubernetes集群的众多性能指标。本文介绍如何为ACK Serverless集群接入ARMS Prometheus监控。
前提条件
背景信息
应用实时监控服务ARMS(Application Real-Time Monitoring Service)是一款应用性能管理(APM)产品,包含应用监控、Prometheus监控等功能模块,能帮助您实现全栈式性能监控和端到端全链路追踪诊断,实现轻松高效的应用运维。
ARMS Prometheus监控可以全面对接开源Prometheus生态,支持类型丰富的组件监控,提供多种开箱即用的预置监控大盘,并提供全面托管的Prometheus服务。借助ARMS Prometheus监控,您无需自行搭建Prometheus监控系统,因而无需关心底层数据存储、数据展示、系统运维等问题。更多信息,请参见Prometheus监控概述。
安装Prometheus监控组件
登录容器服务管理控制台。
在左侧导航栏,单击集群。
在集群列表页面,单击目标集群名称。
在集群管理页左侧导航栏,选择运维管理>组件管理。
单击日志与监控页签,找到ack-arms-prometheus卡片,然后单击安装。
在弹出的对话框中,单击确定。
安装完成后,ack-arms-prometheus卡片右上角会显示已安装。
查看Prometheus监控
安装prometheus监控组件后,您可以在ARMS控制台的Prometheus监控页面查看具体监控信息。
在容器服务管理控制台的左侧导航栏,选择集群。
在集群列表页面,单击目标集群名称。
在集群信息页面,单击概览页签,然后单击右上角的Prometheus监控。
查看Prometheus监控指标。
您可以根据需要切换页签查看各项仪表板展示的监控指标。更多信息,请参见查看Prometheus监控指标。
单击右上角的跳转到Prometheus服务,可以跳转到ARMS控制台设置该集群的Prometheus监控大盘。
配置Prometheus监控采集规则
ARMS Prometheus监控兼容并提供三种主流采集规则的实现,包括:
标准开源采集规则配置文件prometheus.yaml
适合自定义K8s集群内监控的采集规则ServiceMonitor
默认采集规则Annotation
三种规则对应的配置方式如下:
编辑prometheus.yaml
Prometheus监控无需重启,使用prometheus.yaml配置文件即可动态更新采集规则。
在ARMS控制台的左侧导航栏,选择Prometheus监控>Prometheus实例列表。
在实例列表中找到要配置的实例(实例名称为ACK Serverless集群名称),单击对应的设置。
在左侧导航栏,单击设置。
在设置页签下,单击编辑prometheus.yaml。
编辑prometheus.yaml,然后单击保存。
内容示例如下:
global: scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute. evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute. scrape_configs: - job_name: 'prometheus' static_configs: - targets: ['localhost:9090']
添加ServiceMonitor
添加ServiceMonitor后可以进行K8s集群内应用业务数据的监控。
在ARMS控制台的左侧导航栏,选择Prometheus监控>Prometheus实例列表。
在实例列表中找到要配置的实例(实例名称为ACK Serverless集群名称),单击对应的设置。
在左侧导航栏,单击服务发现,然后单击配置页签。
单击ServiceMonitor页签,然后单击添加ServiceMonitor。
参考以下示例填写内容,然后单击确定。
apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: # 填写一个唯一名称 name: tomcat-demo # 填写目标命名空间 namespace: default spec: endpoints: - interval: 30s # 填写Prometheus Exporter对应的Port的Name字段的值 port: tomcat-monitor # 填写Prometheus Exporter对应的Path的值 path: /prometheus-metrics namespaceSelector: any: true selector: matchLabels: #填写service.yaml的label字段,用来定位目标service.yaml app: tomcat
添加Annotation
在应用的YAML文件里,添加Annotation如下:
annotations: prometheus.io/scrape: "true" prometheus.io/port: "9090" prometheus.io/path: "/metrics"