使用prometheus监控mysql数据库性能指标

发布时间 2023-07-31 09:57:45作者: 天庭保安猪八戒

目标:需要实现mysql的性能监控,如cpu占用率,内存占用率,连接数,执行效率等等.......

如图所示:

 实现思路一:

      使用linux的top命令,定时查看mysql的cup占用率,内存占用率........,然后将得到的数据存放进入数据库,后端拿到数据库数据,前端拿到数据后,进行数据重组,结合种种图表(echars,AntV G6......)进行页面显示,十分繁琐笨拙;

实现思路二:

      使用业界现成框架进行监控,直接调用,这里使用的是Prometheus进行数据监控,grafana进行页面的数据展示;

prometheus:

      官网地址:https://prometheus.io/docs/introduction/first_steps/

                      特点:官网文档有介绍,它可以很快监控我们数据库的原因之一,就是使用的时间序列数据库进行的数据存储,并且使用http进行的数据拉取,我们使用的时候需要先在linux中安装一个探针,mysql_export,让这个探针实时探取mysql的数据,然后将数据通过端口暴露出来,prometheus再通过访问我们暴露的端口,进行数据监控;

                     使用:①探针安装,访问官网,向下滑就可以找到探针安装地址

使用命令进行下载也可以

wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.12.1/mysqld_exporter-0.12.1.darwin-amd64.tar.gz

       ②linux上安装完成后,使用命令 tar -zxvf 进行解压

                      ③创建访问用户:

                           因为需要探取mysql服务,所以就需要进行mysql登录,我们进入mysql创建一个mysql用户,专门用来探取mysql数据(这里需要专门创建用户的原因是因为,如果我们使用平时的用户,当我们用户修改密码时,我们的探取就会失败,或者查询用户操作日志十分混乱,所有有必要进行创建,如果不想创建直接使用root用户也是可以的)

CREATE USER 'mysqld_exporter'@'localhost' IDENTIFIED BY 'mysqldExporter1993' WITH MAX_USER_CONNECTIONS 3;
GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'mysqld_exporter'@'localhost'
MAX_USER_CONNECTIONS 3(这个参数是限制连接数,避免mysql压力过大)

                    ④进入解压后的 mysql_exproter 目录,创建配置文件my.cnf,进行启动配置

[client]
user=mysqld_exporter
password=mysqldExporter1993
host=localhost
port=3306

                  ⑤启动mysql_exprot

      建议:先使用第一个启动,实时查看控制台,启动完全没有问题后,再使用第二个启动

/Users/huan/soft/prometheus/mysqld_exporter/mysqld_exporter \
--config.my-cnf="/Users/huan/soft/prometheus/mysqld_exporter/my.cnf" \
--web.listen-address="0.0.0.0:9088";    (正常启动,关闭shell窗口,程序自动停止)

nohup /Users/huan/soft/prometheus/mysqld_exporter/mysqld_exporter \
--config.my-cnf="/Users/huan/soft/prometheus/mysqld_exporter/my.cnf" \
--web.listen-address="0.0.0.0:9088" \
--log.level=debug \
> logs/mysqld_exporter.out 2>&1 &            (后台启动)    

              ⑥访问端口

      访问我们进行配置的9088端口 ,注意:如果配置用户的时候权限没给够,启动控制台的时候会报错,但是你一样可以看见这网页,注意启动时查看控制台

                 

      

     ⑦安装prometheus(https://prometheus.io/download/),并tar -zxvf 解压

     ⑧启动配置接入mysql

      进入prometheus,修改prometheus.yml,将这段配置加入

scrape_configs:
  - job_name: 'mysqld-exporter'
    static_configs:
    - targets: ['localhost:9088']
      labels:
        nodename: 'mysql'

    ⑨启动prometheus ,查看监控端口,实现监控

nohup ./prometheus --config.file=/data/prometheus/prometheus.yml --web.listen-address=0.0.0.0:7778 > /data/logs/prometheus.log 2>&1 &

 grafana:

    官网:https://grafana.com/,我们使用它连接prometheus来进行数据的展示

              安装直通车:https://blog.csdn.net/wdy_2099/article/details/124211397

              使用:

                    ① 修改配置文件

           进入解压后的文件,进入conf,里面有defaults.ini,文件,就是配置文件,可以进行端口修改

                    ②登录使用

      创建一个新的dashboards,配置peometheus连接,就可以进行监控了