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

MySQL 监控 第03期:Zabbix 监控 MySQL

悦专栏 2021-04-07
4980

作者简介
马听,多年 DBA 实战经验,对 MySQL、 Redis、ClickHouse 等数据库有一定了解,专栏《一线数据库工程师带你深入理解 MySQL》、《Redis 运维实战》作者。


朋友们,你们是否好奇目前 MySQL 主流的监控方案是什么?“悦专栏”趁这次写监控专题的机会,在文末增加了 MySQL 监控方案的投票,欢迎各位朋友参与。

这是《MySQL 监控》系列文章的第 3 节,之前我们讲解了“Prometheus+Grafana 监控 MySQL”和“PMM 监控 MySQL”,这一节内容来聊聊 Zabbix 的部署以及配置 Zabbix 监控 MySQL。目前《MySQL 监控》系列文章在公众号“悦专栏”中持续更新,欢迎关注。

1 架构图

如上图,通过 Zabbix Agent 获取 MySQL 的监控数据(需要结合一些脚本和命令,在本节的后面会提到具体配置方法)。将获得的监控数据传到 Zabbix Server 中,最终通过 Zabbix Web 展示出来。


2 实验环境介绍

测试的环境如下:

作用IP 地址主机名操作系统版本
Zabbix Server192.168.1.5node1CentOS 7.8zabbix-server-mysql-4.0.27
Zabbix 数据库192.168.1.6node2CentOS 7.8MySQL 8.0.23
MySQL 机器(Zabbix Agent)192.168.1.7node3CentOS 7.8MySQL 8.0.23


3 安装 Zabbix Server

在 node1 机器上部署 Zabbix Server,具体步骤如下:

