> 文档中心 > 【云原生】-Zabbix6监控MySQL最佳实践

【云原生】-Zabbix6监控MySQL最佳实践


📢📢📢📣📣📣
哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10年DBA工作经验
一位上进心十足的【大数据领域博主】!😜😜😜
中国DBA联盟(ACDU)成员,目前从事DBA及程序编程
擅长主流数据Oracle、MySQL、PG 运维开发,备份恢复,安装迁移,性能优化、故障应急处理等。
✨ 如果有对【数据库】感兴趣的【小可爱】,欢迎关注【IT邦德】💞💞💞
❤️❤️❤️感谢各位大可爱小可爱!❤️❤️❤️

文章目录

  • 前言
    • ⛳️ 1.部署Zabbix服务器
    • ⛳️ 2.Zabbix登陆使用
    • ⛳️ 3.安装MySQL
    • ⛳️ 4.安装Agent2
    • ⛳️ 5.配置agent参数文件
    • ⛳️ 6.Zabbix Server添加主机

前言

zabbix可以用来监控MySQL数据库可用性和性能,保证数据库的安全运营。并提供灵活的通知机制快速定位/解决存在的各种问题。


⛳️ 1.部署Zabbix服务器

1.zabbix镜像下载docker pull techerwang/dbhub:jemzabbix622.创建一个新的bridge网络[root@jeames ~]# docker network create --driver bridge --subnet=172.18.12.0/16 --gateway=172.18.1.1 mynet3.创建容器docker rm -f jemzabbix6docker run -d --name jemzabbix6 -h jemzabbix6 \-p 225:22 -p 23306:3306 -p 280:80 -p 20051:10051 \--net=mynet --ip 172.18.0.3 \-v /sys/fs/cgroup:/sys/fs/cgroup \--privileged=true \techerwang/dbhub:jemzabbix62 /usr/sbin/init--查看创建的容器[root@jeames ~]# docker ps --format "table {{.ID}}\t{{.Names}}\t{{.Status}}" | grep -i jemzabbix69b658b6e1a38   jemzabbix6    Up About a minute--设置容器开机自启动[root@jeames ~]# docker update --restart=always jemzabbix6--进入容器[root@jeames ~]# docker exec -it jemzabbix6 bash[root@jemzabbix6 /]# cat /etc/redhat-release CentOS Linux release 8.2.2004 (Core) 

⛳️ 2.Zabbix登陆使用

IP加端口号,端口号默认为80,可修改,后期下一步执行即可默认用户名密码:Admin/zabbix

【云原生】-Zabbix6监控MySQL最佳实践
【云原生】-Zabbix6监控MySQL最佳实践

⛳️ 3.安装MySQL

本次采用yum在线rpm在线安装MySQL8.0

