阿里云Prometheus监控提供一键安装和配置数据库类型、消息类型、HTTP服务器类型以及其他类型的组件,并提供开箱即用的专属监控大盘。

阿里云Prometheus监控将陆续支持其他各种类型组件的一键接入功能,如您所需的组件还未支持,请先使用手动方式安装组件、配置服务发现并创建大盘。本文以MySQL为例,演示其他阿里云Prometheus监控暂未支持的开源组件的接入操作。

Prometheus组件列表请参见Exporters and integrations

前提条件

操作流程

通过阿里云Prometheus手动监控MySQL的操作流程如下图所示。

How It Works

步骤一:部署应用

将Prometheus官方提供的mysqld-exporter镜像部署至容器服务K8s集群,以便抓取MySQL数据。操作步骤如下:

  1. 登录容器服务管理控制台
  2. 在左侧导航栏,选择集群
  3. 集群列表页面,找到目标集群,在其右侧操作列单击应用管理
  4. 创建容器组。
    1. 在左侧导航栏,选择工作负载 > 无状态
    2. 无状态页面,单击使用YAML创建资源
    3. 创建页面的模板代码框输入以下内容,然后单击创建
      说明 请将<yourMySQLUsername><yourMySQLPassword><IP><port>替换为MySQL的对应值。
      apiVersion: apps/v1 # for versions before 1.8.0 use apps/v1beta1
      kind: Deployment
      metadata:
        name: mysqld-exporter
        labels:
          app: mysqld-exporter
      spec:
        replicas: 1
        selector:
          matchLabels:
            app: mysqld-exporter
        template:
          metadata:
            labels:
              app: mysqld-exporter
          spec:
            containers:
            - name: mysqld-exporter
              imagePullPolicy: Always
              env:
                - name: DATA_SOURCE_NAME
                  value: "<yourMySQLUsername>:<yourMySQLPassword>@(<IP>:<port>)/"
              image: prom/mysqld-exporter
              ports:
              - containerPort: 9104
                name: mysqld-exporter
    无状态页面显示创建的容器组。mysqld-exporter应用
  5. 创建服务。
    1. 在左侧导航栏,选择网络 > 服务
    2. 服务页面,单击使用YAML创建资源
    3. 创建页面的模板代码框输入以下内容,然后单击创建
      apiVersion: v1
      kind: Service
      metadata:
        labels:
          app: mysqld-exporter
        name: mysqld-exporter
      spec:
        ports:
        - name: mysqld-exporter
          port: 9104
          protocol: TCP
          targetPort: 9104
        type: NodePort
        selector:
          app: mysqld-exporter
    服务页面显示创建的服务。mysqld-exporter服务

步骤二:配置服务发现

配置阿里云Prometheus监控的服务发现以接收MySQL数据的操作步骤如下:

重要 请确认:
  1. 登录ARMS控制台
  2. 在左侧导航栏选择Prometheus监控 > 实例列表,进入Prometheus监控的实例列表页面。
  3. 单击目标Prometheus实例名称,然后在左侧导航栏单击设置
  4. 设置页面,单击服务发现页签,在配置页签下,单击ServiceMonitor页签。
  5. ServiceMonitor页签下,单击添加ServiceMonitor
  6. 添加ServiceMonitor对话框中输入以下内容,然后单击确定
    apiVersion: monitoring.coreos.com/v1
    kind: ServiceMonitor
    metadata:
      #  填写一个唯一名称
      name: tomcat-demo
      #  填写目标命名空间
      namespace: default
    spec:
      endpoints:
      - interval: 30s
        #  填写service.yaml中Prometheus Exporter对应的Port的Name字段的值
        port: tomcat-monitor
        #  填写Prometheus Exporter对应的Path的值
        path: /metrics
      namespaceSelector:
        any: true
        #  Nginx Demo的命名空间
      selector:
        matchLabels:
          #  填写service.yaml的Label字段的值以定位目标service.yaml
          app: tomcat
    ServiceMonitor页签下显示配置的服务发现。mysqld-exporter-ServiceMonitor

步骤三:配置大盘

配置Grafana大盘以展示数据的操作步骤如下:

  1. 打开Grafana大盘概览页
  2. 在左侧导航栏选择+ > Import
  3. Import页面的Import via grafna.com文本框,输入Prometheus提供的MySQL大盘模板的ID7362,然后在其右侧单击Load
    Import Grafana Dashboard
  4. Import页面设置以下信息,然后单击Import
    Import Grafana Dashboard with Options
    1. Name文本框中输入自定义的大盘名称。
    2. Folder下拉列表中选择您的阿里云容器服务K8s集群。
    3. prometheus下拉列表中选择您的阿里云容器服务K8s集群。
    配置完毕后的Grafana大盘如图所示。ARMS Prometheus Grafana MySQL

步骤四:创建Prometheus监控报警

为监控指标创建告警的操作步骤如下:

  1. 登录ARMS控制台
  2. 在左侧导航栏选择Prometheus监控 > 实例列表,进入Prometheus监控的实例列表页面。
  3. 单击目标Prometheus实例名称,然后在左侧导航栏单击告警规则
  4. 单击右上角的创建Prometheus告警规则,然后根据界面指引配置相关参数,具体操作,请参见Prometheus告警规则