利用Zabbix部署一个简易的MySQL监控系统
* GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。
- 一、Zabbix部署
- 二、浏览器安装Zabbix
- 三、Zabbix Agent 安装
- 四、配置MySQL监控
- 五、查看监控数据
一、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
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;
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
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
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;
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 # 时区改成上海
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
二、浏览器安装Zabbix
1.访问WEB地址
先绑定下host,步骤略,然后浏览器访问地址。
http://greatsql.zabbix.com/setup.php
2.确认所有条件都OK,点击Next step
3.填写账户密码等信息,点击Next step
4.再执行Next step
5.执行Next step
6.确认安装完成
7.登陆主页,默认账户密码:Admin/zabbix
http://greatsql.zabbix.com/index.php
8.主页信息
三、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
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
4、启动zabbix-agent
systemctl start zabbix-agent
systemctl enable zabbix-agent
四、配置MySQL监控
4.1 配置 Host groups
左侧下拉菜单栏 Configuration -> Host groups
右上角 Create host group
输入名称 MySQL Monitor
点击 Add
,完成
4.2 配置 Templates
1、菜单栏点击 Templates
2、右上角点击 Create template
3、填写模板名称和组,Groups就是上一个步骤创建的MySQL Monitor
4、选择链接的模板,链接了2个模板、分别是系统监控和MySQL服务监控
5、配置完成后,如果是首次配置则点击Add。否则就是Update。
4.3 配置 hosts
1、左侧菜单栏点击 hosts
2、右侧点击 Create host
3、配置Host
内容
4、配置 Templates
内容,选择上个步骤创建的自定义MySQL Monitor Template
5、配置完成后,点击Add
4.4 配置后最终效果
以上就配置完成一台受监控的数据库服务器。
五、查看监控数据
点击左边菜单页Monitorning
-> Latest data
可以看到 MySQL-01 系统以及MySQL相关的监控项汇总信息。
点击其中一个监控项Graph
,可以看到历史监控绘图数据。
由于zabbix_agentd
没有收集MySQL的信息,所以我们要结合监控模板自定义编写监控脚本进行数据收集。
1、查看模板配置要求
打开相关模板,查看描述
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 '<password>';
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=<password>
按步骤满足相关要求。
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"
3、数据库采集权限开通
CREATE USER 'zbx_monitor'@'%' IDENTIFIED BY 'Zabbix.~#';
GRANT USAGE,REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW ON *.* TO 'zbx_monitor'@'%';
flush privileges;
4、创建监控采集的账户信息
root@localhost ~]# cat /etc/zabbix/.my.cnf
[mysql]
user=zbx_monitor
password=Zabbix.~#
[mysqladmin]
user=zbx_monitor
password=Zabbix.~#
以上按要求配置完成后,重启进程。
[root@mgr1 ~]# systemctl restart zabbix-agent
再次查看就有MySQL监控数据了。
Enjoy GreatSQL :)
点击小程序留言
深入浅出MGR》视频课程
戳此小程序即可直达B站
https://www.bilibili.com/medialist/play/1363850082?business=space_collection&business_id=343928&desc=0
文章推荐:
- MySQL 启停过程了解一二
- 技术分享 | 微服务架构的数据库为什么喜欢分库分表?
- MySQL内存管理机制浅析
- 技术分析 | 浅析MySQL与ElasticSearch的组合使用
- 构建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/video
相关文章
- 8张图详解 MySQL 在 K8S 环境中部署与监控
- MySQL Error number: MY-010765; Symbol: ER_DD_ERROR_CREATING_ENTRY; SQLSTATE: HY000 报错 故障修复 远程处理
- MySQL集群部署:实现多台服务器负载均衡(mysql多台服务器)
- 中MySQL部署到服务器:一步一步实现(mysql部署到服务器)
- 实现快速部署:MySQL免安装版介绍(mysql免安装版)
- Linux 本地部署MySQL 数据库(linux下载mysql)
- MySQL开源监控:构建全方位性能保障(mysql开源监控工具)
- 实例为一台电脑部署多个MySQL实例(一台电脑多个mysql)
- C3P0与MySQL联用:最佳数据库连接方案(c3p0mysql)
- MySQL性能优化之道:提升性能的10大技巧(Mysql性能优化方法)
- MySQL实现多表关联,打破数据瓶颈(mysql多表关联)
- 高效监控MySQL数据库 一个必备的脚本(mysql数据库监控脚本)
- 的处理MySQL中处理重复数据的方法(mysql数据重复)
- 比较Mysql集群方案:依据实际需求选择最佳方案(mysql集群方案比较)
- 使用Cacti监控MySQL性能(cacti监控mysql)
- 使用ELK实现对MySQL的监控(elk监控mysql)
- MySQL常用语句大全,让你快速精准操作数据库!(mysql的语句)
- MySQL实时监控:让数据更安全(mysql 实时监控)
- 重装MySQL服务器,重塑数据库世界(重装mysql服务器)
- 解决MySQL无法部署在服务器中的问题(服务器不支持mysql)
- MySQL字符串拆分:简单而有效的方法(mysql 字符串拆分)
- MySQL下周一更新,需做好备份和监控工作(mysql中下周一)
- C 语言通过 MySQL 构建稳定可靠的连接端口(c mysql链接端口)
- C环境下MySQL的快速部署(c mysql 部署)
- 掌握CMD指令,快速部署MySQL(cmd上使用mysql)
- MySQL内联查询实现三表连接(MySQl三表查询内连接)
- 简单易懂,轻松入门MySQL的yum安装指南(mysql yum安?)
- 解决MySQL不稳定的问题(mysql不好使)
- 一键安装MySQL下载即可享受MySQL数据库的便捷服务(mysql下载直接安装)
- MySQL双重游标的使用方法介绍(mysql两层游标)
- 免费下载MySQL 2005,轻松上手数据库操作(mysql下载2005)