干货丨利用 Zabbix 监控 mysqldump 定时备份数据库

在这里插入图片描述

本文转自@TWT社区,作者:许远

场景需求

大部分企业都会存在测试数据库。然而,这些公司的运维人员普遍的做法是编写一个shell脚本通过mysqldump,这个MySQL数据库备份工具结合Linux的crontab这个定时任务命令,实现每周或者每月对数据库进行备份,如果不监控这些测试数据库每周是否备份成功,很可能会在后期的工作中出现问题。因此,今天围绕这个话题,介绍一下如何通过Zabbix监控mysqldump数据库的备份。

实验过程

1. 在mysql数据库创建一个演示用的,名为test的数据库,在test数据库创建一个test表。
Mysql的语句

Create database test; #创建名为test的数据库

Use test; #使用test数据库

create table test (name varchar(50)); #创建一个只有name字段的test表格

1.1 创建测试数据库test
在这里插入图片描述在这里插入图片描述

1.2 编写数据库备份脚本

然后是编写一个简单备份数据库的shell脚本(bak.sh),在crontab定时任务中,设置脚本执行的时间

正常来说(备份的数据库文件名,必须时数据库名加上数据库备份时间命名)
在这里插入图片描述

Mysqldump –u用户名 –p密码 –h数据库ip 数据库名(test) > 备份的数据库存放的位置

如果数据库备份成功,在/tmp/bak_result.txt就会是一个0。反之,非0就是数据库备份失败。

注意:存放数据库备份的位置最好不要是用户目录,否则其他用户可能无法查看,因此选择/tmp目录用来测试

最后要给bak.sh加上执行权限,否则定时任务无法执行

Chmod o+x bak.sh

1.3 设置定时计划,为了方便演示效果(备份时间设置为1分钟备份一次)

Crontab –e打开定时任务
在这里插入图片描述

查看是否备份成功
在这里插入图片描述
在这里插入图片描述

2.创建监控项

在zabbix_agent.conf配置自定义键值
在这里插入图片描述

重启zabbix_agent

在zabbix_server配置监控项
在这里插入图片描述
在这里插入图片描述

如上图所示,mysql备份的值为0,也就是备份成功。

创建告警。如果值非0,那么就是数据库备份失败
在这里插入图片描述

为了验证备份失败。我们可以执行删除数据库test的操作。那么mysql是否备份成功这个监控项的值就会不为0,接着会出现告警。

删除数据库命令(drop database 数据库名)
在这里插入图片描述
在这里插入图片描述

此时,mysql是否备份成功的监控项值不为0。导出的数据库文件也是无效的。
在这里插入图片描述
在这里插入图片描述

触发器也出现告警。

实验完毕。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值