添加 Zabbix 存储库

    rpm -ivh http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
    复制
    启用 rpm 存储库
    复制
      yum-config-manager --enable rhel-7-server-optional-rpms
      复制
      安装 Zabbix server
      复制
        yum install -y zabbix-server-mysql
        复制
        安装 Zabbix 前端
        复制
          yum install -y zabbix-web-mysql
          复制


          4 配置 Zabbix 的数据库

          登陆 node2 机器上的 MySQL ,创建 zabbix 数据库和用户:

            mysql> create database zabbix character set utf8 collate utf8_bin;
            Query OK, 1 row affected (0.00 sec)


            mysql> create user 'zabbix_rw'@'%' IDENTIFIED WITH mysql_native_password BY 'Zabbix@123456' ;
            Query OK, 0 rows affected (0.07 sec)


            mysql> grant all privileges on zabbix.* to zabbix_rw@'%';
            Query OK, 0 rows affected (0.00 sec)
            复制

            登陆 node1 机器,导入 MySQL 初始化 SQL 语句:

              zcat usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix_rw -p'Zabbix@123456'  zabbix -h192.168.1.6
              复制


              5 编辑配置文件

              在 node1 机器上,编辑 Zabbix Server 的配置文件 etc/zabbix/zabbix_server.conf:

                LogFile=/var/log/zabbix/zabbix_server.log
                LogFileSize=0
                PidFile=/var/run/zabbix/zabbix_server.pid
                SocketDir=/var/run/zabbix
                DBHost=192.168.1.6
                DBName=zabbix
                DBUser=zabbix_rw
                DBPassword=Zabbix@123456
                SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
                Timeout=4
                AlertScriptsPath=/usr/lib/zabbix/alertscripts
                ExternalScripts=/usr/lib/zabbix/externalscripts
                LogSlowQueries=3000
                复制

                编辑 PHP 配置文件 etc/php.ini:

                在 ;date.timezone = 下一行添加:

                  date.timezone = Asia/Shanghai
                  复制


                  6 启动 Zabbix Server

                  在 node1 机器上启动 Zabbix Server

                  设置 zabbix-server 开机启动

                    systemctl enable zabbix-server
                    复制

                    启动 zabbix-server

                      systemctl start zabbix-server
                      复制
                      设置 Apache 开启启动
                      复制
                        systemctl enable httpd
                        复制
                        启动 Apache 服务
                        复制
                          systemctl start httpd
                          复制


                          7 Zabbix WEB 界面初始化

                          登陆 http://192.168.1.5/zabbix

                          点击 “Next step”,可进入如下界面:

                          点击 “Next step”,可进入如下界面,修改 MySQL 的连接信息:

                          点击 “Next step”,可进入如下界面:

                          点击 “Next step”,可进入如下界面:

                          点击 “Next step”,可进入如下界面:

                          点击 "Finish",可跳转到 zabbix 的登陆界面:

                          默认用户名为 Admin,密码为 zabbix。登陆后,可进入到 Zabbix 的主页面,如下图:

                          到这一步,表示 Zabbx Server 的安装已经完成。


                          8 安装 Zabbix Agent

                          在 node3 上安装 Zabbix Agent:

                          安装 Zabbix Agent 包

                            yum install zabbix-agent
                            复制
                            将 zabbix-agent 加入开机启动
                            复制
                              systemctl enable zabbix-agent
                              复制
                              启动 Zabbix Agent
                              复制
                                systemctl start zabbix-agent
                                复制


                                9 安装 Percona 插件

                                在 node3 上安装 Percona 插件,登录 Percona Monitoring Plugins 下载界面:https://www.percona.com/downloads/percona-monitoring-plugins/。选择对应的版本,进行下载。

                                将下载后的 rpm 包传到 Agent 机器上,进行 percona zabbix 插件的安装:

                                  yum install -y percona-zabbix-templates-1.1.8-1.noarch.rpm


                                  cp /var/lib/zabbix/percona/templates/userparameter_percona_mysql.conf etc/zabbix/zabbix_agentd.d/


                                  yum -y install php php-mysql
                                  复制


                                  10 在 Agent 创建 Zabbix 监控用户

                                  在 node3 上登陆 MySQL,创建监控用户:

                                    create user 'zabbix'@'localhost' identified with mysql_native_password by 'Zabbix@123';


                                    GRANT SELECT, PROCESS, SUPER, REPLICATION CLIENT ON *.* TO 'zabbix'@'localhost';
                                    复制


                                    11 修改配置文件

                                    在 node3 上,编辑 etc/zabbix/zabbix_agentd.conf 文件,修改下面两行:

                                    Server= 192.168.1.5
                                    Hostname=192.168.1.7
                                    复制

                                    其中:

                                    Server 为 Zabbix Server 的 IP;

                                    Hostname 为本机 IP。

                                    重启 zabbix agent

                                      systemctl restart zabbix-agent
                                      复制

                                      编辑配置文件 var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php.cnf

                                        <?php
                                        $mysql_user = 'zabbix';
                                        $mysql_pass = 'Zabbix@123';
                                        复制

                                        编辑配置文件 ~zabbix/.my.cnf

                                          [client]
                                          user = zabbix
                                          password = Zabbix@123
                                          复制


                                          12 测试监控

                                          在 node3 上执行:

                                            /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh gg
                                            复制

                                            在 node1 上执行:

                                              yum install zabbix-get -y
                                              zabbix_get -s 192.168.1.7 -p10050 -k "agent.ping"
                                              zabbix_get -s 192.168.1.7 -p10050 -k "MySQL.Key-read-requests"
                                              复制

                                              如果都有返回值,则表示客户端部署正常。

                                              删除临时文件(该文件为临时存放监控数据的文件,测试时,该文件的属组为 root,如果不删除,会导致 zabbix 用户无权限取到监控数据):

                                                rm tmp/localhost-mysql_cacti_stats.txt -rf
                                                复制


                                                13 导入 Percona 模板

                                                在客户端机器:

                                                  cd /var/lib/zabbix/percona/templates
                                                  复制

                                                  获取到 zabbix_agent_template_percona_mysql_server_ht_2.0.9-sver1.1.8.xml 文件。

                                                  在 Zabbix 的 web 界面上,点击Configuration -> Templates -> Import 导入

                                                  进入以下界面,点击选择文件:

                                                  选择完文件后,点击“Import”:

                                                  如下图,如果出现“Imported successfully”,则说明导入成功。

                                                  Configuration-->Templates,输入关键字 “percona”,则可以看到新导入的模板 “Template Perconal MySQL Server”:


                                                  14 Zabbix web 增加主机配置

                                                  Configuration-->Hosts-->Create host,如下:

                                                  点击上图的“Create host”,进入下图,其中 Host name 填写被监控机器的可区分名字,Agent interfaces 中的 IP address 填被监控机器的 IP:

                                                  点击“Templates”,增加下图中对应的两个选项。


                                                  15 查看监控数据

                                                  Monitoring-->Graphs,Host 选择这次新增的主机名,Graph 选择一个监控项,看是否有数据:

                                                  到这里,使用 Zabbix 监控 MySQL 的内容就讲完了。



                                                  专栏《MySQL 监控》系列文章推荐
                                                  第01期:Prometheus+Grafana 监控 MySQL
                                                  第02期:PMM 监控 MySQL




                                                  如果阅读本篇文章有遇到任何疑问
                                                  欢迎加入 “MySQL 提升” 交流社群
                                                  群内会有作者和其他 MySQL 大牛一起解答
                                                  群内也会分享工作经验、面试技巧、其他 MySQL 干货等
                                                  入群请添加群秘微信,备注“MySQL提升”



                                                  LIKECOLUMN

                                                  悦专栏



                                                  悦专栏 ,从小白到大神的起点


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

                                                  评论