• 利用Zabbix部署一个简易的MySQL监控系统


    • GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。
    • GreatSQL是MySQL的国产分支版本,使用上与MySQL一致。

    [toc]

    一、Zabbix部署

    1.配置Zabbix源

    # 1.下载rpm包
    rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
    sed -i "s#http://repo.zabbix.com/#https://mirror.tuna.tsinghua.edu.cn/zabbix/#g" /etc/yum.repos.d/zabbix.repo
    
    # 2.启用Zabbix前端仓库
    sed -i "s/gpgcheck=1/gpgcheck=0/g" /etc/yum.repos.d/zabbix.repo
    sed -i "s/enabled=0/enabled=1/g" /etc/yum.repos.d/zabbix.repo
    
    # 3.清理源yum信息
    yum clean all
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    2.安装 Zabbix server 和 agent

    yum -y install zabbix-server-mysql zabbix-agent

      3.启用 Red Hat软件集合

      SCL(Software Collections)可以让你在同一个操作系统上安装和使用多个版本的软件,而不会影响整个系统的安装包。

      yum -y install centos-release-scl

        4.安装Zabbix前端软件包

        通常我们会安装的独立的Nginx和Php,这里演示方便就直接安装了

        yum -y install zabbix-web-mysql-scl zabbix-nginx-conf-scl

          5.安装MySQL用来存储Zabbix的元数据信息

          安装MySQL步骤跳过,非本文重点。

          6.数据库赋权

          create database zabbix charset utf8 collate utf8_bin; 
          create user zabbix@'127.0.0.1' identified by 'zabbix';
          grant all on zabbix.* to zabbix@'127.0.0.1';
          ALTER USER 'zabbix'@'127.0.0.1' IDENTIFIED WITH mysql_native_password BY 'zabbix';
          flush privileges;
          • 1
          • 2
          • 3
          • 4

          7.导入Zabbix元数据SQL

          zcat /usr/share/doc/zabbix-server-mysql-5.0.24/create.sql.gz|mysql -uroot -p -S /data/GreatSQL/3306/mysql.sock zabbix
          
          • 1

          8.服务端配置连接zabbix数据库

          [root@localhost]# cat /etc/zabbix/zabbix_server.conf|grep -v '#'|grep -v '^$'
          LogFile=/var/log/zabbix/zabbix_server.log
          LogFileSize=0
          PidFile=/var/run/zabbix/zabbix_server.pid
          SocketDir=/var/run/zabbix
          DBName=zabbix
          DBUser=zabbix
          DBPassword=zabbix
          DBHost=127.0.0.1
          SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
          Timeout=4
          AlertScriptsPath=/usr/lib/zabbix/alertscripts
          ExternalScripts=/usr/lib/zabbix/externalscripts
          LogSlowQueries=3000
          StatsAllowedIP=127.0.0.1
          • 1
          • 2
          • 3
          • 4
          • 5
          • 6
          • 7
          • 8
          • 9
          • 10
          • 11
          • 12
          • 13
          • 14

          9、配置Nignx 配置后把域名绑定到hosts文件中

          [root@localhost]# more /etc/opt/rh/rh-nginx116/nginx/conf.d/zabbix.conf
          server {
                  listen      80;
                  server_name     greatsql.zabbix.com;  # 自定义域名
                  root    /usr/share/zabbix;
          • 1
          • 2
          • 3
          • 4

          10、配置Php

          [root@localhost]# cat /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
          listen.acl_users = apache,nginx           # 加个nginx白名单
          php_value[date.timezone] = Asia/Shanghai  # 时区改成上海
          • 1
          • 2

          11、启动服务并设置开机启动

          systemctl start zabbix-server
          systemctl start rh-nginx116-nginx.service 
          systemctl start rh-php72-php-fpm.service 
          systemctl enable zabbix-server
          systemctl enable rh-nginx116-nginx.service 
          systemctl enable rh-php72-php-fpm.service 
          • 1
          • 2
          • 3
          • 4
          • 5

          二、浏览器安装Zabbix

          1.访问WEB地址

          先绑定下host,步骤略,然后浏览器访问地址。

          http://greatsql.zabbix.com/setup.php

          file

          2.确认所有条件都OK,点击Next step

          file

          3.填写账户密码等信息,点击Next step

          file

          4.再执行Next step

          file

          5.执行Next step

          file

          6.确认安装完成

          file

          7.登陆主页,默认账户密码:Admin/zabbix

          http://greatsql.zabbix.com/index.php

          file

          8.主页信息

          file

          三、Zabbix Agent 安装

          1、配置Zabbix yum地址

          # 1.下载rpm包
          rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
          sed -i "s#http://repo.zabbix.com/#https://mirror.tuna.tsinghua.edu.cn/zabbix/#g" /etc/yum.repos.d/zabbix.repo
          
          # 2.启用Zabbix前端仓库
          sed -i "s/gpgcheck=1/gpgcheck=0/g" /etc/yum.repos.d/zabbix.repo
          sed -i "s/enabled=0/enabled=1/g" /etc/yum.repos.d/zabbix.repo
          
          # 3.清理源yum信息
          yum clean all
          • 1
          • 2
          • 3
          • 4
          • 5
          • 6
          • 7
          • 8
          • 9

          2、安装zabbix-agent

          yum install zabbix-agent -y

            3、配置Zabbix Server地址

            [root@localhost zabbix]# cat /etc/zabbix/zabbix_agentd.conf|grep -v '#'|grep -v '^$'
            PidFile=/var/run/zabbix/zabbix_agentd.pid
            LogFile=/var/log/zabbix/zabbix_agentd.log
            LogFileSize=0
            Server=192.168.6.221         # Zabbix服务端地址
            ServerActive=127.0.0.1
            Hostname=Zabbix server
            Include=/etc/zabbix/zabbix_agentd.d/*.conf
            
            • 1
            • 2
            • 3
            • 4
            • 5
            • 6
            • 7
            • 8

            4、启动zabbix-agent

            systemctl start zabbix-agent
            systemctl enable zabbix-agent
            • 1

            四、配置MySQL监控

            4.1 配置 Host groups

            左侧下拉菜单栏 Configuration -> Host groups

            file

            右上角 Create host group

            file

            输入名称 MySQL Monitor 点击 Add,完成

            file

            4.2 配置 Templates

            1、菜单栏点击 Templates

            file

            2、右上角点击 Create template

            file

            3、填写模板名称和组,Groups就是上一个步骤创建的MySQL Monitor

            file

            4、选择链接的模板,链接了2个模板、分别是系统监控和MySQL服务监控

            file

            5、配置完成后,如果是首次配置则点击Add。否则就是Update。

            4.3 配置 hosts

            1、左侧菜单栏点击 hosts

            file

            2、右侧点击 Create host

            file

            3、配置Host内容

            file

            4、配置 Templates 内容,选择上个步骤创建的自定义MySQL Monitor Template

            file

            5、配置完成后,点击Add

            4.4 配置后最终效果

            file

            以上就配置完成一台受监控的数据库服务器。

            五、查看监控数据

            点击左边菜单页Monitorning -> Latest data 可以看到 MySQL-01 系统以及MySQL相关的监控项汇总信息。

            file

            点击其中一个监控项Graph,可以看到历史监控绘图数据。

            file

            由于zabbix_agentd没有收集MySQL的信息,所以我们要结合监控模板自定义编写监控脚本进行数据收集。

            1、查看模板配置要求

            打开相关模板,查看描述

            file

            Requirements for template operation:
            1.Install Zabbix agent and MySQL client.
            2.Copy Template_DB_MySQL.conf into folder with Zabbix agent configuration (/etc/zabbix/zabbix_agentd.d/ by default). Don't forget restart zabbix-agent. 
            3.Create MySQL user for monitoring. For example:
            CREATE USER 'zbx_monitor'@'%' IDENTIFIED BY '';
            GRANT USAGE,REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW ON *.* TO 'zbx_monitor'@'%';
            For more information read the MYSQL documentation https://dev.mysql.com/doc/refman/8.0/en/grant.html , please. 
            4.Create .my.cnf in home directory of Zabbix agent for Linux (/var/lib/zabbix by default ) or my.cnf in c:\ for Windows. For example:
            [client]
            user=zbx_monitor
            password=
            • 1
            • 2
            • 3
            • 4
            • 5
            • 6
            • 7
            • 8
            • 9
            • 10

            按步骤满足相关要求。

            1、安装 Zabbix agent and MySQL client.

            2、复制监控采集模板,服务器并没有Template_DB_MySQL.conf文件,我们自定义一个文件,如下:

            [root@localhost ~]# cat /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf
            UserParameter=mysql.uptime[*], HOME=/etc/zabbix mysqladmin -h"$1" -P"$2" ping
            UserParameter=mysql.ping[*], HOME=/etc/zabbix mysqladmin -h"$1" -P"$2" ping
            UserParameter=mysql.get_status_variables[*], HOME=/etc/zabbix mysql -h"$1" -P"$2" -sNX -e "show global status"
            UserParameter=mysql.version[*], HOME=/etc/zabbix mysqladmin -s -h"$1" -P"$2" version
            UserParameter=mysql.db.discovery[*], HOME=/etc/zabbix mysql -h"$1" -P"$2" -sN -e "show databases"
            UserParameter=mysql.dbsize[*], HOME=/etc/zabbix mysql -h"$1" -P"$2" -sN -e "SELECT SUM(DATA_LENGTH + INDEX_LENGTH) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='$3'"
            UserParameter=mysql.replication.discovery[*], HOME=/etc/zabbix mysql -h"$1" -P"$2" -sNX -e "show slave status"
            UserParameter=mysql.slave_status[*], HOME=/etc/zabbix mysql -h"$1" -P"$2" -sNX -e "show slave status"
            • 1
            • 2
            • 3
            • 4
            • 5
            • 6
            • 7
            • 8

            3、数据库采集权限开通

            CREATE USER 'zbx_monitor'@'%' IDENTIFIED BY '123456';
            GRANT USAGE,REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW ON *.* TO 'zbx_monitor'@'%';
            flush privileges;
            • 1
            • 2

            4、创建监控采集的账户信息

            root@localhost ~]# cat /etc/zabbix/.my.cnf
            [mysql]
            user=zbx_monitor
            password=123456
            [mysqladmin]
            user=zbx_monitor
            password=123456
            • 1
            • 2
            • 3
            • 4
            • 5
            • 6

            以上按要求配置完成后,重启进程。

            [root@mgr1 ~]# systemctl restart zabbix-agent

              再次查看就有MySQL监控数据了。

              file

              Enjoy GreatSQL :)


              Enjoy GreatSQL :)

              文章推荐:

              面向金融级应用的GreatSQL正式开源

              Changes in GreatSQL 8.0.25 (2021-8-18)

              MGR及GreatSQL资源汇总

              GreatSQL MGR FAQ

              在Linux下源码编译安装GreatSQL/MySQL

              关于 GreatSQL

              GreatSQL是由万里数据库维护的MySQL分支,专注于提升MGR可靠性及性能,支持InnoDB并行查询特性,是适用于金融级应用的MySQL分支版本。

              Gitee: https://gitee.com/GreatSQL/GreatSQL

              GitHub: https://github.com/GreatSQL/GreatSQL

              Bilibili: https://space.bilibili.com/1363850082/favlist

              微信&QQ群:

              QQ群:533341697

              微信群:可搜索添加GreatSQL社区助手微信好友,发送验证信息“加群”加入GreatSQL/MGR交流微信群

              GreatSQL社区助手:wanlidbc

            • 相关阅读:
              Java List 中存不同的数据类型
              机器学习——特征工程和评价指标
              【C++】模板初阶
              使用数字孪生实现电池管理系统 (BMS) 测试自动化
              Vue-(6)
              点集合的三角剖分
              (附源码)springboot宠物管理系统 毕业设计 121654
              LaneNet 论文阅读
              借助适用于 Android 的 Material 运动效果构建精美的过渡
              记一次任意文件下载到Getshell
            • 原文地址:https://blog.csdn.net/GreatSQL2021/article/details/126206974