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

单个mysqld_exporter监控多个MySQL实例

145

之前写过一篇通过Prometheus监控MySQL的文章(点击跳转),但是只适用每个实例启动一个单独的mysqld_exporter,架构如下图,会比较麻烦。


这篇文章,来介绍一下另外一种更实用的方式:多个MySQL实例共用一个mysqld_exporter,架构如下:

1 实验环境介绍

机器作用

IP

被监控的MySQL实例1

192.168.12.111

被监控的MySQL实例2

192.168.12.112

部署mysqld_exporter的机器

192.168.12.201

部署Prometheus的机器

192.168.12.202

机器都是CentOS 7,MySQL是8.0.25。


2 创建监控用户

在所有被监控的MySQL实例中创建用户,host是mysqld_exporter所在的机器IP:

    create user 'exporter'@'192.168.12.201' IDENTIFIED WITH mysql_native_password BY 'xxx' ; 
    GRANT SELECT, RELOAD, PROCESS, SUPER, REPLICATION CLIENT ON *.* TO 'exporter'@'192.168.12.201';
    复制

    3 启动mysqld_exporter

    在192.168.12.201中操作。

    下载mysqld_exporter

      wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.15.1/mysqld_exporter-0.15.1.linux-amd64.tar.gz
      复制

      解压:

        tar zxvf mysqld_exporter-0.15.1.linux-amd64.tar.gz -C usr/local/
        mv usr/local/mysqld_exporter-0.15.1.linux-amd64 usr/local/mysqld_exporter
        复制

        编辑配置文件

          vim /usr/local/mysqld_exporter/mysqld_exporter.cnf
          复制

          加入如下内容:

            [client]
            user=exporter
            password=xxx
            复制

            将mysqld_exporter添加成系统服务

              vim /etc/systemd/system/mysqld_exporter.service
              复制

              加入

                [Unit]
                Description=Prometheus
                After=network-online.target




                [Service]
                User=prometheus
                Restart=on-failure
                ExecStart=/usr/local/mysqld_exporter/mysqld_exporter --config.my-cnf=/usr/local/mysqld_exporter/mysqld_exporter.cnf




                [Install]
                WantedBy=multi-user.target
                复制


                在机器上新建prometheus用户,并修改mysqld_exporter属主为prometheus:

                  useradd prometheus
                  chown -R prometheus.prometheus usr/local/mysqld_exporter/
                  复制

                  重新加载系统服务的配置文件

                    systemctl daemon-reload
                    复制

                    启动mysqld_exporter

                      systemctl start mysqld_exporter
                      复制

                      4 配置并启动Prometheus

                      在192.168.12.202中操作。

                      Prometheus安装参考之前的文章

                      修改配置文件prometheus.yml,加入新job的配置:

                          - job_name: mysql
                        params:
                        auth_module: [client.servers]
                        file_sd_configs:
                        - files: ["/usr/local/prometheus/conf.d/mysql.json"]
                        refresh_interval: 15s




                        relabel_configs:
                        - source_labels: [__address__]
                        target_label: __param_target
                        - source_labels: [__param_target]
                        target_label: instance
                        - target_label: __address__
                        # The mysqld_exporter host:port
                        replacement: 192.168.12.201:9104
                        复制

                        注意

                        replacement这里填的是mysqld_exporter的IP和端口。


                        编辑MySQL的元数据文件

                          vim usr/local/prometheus/conf.d/mysql.json
                          复制


                          加入:

                            [
                            {
                            "targets": [
                            "192.168.12.111:3306"
                            ],
                            "labels": {
                            "project": "dba-test",
                            "hostname": "sh-db-mysql-dbatest01"
                            }
                            },
                            {
                            "targets": [
                            "192.168.12.112:3306"
                            ],
                            "labels": {
                            "project": "dba-test",
                            "hostname": "sh-db-mysql-dbatest02"
                            }
                            }
                            ]
                            复制

                            后续配置Grafana、告警等,请参考之前的文章:MySQL 监控 第01期:Prometheus+Grafana 监控 MySQL


                            5 扩展

                            如果想实现企业微信告警,以及Redis、MongoDB、ClickHouse、ES的监控。

                            欢迎订购小编的DBA体系课(点击跳转目录),上个月已经更新完成。

                            目前知道的,已经有4位同学学完课程跳槽成功的:

                            同学A,成都本地跳槽成功,之前大数据运维,新的岗位大数据运维+DBA;

                            同学B,成都跳到北京,前后都是运维岗;

                            同学C,成都乙方DBA跳槽甲方DBA;

                            同学D,深圳小厂跳槽到深圳某二线大厂DBA。

                            最近新的活动又开始了,使用优惠码(IGA954AU)可减410,到手价1589,活动9月27日结束。

                            详情咨询可加我微信:mating3306

                            购买地址:

                            https://class.imooc.com/sale/dba


                            课程里有详细介绍一些监控细节,对应的章节分别如下:

                            第19周   DBA企业级实战(上)

                            视频:1-7 通过Prometheus监控Linux机器(23:54)

                            视频:1-8 配置Linux机器异常企业微信告警(一)(16:14)

                            视频:1-9 配置Linux机器异常企业微信告警(二)(18:44)

                            视频:1-10 配置MySQL监控和告警(22:17)

                            视频:1-11 配置Redis监控和告警(14:03)

                            视频:1-12 配置MongoDB监控和告警(17:40)

                            第23周 ClickHouse基础及运维

                            视频:1-9 ClickHouse监控(10:32)

                            第24周 Elasticsearch基础及运维

                            视频:1-5 ElasticSearch的监控(10:49)

                            第8周   上云后DBA的工作内容

                            视频:1-6 云上监控告警方式的变化(07:17)




                            关注公众号

                            复“复制”,可以获取小编编写的69页MySQL主复制PDF;

                            回复“DBA面试题”,可获取36个DBA高频面试题及解析;

                            回复“社群”,可加入MySQL交流群。


                            点击左下方阅读原文,跳转到课程。

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

                            评论