[技术干货] 利用zabbix监控mysqldump定时备份数据库是否成功

[复制链接]
乐维 发表于 2020-3-9 12:15:35 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
场景需求
1. 大部分企业都会存在测试数据库。然而,这些公司的运维人员普遍的做法是编写一个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.png
2.png
1.2编写数据库备份脚本
然后是编写一个简单备份数据库的shell脚本(bak.sh),在crontab定时任务中,设置脚本执行的时间
正常来说(备份的数据库文件名,必须时数据库名加上数据库备份时间命名)
3.png
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打开定时任务
4.png
查看是否备份成功
   5.png
6.png
2.创建监控项
zabbix_agent.conf配置自定义键值
7.png
重启zabbix_agent
zabbix_server配置监控项
8.png
9.png
如上图所示,mysql备份的值为0,也就是备份成功。
创建告警。如果值非0,那么就是数据库备份失败
10.png
为了验证备份失败。我们可以执行删除数据库test的操作。那么mysql是否备份成功这个监控项的值就会不为0,接着会出现告警。
删除数据库命令(drop database 数据库名)
11.png
12.png
此时,mysql是否备份成功的监控项值不为0。导出的数据库文件也是无效的。
13.png
14.png
触发器也出现告警
实验完毕

欢迎进入177428068进行交流





上一篇:“专家坐诊”第49期问答汇总
下一篇:Oracle单机实例+ASM
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝0

帖子135

发布主题
最新发布

乐维社区

微信公众号

版权所有 © 2016-2019 九一乐维丨粤ICP备17007026号-2