#repo下载[root@mysql8030 ~]# rpm -Uvh https://repo.mysql.com//mysql80-community-release-el8.rpmRetrieving https://repo.mysql.com//mysql80-community-release-el8.rpmwarning: /var/tmp/rpm-tmp.yHWBFD: Header V4 RSA/SHA256 Signature, key ID 3a79bd29: NOKEYVerifying...     ################################# [100%]Preparing...     ################################# [100%]Updating / installing...   1:mysql80-community-release-el8-4  ################################# [100%]   #查询yum里的MySQL版本[root@mysql8030 ~]# yum repolist all | grep mysqlmysql-cluster-8.0-community    MySQL Cluster 8.0 Communitydisabledmysql-cluster-8.0-community-debuginfo MySQL Cluster 8.0 Community - Deb disabledmysql-cluster-8.0-community-source    MySQL Cluster 8.0 Community - Sou disabledmysql-connectors-community     MySQL Connectors Community enabledmysql-connectors-community-debuginfo  MySQL Connectors Community - Debu disabledmysql-connectors-community-source     MySQL Connectors Community - Sour disabledmysql-tools-community   MySQL Tools Community      enabledmysql-tools-community-debuginfoMySQL Tools Community - Debuginfo disabledmysql-tools-community-source   MySQL Tools Community - Source    disabledmysql-tools-preview     MySQL Tools Preview disabledmysql-tools-preview-source     MySQL Tools Preview - Source      disabledmysql80-communityMySQL 8.0 Community Server enabledmysql80-community-debuginfo    MySQL 8.0 Community Server - Debu disabledmysql80-community-sourceMySQL 8.0 Community Server - Sour disabled#配置安装的MySQL的版本[root@mysql8030 ~]# yum -y install yum-utils[root@mysql8030 ~]# yum-config-manager --enable mysql80-community#查询安装的MySQL的版本[root@mysql8030 ~]# yum repolist enabled | grep mysqlmysql-connectors-community MySQL Connectors Communitymysql-tools-community      MySQL Tools Communitymysql80-community   MySQL 8.0 Community Server#安装 MySQL先执行:yum module disable mysql再执行:yum -y install mysql-community-server#初始化MySQL[root@mysql8030 ~]# systemctl start mysqld[root@mysql8030 ~]# systemctl status mysqld● mysqld.service - MySQL Server   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)   Active: active (running) since Sun 2022-09-11 03:32:18 UTC; 2s ago     Docs: man:mysqld(8)    http://dev.mysql.com/doc/refman/en/using-systemd.html  Process: 570 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS) Main PID: 643 (mysqld)   Status: "Server is operational"    Tasks: 39 (limit: 24036)   Memory: 424.1M   CGroup: /docker/5cc7e4ce4e1cd6246b7a22e4aad1a32a0eccdab18e67b685023fd37c366be956/system.slice/mysqld.service    └─643 /usr/sbin/mysqldSep 11 03:31:38 mysql8030 systemd[1]: Starting MySQL Server...Sep 11 03:32:18 mysql8030 systemd[1]: Started MySQL Server.#查看临时密码[root@mysql8030 ~]# grep 'temporary password' /var/log/mysqld.log2022-09-11T03:32:09.311756Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: ?th)lB4Xc-1q#登陆MySQL后修改密码[root@mysql8030 ~]# mysql -uroot -pEnter password: Welcome to the MySQL monitor.  Commands end with ; or \g.Your MySQL connection id is 8Server version: 8.0.30Copyright (c) 2000, 2022, Oracle and/or its affiliates.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> ALTER USER root@'localhost' IDENTIFIED BY 'Jeames@007';Query OK, 0 rows affected (0.00 sec)mysql> create user root@'%' identified by 'Jeames@007';mysql> grant all on *.* to root@'%' with grant option;mysql> flush privileges;Query OK, 0 rows affected (0.00 sec)mysql> status--------------mysql  Ver 8.0.30 for Linux on x86_64 (MySQL Community Server - GPL)Connection id:   8Current database:Current user:    root@localhostSSL:      Not in useCurrent pager:   stdoutUsing outfile:   ''Using delimiter: ;Server version:  8.0.30Protocol version:10Connection:      Localhost via UNIX socketServer characterset:    utf8mb4Db     characterset:    utf8mb4Client characterset:    utf8mb4Conn.  characterset:    utf8mb4UNIX socket:     /var/lib/mysql/mysql.sockBinary data as:  HexadecimalUptime:   1 min 4 secThreads: 2  Questions: 7  Slow queries: 0  Opens: 131  Flush tables: 3  Open tables: 47  Queries per second avg: 0.109

⛳️ 4.安装Agent2

