首页 检索分析服务Elasticsearch版 Elasticsearch Serverless服务 最佳实践 基于Elasticsearch Serverless监控自建MySQL指标

基于Elasticsearch Serverless监控自建MySQL指标

当您需要查看并分析MySQL的监控数据时,可通过Prometheus采集MySQL日志并发送到阿里云Elasticsearch Serverless中,然后在控制台完成可视化查询、分析和展示。本文介绍具体的实现方法。

操作流程

  1. 步骤一:准备环境

  2. 步骤二:安装mysqld_exporter并配置MySQL

  3. 步骤三:下载、配置并启动Prometheus

  4. 步骤四:在Elasticsearch Serverless服务控制台上查看MySQL日志监控信息

步骤一:准备环境

  1. 开通阿里云Elasticsearch Serverless服务,并创建应用和指标类型的数据流。

  2. 创建阿里云ECS实例。

    具体操作,请参见自定义购买实例

  3. 安装并启动MySQL。

    如果您还未安装MySQL,可参考以下步骤进行安装:

    1. 连接ECS实例。

      具体操作请参见通过密码或密钥认证登录Linux实例

      说明

      本文档以普通用户权限为例。

    2. 下载并安装MySQL源。

      sudo wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
      sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm
      说明

      rpm命令仅支持CentOS和Alibaba Cloud Linux类型的系统。

    3. 安装MySQL。

      sudo yum install mysql-server
    4. 启动MySQL并查看服务状态。

      sudo systemctl start mysqld
      sudo systemctl status mysqld

步骤二:安装mysqld_exporter并配置MySQL

  1. 连接ECS实例。

    具体操作请参见通过密码或密钥认证登录Linux实例

    说明

    本文档以普通用户权限为例。

  2. 安装mysqld_exporter。

    1. 下载安装包。

      本示例以mysqld_exporter 1.4.0版本为例,下载命令如下。

      sudo wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.14.0/mysqld_exporter-0.14.0.linux-amd64.tar.gz
    2. 解压安装包。

      sudo tar -zxf mysqld_exporter-0.14.0.linux-amd64.tar.gz
  3. 在MySQL中添加mysqld_exporter用户并授权。

    1. 登录MySQL。

      sudo mysql -u root -p <your_password>
    2. 添加mysqld_exporter用户并授权。

      CREATE USER '<user_name>'@'localhost' IDENTIFIED BY '<user_password>';
      GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO '<user_name>'@'localhost';
      说明

      <user_name><user_password>需要您自定义输入。

  4. 在mysqld_exporter目录下创建my.cnf文件。

    1. 创建文件。

      cd mysqld_exporter-0.14.0.linux-amd64
      sudo vim my.cnf
    2. 添加内容。

      [client]
      user=<user_name>
      password=<user_password>
      host=localhost
      port=3306
      说明

      <user_name><user_password>需要与添加mysqld_exporter用户并授权步骤中设置的值保持一致。

  5. 启动mysqld_exporter。

    sudo nohup ./mysqld_exporter --config.my-cnf "./my.cnf" --web.listen-address "0.0.0.0:9104" --log.level debug > mysqld_exporter.log 2>&1 &

步骤三:下载、配置并启动Prometheus

  1. 连接ECS实例。

    具体操作请参见通过密码或密钥认证登录Linux实例

    说明

    本文档以普通用户权限为例。

  2. 在根目录下载Prometheus安装包。

    本示例以Prometheus 2.40.1版本为例,下载命令如下。

    cd ~
    sudo wget https://github.com/prometheus/prometheus/releases/download/v2.40.1/prometheus-2.40.1.linux-amd64.tar.gz
  3. 解压安装包。

    sudo tar -zxf prometheus-2.40.1.linux-amd64.tar.gz
  4. 在Prometheus目录的prometheus.yml文件中,配置mysqld_exporterremote_write

    cd prometheus-2.40.1.linux-amd64/
    sudo vim prometheus.yml

    配置示例如下。mysql配置示例

    scrape_configs:
      # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
      - job_name: 'prometheus'
    
        # metrics_path defaults to '/metrics'
        # scheme defaults to 'http'.
    
        static_configs:
        - targets: ['localhost:9090']
    
      #配置mysql_exporter
      - job_name: "mysql"
        static_configs:
        - targets: ["127.0.0.1:9104"]
    
    #配置remote_write,确保Prometheus能够访问Elasticsearch Serverless服务,即网络是通的。
    remote_write:
      - url: "https://[域名]/[应用]/[数据流]/prometheus/metrics/push"
        headers:
         X-Api-Key: <your_token>

    参数

    说明

    mysqld_exporter

    配置mysql_exporter的连接信息。targets需要配置为mysqld_exporter的访问地址:端口

    由于本示例使用同一个ECS实例部署Prometheus和mysqld_exporter,因此mysqld_exporter的访问地址使用本地访问IP地址127.0.0.1,端口使用默认的9104端口。

    remote_write

    配置Elasticsearch Serverless服务的连接信息。需要配置以下基础参数,更多高级参数请可见remote_write

    • url访问Elasticsearch Serverless服务的URL,格式为:https://[域名]/[应用名]/[数据流名]/prometheus/metrics/push。

      • [域名]:Elasticsearch Serverless服务的访问地址,不带https://和端口号,获取方式请参见查看应用的基本信息。如果安装Prometheus和node_exporter的ECS与Elasticsearch Serverless服务在同一地域下,可使用VPC访问地址或公网访问地址。如果不在同一地域下,只能使用公网访问地址。

      • [应用名]:您在步骤一:准备环境中创建的Serverless应用的名称,获取方式请参见应用管理

      • [数据流名]:您在步骤一:准备环境中创建的指标类型的数据流的名称,获取方式请参见数据流管理

    • X-Api-Key:配置访问鉴权信息。<your_token>需要替换为您在步骤一:准备环境中创建的Serverless应用的Token,获取方式请参见管理Token

  5. 启动Prometheus。

    sudo nohup ./prometheus --config.file="prometheus.yml" > node2serverless.log 2>&1 &

步骤四:在Elasticsearch Serverless服务控制台上查看MySQL日志监控信息

  1. 进入Elasticsearch Serverless服务页面。

  2. 指标监控页面,创建Grafana指标监控大盘。

    具体操作请参见指标监控

  3. 选择指标数据流、Metrics及监控时间段,查看对应时间段内的指标监控信息。

    查看MySQL监控信息
    说明

    您也可以设置查询选项以及大盘的显示样式,具体操作请参见Grafana Dashboard

阿里云首页 检索分析服务 Elasticsearch版 相关技术圈