You need to enable JavaScript to run this app.
文档中心
容器服务

容器服务

复制全文
下载 pdf
可观测性
监控集群中部署的应用实例
复制全文
下载 pdf
监控集群中部署的应用实例
当您在容器服务集群中部署应用实例时,可以使用云原生观测对应用实例进行监控。本文以 MySQL 为例,介绍如何监控集群中的应用实例。​
背景信息​
MySQL 是常用的关系型数据库,在 Kubernetes 中,可借助开源的 mysqld-exporter 来监控部署在集群中 MySQL 实例的运行状态。​
前提条件​
  • 已经开启云原生观测,详情请参见 开启观测。​
  • 使用 kubectl 连接目标集群,详情请参见 连接集群。​
配置步骤​
步骤一:数据库授权​
mysqld-exporter 是通过查询数据库中状态数据来对其进行监控,所以需要为对应的数据库实例进行授权。您可以执行以下命令,为用户进行授权。​
​
CREATE USER 'exporter'@'localhost' IDENTIFIED BY 'XXXXXXXX' WITH MAX_USER_CONNECTIONS 3;​
GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'exporter'@'localhost';​
​
说明​
建议为该用户设置最大连接数限制,以避免因监控数据抓取对数据库带来影响。但并非所有版本的数据库中都可以生效,例如 MariaDB 10.1 版本不支持最大连接数设置。​
步骤二:创建 MySQL 连接串保密字典​
  1. 单击左侧导航栏中的 集群。​
  1. 在集群列表页面,单击目标集群,进入集群管理页面。​
  1. 在左侧导航栏中,选择 配置 > 保密字典,单击 使用 Yaml 创建,配置保密字典。​
  • ​
    apiVersion: v1​
    kind: Secret​
    metadata:​
    name: mysql-secret-demo # 配置保密字典的名称​
    namespace: volcano-metrics # 配置保密字典的命名空间​
    type: Opaque​
    stringData:​
    datasource: "user:password@tcp(ip:port)/" # 配置 MySQL 实例的连接串信息,包括用户名、密码、地址和端口号​
    ​
步骤三:部署 mysql-exporter​
在左侧导航栏中选择 工作负载 > 无状态负载。 单击 使用 Yaml 创建 ,部署 mysql-exporter。​
​
apiVersion: apps/v1​
kind: Deployment​
metadata:​
name: mysql-exporter # 配置 exporter 的名称​
namespace: volcano-metrics # 配置 exporter 的命名空间​
labels: ​
app-name: mysql-exporter # 配置 exporter 的标签​
spec: ​
replicas: 1​
selector:​
matchLabels:​
app-name: mysql-exporter # 根据业务需要调整成对应的名称,可以使用 MySQL 的实例信息​
template:​
metadata:​
labels:​
app-name: mysql-exporter # 根据业务需要调整成对应的名称,可以使用 MySQL 的实例信息​
spec:​
containers:​
- env:​
- name: DATA_SOURCE_NAME​
valueFrom: ​
secretKeyRef:​
name: mysql-secret-demo​
key: datasource​
image: prom/mysqld-exporter:latest # 拉取 Docker Hub 中的 exporter 镜像​
imagePullPolicy: IfNotPresent​
name: mysql-exporter # 配置容器名称​
ports:​
- containerPort: 9104 # 配置容器端口​
name: metric-port # 配置容器端口名称​
dnsPolicy: ClusterFirst​
restartPolicy: Always​
terminationGracePeriodSeconds: 30​
​
步骤四:配置服务发现​
  1. 在左侧菜单栏中选择 工作负载 > 对象浏览器。 单击 使用 Yaml 创建 ,通过 PodMonitor 配置采集规则。​
  • 在 类型 下拉菜单中选择 自定义。​
  • 在 Yaml 配置框内输入 Yaml 配置。​
  • ​
    apiVersion: monitoring.coreos.com/v1​
    kind: PodMonitor​
    metadata:​
    name: mysql-exporter # 配置 PodMonitor 的名称​
    namespace: volcano-metrics # 配置 PodMonitor 的命名空间​
    labels: ​
    volcengine.vmp: "true" # 配置 PodMonitor 的标签,允许被 Prometheus-agent 发现​
    spec:​
    podMetricsEndpoints:​
    - interval: 30s​
    port: metric-port # 填写容器端口名称​
    path: /metrics # 填写容器指标的 Path 路径,不填默认为 /metrics​
    relabelings: # 配置指标的 relabel。如没有该需求,可省略​
    - action: replace​
    sourceLabels:​
    - instance​
    regex: (.*)​
    targetLabel: instance​
    replacement: 'mysql-xxxxxx' # 配置为对应 mysql 实例的 ID 值​
    namespaceSelector:​
    matchNames: ​
    - volcano-metrics # 配置为容器所在的命名空间​
    selector: ​
    matchLabels:​
    app-name: mysql-exporter # 配置容器的 Label 值,以定位和选择目标 Pod​
    ​
结果验证​
  1. 执行以下命令,配置 Grafana 端口映射。​
  • ​
    kubectl port-forward service/grafana 3000:3000 -n volcano-metrics​
    ​
  1. 在本地环境(Linux/Mac)中打开浏览器,在地址栏中输入 localhost:3000,进入 Grafana 登录界面,使用默认用户名admin密码admin登录。​
  • ​alt​​
  1. 创建 MySQL 大盘,即可查看 MySQL 的监控指标。​
说明​
mysql-exporter 的详细参数,请参见 mysqld-exporter。​
​
最近更新时间:2026.10.23 10:37:21
这个页面对您有帮助吗?
有用
有用
无用
无用