基于Prometheus+Grafana搭建MySQL数据库可视化监控


在Centos7上基于Prometheus(普罗米修斯)和Grafana搭建MySQL数据库可视化监控,通过Prometheus对MySQL数据库信息的监控,使用Grafana对监控的数据进行界面化展示。

下载安装包

prometheus的官网 上去下载如下3个prometheus监控相关的安装包:

  • prometheus-2.26.0.linux-amd64.tar.gz:用来部署监控系统自己;
  • node_exporter-1.1.2.linux-amd64.tar.gz:用来采集MySQL数据库所在机器的CPU、内存、网络、磁盘之类的监控数据;
  • mysqld_exporter-0.12.1.linux-amd64.tar.gz:用来采集MySQL数据库自己的一些监控数据的,比如SQL性能、连接数量之类的;

安装prometheus

使用如下命令解压(注意下面的示例是在一台机器上做的实验;MySQL直接安装即可这里不在做过多说明)

mkdir -p /home/app/prometheus/exporter
tar xvfz prometheus-2.26.0.linux-amd64.tar.gz -C /home/app/prometheus/
tar xvfz node_exporter-1.1.2.linux-amd64.tar.gz -C /home/app/prometheus/exporter/
tar xvfz mysqld_exporter-0.12.1.linux-amd64.tar.gz -C /home/app/prometheus/exporter/

配置prometheus的信息

cd /home/app/prometheus/prometheus-2.26.0.linux-amd64
vi prometheus.yml

在里面添加如下配置

scrape_configs:
  - job_name: prometheus
    static_configs:
      - targets: [ 'localhost:9090' ]
  - file_sd_configs:
      - files:
          - host.yml
    job_name: Host
    metrics_path: /metrics
    # 对信息进行过滤
    relabel_configs:
      - source_labels: [__address__]
        regex: (.*)
        target_label: instance
        replacement: $1
      - source_labels: [__address__]
        regex: (.*)
        target_label: __address__
        replacement: $1:9100
  - file_sd_configs:
      - files:
          - mysql.yml
    job_name: MySQL
    metrics_path: /metrics
    # 对信息进行过滤
    relabel_configs:
      - source_labels: [__address__]
        regex: (.*)
        target_label: instance
        replacement: $1
      - source_labels: [__address__]
        regex: (.*)
        target_label: __address__
        replacement: $1:9104

启动服务

# 
./prometheus --storage.tsdb.retention=30d

命令中的30d表示监控数据保留30天的。如果要后台运行可以在命令后面在加个 & 符号

成功后即可在浏览器中访问9090端口号查看prometheus的主页信息。

安装node_exporter监控机器的信息

在MySQL那台机器上安装动node_exporter;它会自动采集这台linux机器上的CPU、磁盘、内存、网络之类的各种监控数据。

cd /home/app/prometheus/exporter/node_exporter-1.1.2.linux-amd64
nohup ./node_exporter &

然后在prometheus的安装目录下配置监控信息

cd /home/app/prometheus/prometheus-2.26.0.linux-amd64
vi host.yml

在里面添加如下信息

- targets:
    - '192.168.56.102'
  labels:
    service: demo

prometheus会自动监控这个文件的变化

安装mysqld_exporter监控MySQL数据库

在MySQL那台机器上安装动mysqld_exporter;它会自动采集MySQL的信息。

cd /home/app/prometheus/exporter/mysqld_exporter-0.12.1.linux-amd64
# 配置MySQL的账号和密码
export DATA_SOURCE_NAME='root:123456@(192.168.56.102:3306)/'
echo "export DATA_SOURCE_NAME='root:123456@(192.168.56.102:3306)/'" >> /etc/profile

然后启动该服务

nohup ./mysqld_exporter --collect.info_schema.processlist --collect.info_schema.innodb_tablespaces --collect.info_schema.innodb_metrics --collect.perf_schema.tableiowaits --collect.perf_schema.indexiowaits --collect.perf_schema.tablelocks --collect.engine_innodb_status --collect.perf_schema.file_events --collect.binlog_size --collect.info_schema.clientstats --collect.perf_schema.eventswaits &

更多参数参考:https://github.com/prometheus/mysqld_exporter;
注意MySQL8.0不支持 –collect.info_schema.innodb_tablespaces这个参数,可以如果是MySQL8.0的话可以去掉这个监控指标。

然后在prometheus的安装目录下配置监控信息

cd /home/app/prometheus/prometheus-2.26.0.linux-amd64
vi mysql.yml

在里面添加如下信息

- targets:
    - '192.168.56.102'
  labels:
    service: mysql_demo

安装grafana

grafana官网 查看对应系统的安装方式。下面是centos7上的安装命令:

更新详细的文档地址:https://grafana.com/docs/grafana/latest/

wget https://dl.grafana.com/oss/release/grafana-7.5.3-1.x86_64.rpm
yum install -y grafana-7.5.3-1.x86_64.rpm

安装完成后直接启动即可,下面是相关的命令

# 启动
systemctl start grafana-server
# 状态
systemctl status grafana-server
# 停止
systemctl stop grafana-server

启动成功后可以通过浏览器访问3000端口http://192.168.56.102:3000 ;默认的端口是3000;初始登陆用户和密码都是admin。

然后在Grafana左侧菜单栏里有一个Data Sources,点击里面的一个按钮是Add data source 添加一个数据源。我们直接选择 prometheus即可,配置先前部署的prometheus的地址,其他的保持默认即可。

关于grafana的仪表盘问题

我们可以自己根据需要定制,但是官方一个仪表盘的市场(有其他人定制好的配置),我们可以直接到上面去找合适的直接使用即可。仪表盘地址:https://grafana.com/grafana/dashboards;选择符合自己要求的导入即可。

  • CPU、内存、磁盘监控:8919
  • MySQL监控:11323

特别提醒:扫码关注微信订阅号'起岸星辰',实时掌握IT业界技术资讯! 转载请保留原文中的链接!
 上一篇
数据库压测工具SysBench 数据库压测工具SysBench
SysBench是一个对数据库进行压力测试的工具,它可以模拟几千个线程并发的访问数据库,包括进行各种事务提交等到数据中实现更全面的测试;实现对数据库的TPS、QPS等信息的基本了解。
2021-04-12
下一篇 
2021年4月资讯(二) 2021年4月资讯(二)
2021年4月热门资讯:IntelliJ IDEA 2021.1 发布;抖音也能点餐了,抖音外卖在路上;4月数据库流行度排行榜:三巨头分数暴跌;OpenBSD 添加对协调火星时 (MTC) 的支持;伪造的jQuery Migrate插件生成恶意文件感染 WordPress网站
2021-04-09
  目录