zabbix以trapper监控备份文件

欠伸展肢体,吟咏心自愉。这篇文章主要讲述zabbix以trapper监控备份文件相关的知识,希望能为你提供帮助。
背景:
生产上有台mysql服务器每天以定时任务方式用mysqldump命令进行数据库逻辑备份,定时任务执行时间为23:30,备份时长5分钟左右,生成的备份文件命名方式为‘mysql-$(date +%Y-%m-%d).sql’,大小3G左右,备份文件保留3份,即执行完mysqldump命令后对大前天备份文件进行删除操作。
需求:
对备份文件进行检查监控,若文件生产异常则触发告警。




1.模拟生产备份文件

[[email  protected]  ~]#  cd  /data/backup/ [[email  protected]  backup]#  dd  if=/dev/zero  of=mysql-2018-05-15.sql  bs=1M  count=1000 [[email  protected]  backup]#  dd  if=/dev/zero  of=mysql-2018-05-16.sql  bs=1M  count=1000 [[email  protected]  backup]#  dd  if=/dev/zero  of=mysql-2018-05-17.sql  bs=1M  count=1000

zabbix以trapper监控备份文件

文章图片




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

[[email  protected]  script]#  more  file_check.sh  #/bin/bashfile_path=/data/backup ZABBIX_SENDER=/usr/bin/zabbix_sender zabbix_server=172.27.9.63 zabbix_agent=172.27.9.65DuCheck(){ 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”

zabbix以trapper监控备份文件

文章图片



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

zabbix以trapper监控备份文件

文章图片



5.新建触发器
zabbix以trapper监控备份文件

文章图片


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

zabbix以trapper监控备份文件

文章图片



6.模板绑定主机
绑定主机172.27.9.65,可见名为‘业务系统.客户端zabbix-test-centos7’
zabbix以trapper监控备份文件

文章图片




7.查看检查结果
运行脚本,查看执行结果,由于模拟的备份文件日期为15、16、17三天的,今天执行会报错
[[email  protected]  ~]#  sh  /etc/zabbix/script/file_check.sh

zabbix以trapper监控备份文件

文章图片



zabbix以trapper监控备份文件

文章图片



8.编写定时任务
每天零点1点钟执行文件检查脚本

[[email  protected]  script]#  crontab  -l 0  1  *  *  *  /etc/zabbix/script/file_check.sh  & > /dev/null  2> & 1



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

文章图片



2.修改配置文件
修改配置文件zabbix_agentd.conf
[[email  protected]  zabbix]#  view  zabbix_agentd.conf UserParameter=file.check.send,/etc/zabbix/script/file_check.sh

重启zabbix-agent服务
[[email  protected]  zabbix]#  systemctl  restart  zabbix-agent



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


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



    推荐阅读