阿里云Prometheus监控
您可以通过阿里云Prometheus监控查看预先配置的监控大盘和监控性能指标。本文介绍如何在ACS中接入阿里云Prometheus监控、如何配置Prometheus监控报警和自定义Prometheus监控指标,并通过Grafana展示。
阿里云Prometheus监控介绍
阿里云Prometheus监控全面对接开源Prometheus生态,支持类型丰富的组件监控,提供多种开箱即用的预置监控大盘,且提供全面托管的Prometheus服务。借助阿里云Prometheus监控,您无需自行搭建Prometheus监控系统,因而无需关心底层数据存储、数据展示、系统运维等问题。有关阿里云Prometheus监控的更多信息,请参见什么是可观测监控 Prometheus 版。
Prometheus监控组件
ACS集群默认安装托管版Prometheus监控组件。
类型 | 说明 |
托管版 | 由阿里Prometheus云服务直接采集您集群中的容器监控数据,提供开箱即用以及Serverless化的体验。 说明 在创建ACS集群时会默认开启Prometheus监控服务,请参见创建ACS集群。默认开启的Prometheus不收费。 |
非托管版 | 需部署Prometheus的采集组件、Kube-State-Metrics等组件至您的集群中,且至少需启动2个默认单副本的弹性容器实例,总规格为1.5 core CPUs、1.5GB Memory。具体规格会随集群数据量动态扩缩。ECI实例价格,请参见ECI实例概述。 |
配置Prometheus监控报警
为监控任务创建报警可在满足报警条件时通过邮件、短信、钉钉等渠道实时报警,主动帮助您发现异常。报警规则被触发时会向您指定的联系人分组发送通知,而在创建联系人分组之前必须先创建联系人。创建联系人时,您可以指定联系人用于接收通知的手机号码和邮箱地址,也可以提供用于自动发送报警通知的钉钉机器人地址。
步骤一:创建联系人
登录Prometheus控制台,在Prometheus监控页面左上角,选择容器服务K8s集群所在的地域。
在左侧导航栏,选择告警管理>通知对象。
- 在联系人页签单击新建联系人。
- 在新建联系人对话框中输入联系人姓名,根据实际需求设置以下参数,然后单击确认。
参数 说明 姓名 自定义联系人姓名。 手机号码 设置联系人的手机号码后,可以通过电话和短信的方式接收告警通知。 说明 仅验证过的手机号码可以在通知策略中使用电话的通知方式,验证手机号的操作,请参见验证手机号。邮箱 设置联系人的邮箱地址后,可以通过邮箱接收告警通知。 联系人组 选择联系人需要加入的联系人组。创建联系人组的操作,请参见联系人组。 电话通知失败补发类型 选择电话通知失败后,通知补发类型。 您可以在联系人页签设置全局默认值,具体操作,请参见下文联系人默认配置。
重要- 手机号码和邮箱至少填写一项,每个手机号码或邮箱只能用于一个联系人。
- 新版联系人不支持设置钉钉机器人,如果您需要创建钉钉机器人,请在钉钉/飞书/企微页签新建钉钉机器人。具体操作,请参见钉钉机器人。已在旧版联系人中创建的钉钉机器人则保留不变。
步骤二:配置告警规则
登录Prometheus控制台,在左侧导航栏,单击监控列表。
在Prometheus监控页面左上角,选择容器服务K8s集群所在的地域,然后单击目标实例名称进入对应实例页面。
在左侧导航栏,单击告警规则,在告警规则列表,单击对应告警操作列的编辑,配置告警规则,配置完成后单击保存,可快速创建对应指标项的告警规则。
更多信息,请参见Prometheus告警规则(新版)或Prometheus告警规则(旧版)。
自定义Prometheus监控指标并通过Grafana展示
方式一:通过Annotations自定义指标监控
通过给Deployment Pod Template加入Annotations的方式自定义监控,阿里云Prometheus监控将会通过Pod服务发现的方式自动获取Pod自定义指标。详细信息,请参见管理Kubernetes集群服务发现。
登录容器计算服务管理控制台,在左侧导航栏选择集群。
创建应用。
在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择工作负载 > 无状态。
在无状态页面,单击使用镜像创建。
在应用基本信息页面,填写应用的基本信息,单击下一步。
在容器配置页面,配置容器镜像和所需资源,并创建一个Web应用,暴露80端口,然后单击下一步。
创建服务。
在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择 。
单击服务页面右上角的创建。在创建服务页面,需配置如下配置项。
配置项
说明
名称
自定义名称。
类型
选择负载均衡型服务,并通过公网访问。
关联
选择所创建的应用。
端口映射
设置服务端口和容器端口。
单击创建,完成服务创建。关于创建服务的更多操作,请参见使用Service对外暴露应用。
配置自定义指标。
在Prometheus监控页面左上角,选择容器服务K8s集群所在的地域,然后单击目标实例名称进入对应实例页面。
在左侧导航栏单击服务发现,单击配置页签,通过添加ServiceMonitor、PodMonitor配置可观测监控Prometheus版的采集规则。
关于配置自定义指标的更多操作,请参见管理Kubernetes集群服务发现。
单击Targets页签,可以看到自定义的指标已经配置成功。
自定义指标监控。
在Prometheus监控页面左上角,选择容器服务K8s集群所在的地域,然后单击目标实例名称进入对应实例页面。
在左侧导航栏单击大盘列表,单击Prometheus任意一个预置的图表进入Grafana,然后先单击右上角的图标,再单击Add a new panel添加Panel 。
选择对应的集群数据源和填写PromQL。例如,将Metrics填写为current_person_counts。
保存配置即可观察到自定义指标的Grafana图形。
方式二:通过ServiceMonitor自定义指标监控
通过ServiceMonitor方式自定义指标监控在部署时无需配置Annotations,但是要给Service对象添加标签。
登录容器计算服务管理控制台,在左侧导航栏选择集群。
创建应用。
在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择工作负载 > 无状态。
在无状态页面,单击使用镜像创建。
在应用基本信息页面,填写应用的基本信息,单击下一步。
在容器配置页面,配置容器镜像和所需资源,并创建一个Web应用,暴露5000端口,然后单击下一步。
以镜像
yejianhonghong/pindex
为示例。在高级配置页面单击创建,完成应用创建。
创建服务。
在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择 。
单击服务页面右上角的创建。在创建服务页面,需配置如下配置项。
配置项
说明
名称
自定义。
类型
选择负载均衡型服务,并通过公网访问。
关联
选择所创建的应用。
端口映射
设置服务端口和容器端口。
标签
添加标签。该标签将被用于ServiceMonitor的selector。
单击创建,完成服务创建。
关于创建服务的更多操作,请参见使用Service对外暴露应用。
配置自定义指标,使Prometheus获得服务Scrape Endpoint。
在Prometheus监控页面左上角,选择容器服务K8s集群所在的地域,然后单击目标实例名称进入对应实例页面。
在左侧导航栏,单击服务发现,然后单击配置页签。
在配置页签下单击ServiceMonitor。
在ServiceMonitor页签下单击添加ServiceMonitor创建ServiceMonitor。
单击确定完成ServiceMonitor创建。
关于配置自定义指标的更多操作,请参见管理Kubernetes集群服务发现。
在Targets页签,可以看到Prometheus已经获取到了服务Scrape Endpoint。
说明这里ServiceMonitor定义比Annotations方式更直观,指出了Namespace和Service名称。
在容器计算服务管理控制台,访问所创建服务暴露出来的公网IP,增加指标值。
具体指标的配置,请参见DATA MODEL。
自定义指标监控。
在Prometheus监控页面左上角,选择容器服务K8s集群所在的地域,然后单击目标实例名称进入对应实例页面。
在左侧导航栏单击大盘列表,单击Prometheus任意一个预置的图表进入Grafana,然后先单击右上角的图标,再单击Add a new panel添加Panel 。
选择对应的集群数据源和填写PromQL。例如,将Metrics填写为current_person_counts。
保存配置即可观察到自定义指标的Grafana图形。
开启Ingress监控
ACS默认会集成ARMS并免费采集核心管控以及基础指标(Pod、容器),但不会采集Ingress相关指标,用户安装Ingress-controller后如有需求可在ARMS控制台可自行开启
安装Nginx Ingress Controller
跳转到ARMS控制台
进入集成中心,搜索并安装「Ingress 性能监控」
安装完成后稍等1分钟左右即可查看相关大盘: