暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

用Prometheus全面监控MySQL服务:一篇文章搞定

简介

在现代应用中,MySQL数据库的性能和稳定性对业务至关重要。有效的监控可以帮助预防问题并优化性能。Prometheus作为一款强大的开源监控系统,结合Grafana的可视化能力,可以提供全面的MySQL监控方案。

设置Prometheus

安装Prometheus

使用Docker安装Prometheus:

    docker run -d --name=prometheus -p 9090:9090 prom/prometheus

    此命令将Prometheus运行在本地的9090端口。

    基本配置

    创建一个Prometheus配置文件prometheus.yml
    :

      global:
      scrape_interval: 15s
      scrape_configs:
      - job_name: 'prometheus'
      static_configs:
      - targets: ['localhost:9090']

      上面是官网提供的docker命令安装方案,官方直达链接[1],笔者是在Windows的docker中安装运行演示的,下面简单记录一下Windows安装的步骤细节

      在指定路径下添加一下普罗米修斯的配置文件


      在这里插入图片描述


      文件的详细信息展示

        # my global config
        global:
        scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
        evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
        # scrape_timeout is set to the global default (10s).


        # Alertmanager configuration
        alerting:
        alertmanagers:
        - static_configs:
        - targets:
        # - alertmanager:9093


        # Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
        rule_files:
        # - "first_rules.yml"
        # - "second_rules.yml"


        # A scrape configuration containing exactly one endpoint to scrape:
        # Here it's Prometheus itself.
        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: ["127.0.0.1:9090"]
        - job_name: "mysql"


        # metrics_path defaults to '/metrics'
        # scheme defaults to 'http'.
        # 这里做一个说明就是后续的两个服务本地都是直接通过docker的方式运行在容器中,由于docker容器网络配置的原因,即使在安装部署在同一个网络空间之下,同时给网路空间起不同的名称作为区分也不能实现浏览器的ip访问,因此下面这里使用网络ip的方式进行标记
        static_configs:
        - targets: ["192.168.28.3:9104"]

        执行Windows的docker命令运行服务

        这里需要注意一下就是地址配置的问题,需要配置成自己的文件地址

          docker run -d -p 9090:9090 --network my-mysql-network -v "D:\Program_Files\prometheus\prometheus.yml:/etc/prometheus/prometheus.yml" prom/prometheus --config.file=/etc/prometheus/prometheus.yml


          在这里插入图片描述
          在这里插入图片描述


          访问网址得到的页面展示信息

          在这里插入图片描述


          安装MySQL Exporter

          MySQL Exporter是什么

          MySQL Exporter是一个用于从MySQL数据库中收集指标并暴露给Prometheus的工具。

          安装步骤

          使用Docker安装MySQL Exporter:

            docker run -d -p 9104:9104 --name=mysql_exporter -e DATA_SOURCE_NAME="user:password@(hostname:3306)/" prom/mysqld-exporter

            替换user
            password
            为MySQL数据库的用户名和密码,hostname
            为MySQL服务器地址。

            配置MySQL Exporter

            创建MySQL用户

            在MySQL中创建一个专用用户:

              CREATE USER 'exporter'@'localhost' IDENTIFIED BY 'password';
              GRANT PROCESS, REPLICATION CLIENT ON *.* TO 'exporter'@'localhost';

              将MySQL Exporter与Prometheus集成

              prometheus.yml
              中添加MySQL Exporter:

                scrape_configs:
                - job_name: 'mysql'
                static_configs:
                - targets: ['localhost:9104']

                Prometheus配置

                添加MySQL Exporter

                在Prometheus配置文件prometheus.yml
                中增加MySQL Exporter的配置,确保Prometheus能够抓取MySQL Exporter暴露的指标。

                抓取指标

                启动Prometheus后,可以在http://localhost:9090
                上访问Prometheus UI,检查抓取的MySQL指标。

                Windows安装的步骤演示 官网直达链接[2]

                添加配置信息


                在这里插入图片描述


                  [client]
                  user = root
                  password = shuyixiao666
                  host = 192.168.28.3
                  port = 3306

                  执行命令运行MySQL Exporter服务

                    docker run -d -p 9104:9104 --network my-mysql-network -v "D:\Program_Files\mysqld_exporter-0.15.1.windows-amd64\my.cnf:/etc/my.cnf" prom/mysqld-exporter --config.my-cnf=/etc/my.cnf


                    在这里插入图片描述
                    在这里插入图片描述


                    使用Grafana可视化指标

                    安装Grafana

                    使用Docker安装Grafana:

                      docker run -d -p 3000:3000 --name=grafana grafana/grafana

                      导入仪表盘

                      在Grafana中添加Prometheus数据源,然后从Grafana官网导入MySQL监控仪表盘(ID:7362)。

                      Windows安装的步骤演示 官网直达链接[3]

                      指定docker指令启动服务

                        docker run -d -p 3000:3000 --network my-mysql-network --name=grafana grafana/grafana-enterprise

                        初始化的账号和密码都是admin,首次登录之后会提示你修改你的密码

                        在这里插入图片描述


                        仪表板的简单配置

                        添加一个普罗米修斯的应用


                        在这里插入图片描述


                        配置之前的MySQL Exporter服务信息


                        在这里插入图片描述


                        保存之后配置仪表板信息


                        在这里插入图片描述

                        仪表板链接选择直达地址[4] 在这里选择你需要的或者你喜欢的仪表板信息,需要注意的是这里要选择普罗米修斯的数据源,不然后面的数据库选择会对应不上

                        在这里插入图片描述
                        在这里插入图片描述


                        最后成品的展示


                        在这里插入图片描述


                        注意事项

                        1.上述执行的命令当初我尝试是在同一个网络组之下运行,如果你也想尝试一定要先建立好网络组不然会报错,不知道如何配置的可以看我另外一篇文章 直达链接[5]

                        本文内链接

                        [1]
                         官方直达链接: https://github.com/prometheus/prometheus
                        [2]
                         官网直达链接: https://github.com/prometheus/mysqld_exporter
                        [3]
                         官网直达链接: https://grafana.com/docs/grafana/latest/setup-grafana/installation/docker/
                        [4]
                         仪表板链接选择直达地址: https://grafana.com/grafana/dashboards/?search=mysql
                        [5]
                         直达链接: https://blog.csdn.net/weixin_50503886/article/details/139205836?spm=1001.2014.3001.5501


                        文章转载自舒一笑的架构笔记,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                        评论