zoukankan      html  css  js  c++  java
  • 5.监控MySQL

    prometheus监控MySQL需要用到mysql_exporter。

    mysql_exporter 项目地址:https://github.com/prometheus/mysqld_exporter

    1、安装部署

    我这里的mysql部署在192.168.0.254之上,而prometheus服务端是在192.168.75.11上,这个时候,监控的工具mysql_exporter可以部署在这两台主机任一一台上,只不过需要注意的是,在配置prometheus.yaml添加监控目标的时候,注意填写对应ip即可。

    我这里为了方便则部署在了192.168.75.11之上。

    cd /usr/local/src
    wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.12.1/mysqld_exporter-0.12.1.linux-amd64.tar.gz
    tar -zxv -f mysqld_exporter-0.12.1.linux-amd64.tar.gz -C /usr/local/
    cd /usr/local/
    mv mysqld_exporter-0.12.1.linux-amd64/ mysqld_exporter
    

    2,授权连接。

    想要获取监控数据,需要授权程序能够连接到MySQL。

    授权了本地登陆,说明这个授权适用于mysql_exporter监控工具部署在MySQL Server上的情况

    GRANT REPLICATION CLIENT, PROCESS ON *.* TO 'exporter'@'localhost' identified by '123456';
    GRANT SELECT ON performance_schema.* TO 'exporter'@'localhost';
    flush privileges;
    

    部署在Prometheus Server上,则需要授权远程登陆,在这里直接使用192.168.0.254上MySQL的root用户和密码进行连接。

    3,启动服务。

    注意: 若是把mysqld_exporter部署在MySQL所在主机上,则需要创建.my.cnf文件,同时mysqld_exporter.service文件中指定使用该cnf文件

    注意:若是把mysqld_exporter部署在prometheus所在主机,则不需要创建.my.cnf文件,同时mysqld_exporter.service文件中也不指定使用该cnf文件,而是直接使用环境变量的方式连接其他主机上的数据库。
    在这个例子中采用的是这种办法

    创建配置信息文件,演示使用,本例中用不到这个

    cd /usr/local/mysqld_exporter
    
    vim .my.cnf
    [client]
    user=root
    password=WritenGoodCode3367;;
    

    然后启动服务时加载配置文件即可。

    1,方式一,命令行式启动。

    ./mysqld_exporter -config.my-cnf=".my.cnf" 
    ss -tulnp |grep 9104
    

    2,方式二,使用systemd管理。

    添加启动配置(mysqld_exporter部署在MySQL所在主机的配置,这里仅供演示,本例中不使用这个)

    vim /usr/lib/systemd/system/mysqld_exporter.service
    
    [Unit]
    Description=mysqld_exporter
    After=network.target
    
    [Service]
    Type=simple
    ExecStart=/usr/local/mysqld_exporter/mysqld_exporter --config.my-cnf /usr/local/mysqld_exporter/.my.cnf
    Restart=on-failure
    
    [Install]
    WantedBy=multi-user.target
    

    注意:启动加载配置/usr/local/mysqld_exporter/.my.cnf不能再加单引号或者双引号,否则系统会附带识别,从而报配置文件不存在。

    添加启动配置(mysqld_exporter部署在prometheus所在主机的配置,本例中使用这个配置)

    vim /usr/lib/systemd/system/mysqld_exporter.service
    
    [Unit]
    Description=mysqld_exporter
    After=network.target
    
    [Service]
    Type=simple
    Environment=DATA_SOURCE_NAME=root:WritenGoodCode3367;;@(192.168.0.254:3306)/
    ExecStart=/usr/local/mysqld_exporter/mysqld_exporter
    Restart=on-failure
    
    [Install]
    WantedBy=multi-user.target
    

    Environment=DATA_SOURCE_NAME=root:WritenGoodCode3367;;@(192.168.0.254:3306)/
    设置 DATA_SOURCE_NAME 变量,包含数据库信息:用户名:密码@(mysql地址:mysql端口)/,最后的/不能省略

    加载配置并启动。

    systemctl daemon-reload
    systemctl start mysqld_exporter
    systemctl status mysqld_exporter
    systemctl enable mysqld_exporter
    ss -tulnp | grep 9104
    

    4,配置 prometheus.yml 添加监控目标

    vim /usr/local/prometheus/prometheus.yml 
      - job_name: 'mysql'
        static_configs:
          - targets: ['localhost:9104']
            labels:
              instance: db1
    

    重启服务。

    systemctl restart prometheus
    

    或者通过命令热加载:

    curl  -XPOST localhost:9090/-/reload
    

    5,配置 Grafana 的模板

    mysql_exporter 在 Grafana 上为我们提供好了 Dashboard 模板:https://grafana.com/grafana/dashboards/7362

    下载后在 Grafana 中导入 json 模板就可以看到官方这样的示例截图啦:

  • 相关阅读:
    ES6之Promise对象学习——8个例子学会Promise
    typescript学习笔记
    Git入门篇
    Babel的配置和使用
    用css写三角形,宽高可设置
    typescript语法入门
    css之BFC(block formmatting context)[格式化上下文]
    删除node_modul模块
    继承
    [ES6]ES6语法中的class、extends与super的原理
  • 原文地址:https://www.cnblogs.com/sanduzxcvbnm/p/13094580.html
Copyright © 2011-2022 走看看