dnf install zabbix-agent2 zabbix-agent2-plugin-mongodb[root@mysql8030 zabbix]# systemctl restart zabbix-agent2[root@mysql8030 zabbix]# systemctl enable zabbix-agent2[root@mysql8030 zabbix]# systemctl state zabbix-agent2Unknown operation state.[root@mysql8030 zabbix]# systemctl status zabbix-agent2 ● zabbix-agent2.service - Zabbix Agent 2   Loaded: loaded (/usr/lib/systemd/system/zabbix-agent2.service; enabled; vendor preset: disabled)   Active: active (running) since Sun 2022-09-11 05:57:57 UTC; 13s ago Main PID: 1212 (zabbix_agent2)    Tasks: 7 (limit: 24036)   Memory: 11.1M   CGroup: /docker/5cc7e4ce4e1cd6246b7a22e4aad1a32a0eccdab18e67b685023fd37c366be956/system.slice/zabbix-agent2.service    └─1212 /usr/sbin/zabbix_agent2 -c /etc/zabbix/zabbix_agent2.confSep 11 05:57:57 mysql8030 systemd[1]: Started Zabbix Agent 2.Sep 11 05:57:57 mysql8030 zabbix_agent2[1212]: Starting Zabbix Agent 2 (6.2.2)Sep 11 05:57:57 mysql8030 zabbix_agent2[1212]: Zabbix Agent2 hostname: [Zabbix server]Sep 11 05:57:57 mysql8030 zabbix_agent2[1212]: Press Ctrl+C to exit.

【云原生】-Zabbix6监控MySQL最佳实践

⛳️ 5.配置agent参数文件

[root@mysql8030 ~]# vi /etc/zabbix/zabbix_agent2.confServer=172.18.0.3ServerActive=172.18.0.4Hostname=mysql8030Timeout=10参数说明:server改成zabbix服务端的IP地址,Zabbix-server 地址,多个用","隔开serveractive改成zabbix服务端的IP地址,主动检查本主机数据发送给 Zabbix-serverhostname改成本机的主机名,或本机的IP地址,被监控的主机名,需要和后续 server 端监控的主机名保持一致sed -i "s/Server=127.0.0.1/Server=172.18.0.3/g" /etc/zabbix/zabbix_agent2.confsed -i "s/ServerActive=127.0.0.1/ServerActive=172.18.0.4/g" /etc/zabbix/zabbix_agent2.conf##重启进程生效[root@mysql8030 ~]# systemctl restart zabbix-agent2

⛳️ 6.Zabbix Server添加主机

配置-->主机-->创建主机中操作Zabbix6 自带MySQL模版,无须再使用第三方,也不用自己写监控脚本,而且模板zabbix-agent2比zabbix-agent,功能更强大,应用也更简单##主机server进程[root@jemzabbix6 ~]# netstat -anp | grep 10051##客户端服务器进程[root@mysql8030 ~]# netstat -anp | grep 10050tcp 0      0 0.0.0.0:10050    0.0.0.0:* LISTEN      301/zabbix_agentd   tcp60      0 :::10050  :::*      LISTEN      301/zabbix_agentd  说明:1.主机名称和zabbix-agent2.conf文件中Hostname匹配即可2.agent配置要监控的MySQL服务器IP,端口默认为10050##zabbix测试是否监控到数据,以下在Zabbix Server端操作--是否连接mysql[root@jemzabbix6 ~]# mysql -uroot -p -h172.18.0.4#查看Server日志LogFile=/var/log/zabbix/zabbix_server.log[root@jemzabbix6 ~]# tail -n 50 /var/log/zabbix/zabbix_server.log#Web监控界面中文乱码处理1.在windows下面文件夹C:\Windows\Fonts找一个简体字文件例如simkai.ttf2.复制到zabbix server的文件夹/usr/share/zabbix/fonts3.注意:zabbix5的文件夹位置为/usr/share/zabbix/assets/fonts4.覆盖原来的graphfont.ttf文件即可[root@jeames ~]# docker cp simkai.ttf jemzabbix6:/[root@jemzabbix6 fonts]# pwd/usr/share/zabbix/assets/fonts[root@jemzabbix6 fonts]# cd /[root@jemzabbix6 /]# cp simkai.ttf /usr/share/zabbix/assets/fonts[root@jemzabbix6 fonts]# rm -rf graphfont.ttf5.找到zabbix 字符配置,切换即可,刷新页面,无需重启find / -name defines.inc.php/usr/share/zabbix/include/defines.inc.phpdefine('ZBX_GRAPH_FONT_NAME',    'graphfont'); // font file name替换graphfont为simkai即可

【云原生】-Zabbix6监控MySQL最佳实践
【云原生】-Zabbix6监控MySQL最佳实践
在这里插入图片描述