一、典型场景
腾讯云 Prometheus 监控服务已提供了部分场景的自定义接入说明文档,接入步骤均可概括为:部署服务-开启指标上报-添加采集任务。虽然服务类型与部署方式不尽相同,但是都可以通过通用组件监控集成来代替传统的手动编写采集配置步骤。通用组件监控集成可普遍适用于通过固定端口和路径暴露了 Prometheus 格式指标的服务监控,包括但不限于以下场景:
·JVM 接入
·Spring Boot 接入
·Golang 应用接入
·Docker 接入
·Fluentd/FluentBit 接入
·ETCD
·Kong
二、前提条件
·待监控的服务已成功部署,并通过特定端口和路径将 Prometheus 格式指标暴露出来。
·当前 Prometheus 实例所在私有网络 VPC 与待监控的服务网络相通。
·如果待监控组件部署在容器环境,需确保当前 Prometheus 实例已成功关联待监控组件服务所在集群,步骤请参见 集成容器服务。
三、操作步骤
1. 登录 Prometheus 控制台。
2. 在实例列表中,选择对应的 Prometheus 实例。
3. 进入实例详情页,选择数据采集 > 集成中心。
4. 在集成中心找到并单击通用组件监控,即会弹出一个安装窗口,在安装页面填写集成名称并选择部署方式,具体配置方式如下。
StaticConfig(静态采集配置)ServiceDiscovery(服务发现配置)
如果待监控组件部署在非容器环境,可通过 StaticConfig 类型部署监控采集配置。具体配置步骤如下:
1. 在弹出的安装窗口中,找到实例配置 > 部署类型,下拉选择 StaticConfig。
2. 在静态采集配置 > 采集目标地址中,填写待监控组件的 host:port,支持添加多个,需保证网络与 Prometheus 实例互通。
3. 确认 Exporter 配置 > 指标采集路径中的 path 是否与待监控组件配置一致。
4. 按需填写其他 Exporter 配置,然后单击保存。
| 参数 | 说明 |
| 名称 | 集成名称,命名规范如下:名称具有唯一性。名称需要符合下面的正则:'^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$'。 |
| 部署类型 | 监控的部署类型,StaticConfig 代表静态采集配置。 |
| 采集目标地址 | 输入采集目标地址,格式:host:port,支持添加多个。需保证网络与 Prometheus 实例互通,如需通过公网访问,可参见 TKE Serverless 集群如何放通外网。 |
| 指标采集路径 | 待监控组件指标暴露的路径,默认为 /metrics。 |
| 抓取间隔 | 默认15s,填写示例:60s、1m30s、5m。 |
| 抓取超时 | 默认10s,抓取超时必须小于等于抓取间隔,填写方式同抓取间隔。 |
| Metric Relabel 配置 | 选填。兼容 Prometheus 原生的 metric_relabel_configs 和 Prometheus Operator 原生的 metricRelabelings 配置。不可混用。 |
如果待监控组件部署在容器环境,可通过 ServiceDiscovery 类型部署监控采集配置。具体配置步骤如下:
1. 在弹出的安装窗口中,找到实例配置 > 部署类型,下拉选择 ServiceDiscovery。
2. 在服务发现配置中,选取待监控组件服务所在的集群,填写待监控组件所在的命名空间、指标暴露的端口号或端口名称、待监控组件服务 Pod 标签。
3. 确认 Exporter 配置 > 指标采集路径中的 path 是否与待监控组件配置一致。
4. 按需填写其他 Exporter 配置,然后单击保存。
| 参数 | 说明 |
| 名称 | 集成名称,命名规范如下:名称具有唯一性名称需要符合下面的正则:'^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$' |
| 部署类型 | 监控的部署类型,ServiceDiscovery 代表服务发现配置。 |
| 集群 | 待监控组件服务所在的集群,需确保集群已成功被当前 Prometheus 实例关联,步骤请参见 集成容器服务。 |
| 命名空间 | 待监控组件服务所在的集群命名空间。 |
| 端口 | 待监控组件服务指标暴露的端口号或端口名称,需在工作负载 spec.template.spec.containers.ports 中增加端口配置。 |
| Pod 标签 | 待监控组件服务 Pod 在 metadata.labels 中显式配置的标签。当通过工作负载创建 Pod 时,则为工作负载 spec.template.metadata.labels 中配置的标签。 |
| 指标采集路径 | 待监控组件服务指标暴露的路径,默认为 /metrics。 |
| 抓取间隔 | 默认15s,填写示例:60s、1m30s、5m。 |
| 抓取超时 | 默认10s,抓取超时必须小于等于抓取间隔,填写方式同抓取间隔。 |
| Metric Relabel 配置 | 选填。兼容 Prometheus 原生的 metric_relabel_configs 和 Prometheus Operator 原生的 metricRelabelings 配置。不可混用。 |
四、前提条件
Prometheus 实例已绑定 Grafana 实例。
五、操作步骤
1. 登录 Prometheus 监控服务控制台,选择对应 Prometheus 实例进入管理页面。
2. 选择数据采集 > 集成中心,在集成中心页面找到通用组件监控 卡片并点击弹出集成页面,选择 Dashboard > Dashboard 安装/升级来安装对应的 Grafana Dashboard。
3. 打开 Prometheus 实例对应的 Grafana 地址,在Dashboards中根据 面板说明 中的路径查看不同应用的监控面板。
六、面板说明
·JVM:位于java文件夹,进入文件夹搜索 JVM 即可。
具体面板说明如下:
·应用 JVM:从应用角度出发,查看该应用下所有实例是否存在异常,当发现某个实例有异常时,可以下钻到对应的实例监控。
·实例 JVM:单实例 JVM 详细的监控数据。
·Spring Boot:位于java文件夹,通过 Spring 标签过滤即可。
具体面板说明如下:
·Spring MVC 应用:监控 MVC 的状态,例如请求耗时/请求量/成功率/异常分布等。
·Spring MVC 接口:接口级监控,可以对应多个接口,方便定位是哪个接口出问题。
·Tomcat:Tomcat 内部状态的监控大屏,例如线程使用情况等。
·Golang:位于go文件夹。
具体面板说明如下:
·Golang Runtime:实例级监控大盘。
·Golang Runtime Overview:应用级监控总览。
·Docker:在Dashboards中搜索Docker。
·Fluentd/FluentBit:位于middleware文件夹,进入文件夹搜索 Fluent 即可。
具体面板说明如下:
·Fluent Bit Metrics:FluentBit 相关指标监控大盘
·Fluentd 1.x:Fluentd相关指标监控大盘
·ETCD:位于etcd文件夹。
·Kong:位于kong文件夹。