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

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

时间:2023-07-31 10:14:11浏览次数:39  
标签:exporter -- 使用 prometheus mysqld mysql 性能指标

目标:需要实现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连接,就可以进行监控了

标签:exporter,--,使用,prometheus,mysqld,mysql,性能指标
From: https://www.cnblogs.com/zhangzheshuai/p/17592630.html

相关文章

  • 为什么不建议在 Docker 中跑 MySQL
    容器的定义:容器是为了解决“在切换运行环境时,如何保证软件能够正常运行”这一问题。目前,容器和Docker依旧是技术领域最热门的词语,无状态的服务容器化已经是大势所趋,同时也带来了一个热点问题被大家所争论不以:数据库MySQL是否需要容器化?认真分析大家的各种观点,发现赞同者仅仅是......
  • 园子的商业化努力-阿里云开发者社区合作:RDS MySQL Serverless 免费试用活动
    阿里云开发者社区这个月组织了一个针对“云数据库RDSMySQLServerless版”免费试用用户的做任务活动,上周找园子合作,希望能在园子里推广一下这个活动。由于时间太紧,今天已经是活动的最后一天,为了做好推广效果,在首页发布这篇推广博文,请大家谅解。和阿里云开发者社区的合作之前......
  • MySQl的基础
    1.MySQl简介MySQl是一个关系型数据库关系型数据库是以表的形式存储和管理数据的关系型数据库的优点,关系明确、支持事务处理和数据的完整性2.MySQl操作MySQl的库可以看作是一个文件夹MySQl的表可以看作是一个文件MySQl的数据可以看作是文件内容2.1库操作......
  • 12-MySQL数据库的触发器
    12-MySQL数据库的触发器课程目标了解触发器简介。掌握MySQL触发器的创建和使用以及删除。12.1触发器简介触发器是一个被指定关联到一个表的数据库对象,当对一个表的特定事件(例如增、删、改、查表中记录)出现时,它将会被激活。触发器具有MySQL语句在需要时才被执行的特点,即某条(或某......
  • 11-MySQL数据库的存储过程
    11-MySQL数据库的存储过程课程目标了解存储过程简介、关于MySQL的存储过程。掌握MySQL存储过程的创建、调用、查询、修改、删除、控制语句、基本函数。11.1存储过程简介我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(StoredProcedure)是一组为了完......
  • Mysql添加用户并授权
     添加新用户test,设置任意ip登录,密码:qwe123>CREATEUSER'test'@'%'IDENTIFIEDBY'qwe123';授权test账户select,insert操作权限至数据库order全部数据表>GRANTselect,insertONorder.*TO'test'@'%';执行后刷新权限才能生效> FLUSHPRIVILEGE......
  • Mysql数据库常用操作命令
    //创建数据库>create databasedatabase_name;eg;createdatabasesorder;>useorder;//选择数据库>showtables;//显示数据库order创建的所有数据表>dropdatabaseorder;//删除数据库order,删除数据库后,数据表中的数据会全部被删除,所以删除前一定要做好数据......
  • mysql 简单进阶 ———— 重构查询[二]
    前言简单整理一下重构查询。正文为什么我们需要重构查询,原因也很简单,那就是查询慢。为什么会查询慢?查询性能慢底下的最基本的原因是访问的数据太多。某些查询不可避免地需要筛选大量的数据,但这并不常见。大部分性能低下的查询都可以通过减少访问的数据流的方式进行优化。......
  • MySQL使用binlog恢复数据
    1.什么是BinlogMySQL的二进制日志(Binlog)是一种事务日志,用于记录对数据库的更改操作。Binlog主要用于MySQL复制和恢复:复制:从库通过拉取主库的binlog实现主从数据一致恢复:通过重放binlog恢复数据丢失或误操作情况1.1.Binlog的工作原理在MySQL中,每个事务都会在提交后......
  • 通过Redis+Mysql来自定义Spring-Statemachine的持久化
    我们在使用Spring状态机的时候,往往需要对于StateMachine持久化操作,但是官方为我们提供的基于redis的持久化并不是特别好,一方面是因为只存redis容易导致数据丢失,另一方面因为状态机的特性需要对应的StateMachine的数据永久有效,导致redis中的key永不过期。我现在希望实现将StateMac......