前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Zabbix以trapper方式监控MySQL备份文件

Zabbix以trapper方式监控MySQL备份文件

作者头像
loong576
修改2019-10-23 11:36:55
1.1K0
修改2019-10-23 11:36:55
举报
文章被收录于专栏:运维ABC

背景:

生产上有台mysql服务器每天以定时任务方式用mysqldump命令进行数据库逻辑备份,定时任务执行时间为23:30,备份时长5分钟左右,生成的备份文件命名方式为‘mysql-$(date +%Y-%m-%d).sql’,大小3G左右,备份文件保留3份,即执行完mysqldump命令后对大前天备份文件进行删除操作。

需求:

对备份文件进行检查监控,若文件生产异常则触发告警。

1.模拟生产备份文件

代码语言:txt
复制
[root@zabbix-agent ~]# cd /data/backup/
[root@zabbix-agent backup]# dd if=/dev/zero of=mysql-2018-05-15.sql bs=1M count=1000
[root@zabbix-agent backup]# dd if=/dev/zero of=mysql-2018-05-16.sql bs=1M count=1000
[root@zabbix-agent backup]# dd if=/dev/zero of=mysql-2018-05-17.sql bs=1M count=1000

2.监控脚本编写

脚本属主为zabbix:zabbix,脚本功能为检查前一天是否生产备份文件并判断文件大小。

代码语言:txt
复制
[root@zabbix-agent script]# more file_check.sh 
#/bin/bash

file_path=/data/backup
ZABBIX_SENDER=/usr/bin/zabbix_sender
zabbix_server=172.27.9.63
zabbix_agent=172.27.9.65


DuCheck(){
date=$(date -d "yesterday" +%Y-%m-%d)
file=$file_path/mysql-$date.sql
du=$(cd $file_path && du -sm *|grep mysql-$date.sql|awk {'print $1'})
if [[ $du -ge 1000 ]]     #生产库每天都有新数据产生,备份量会越来越大
then
    echo 0
else
    ${ZABBIX_SENDER} -z ${zabbix_server} -s ${zabbix_agent} -k file.check -o "fail" &> /dev/null
    exit 1
fi
}


Sender(){
if [ $(DuCheck) -eq 0 ]
then
    ${ZABBIX_SENDER} -z ${zabbix_server} -s ${zabbix_agent} -k file.check -o "sucess" &> /dev/null
else
    return 0    
fi
}

[ $# -eq 0 ] && Sender || echo Usage: $0

3.新建模板

新建模板“File Check”

4.新建监控项

模板中新建监控项“file status check”

5.新建触发器

返回值如果为fail则触发告警

6.模板绑定主机

绑定主机172.27.9.65,可见名为‘业务系统.客户端zabbix-test-centos7’

7.查看检查结果

运行脚本,查看执行结果,由于模拟的备份文件日期为15、16、17三天的,今天执行会报错

代码语言:txt
复制
[root@zabbix-agent ~]# sh /etc/zabbix/script/file_check.sh

8.编写定时任务

每天零点1点钟执行文件检查脚本

代码语言:txt
复制
[root@zabbix-agent script]# crontab -l
0 1 * * * /etc/zabbix/script/file_check.sh &>/dev/null 2>&1

对于第八步,如果不想用定时任务方式推送监控消息,可以再新建一个监控项:

1.新建监控项

2.修改配置文件

修改配置文件zabbix_agentd.conf

代码语言:txt
复制
[root@zabbix-agent zabbix]# view zabbix_agentd.conf
UserParameter=file.check.send,/etc/zabbix/script/file_check.sh

重启zabbix-agent服务

代码语言:txt
复制
[root@zabbix-agent zabbix]# systemctl restart zabbix-agent

至此备份文件检查监控完成

ps:曾想过用内置监控项‘vfs.file.existsfile’、‘vfs.file.sizefile’、‘vfs.file.timefile,<mode>’来直接监控检查文件是否存在/大小/生成时间,但是文件名不确定,监控项中的‘key’不支持{DATE}和{TIME}内置宏,所以作罢。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018/06/01 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档