Zabbix 数据库备份
分类:运维技术日期:2019-01-15 - 10:25:14作者:老谢
脚本主要是过滤掉保存监控数据的几个大表,因人而异,对我来说监控数据没了就没了,可以重新采集,但是剩下的监控配置,模板(我自建模板就100多个,如果丢了,我会哭的。),Action(这种东西都是各种匹配,调用丢了的话,真没法回逆),用户信息这些配置真的是非常重要。这样备份的好处,备份速度快,量小,重要的数据都备份了。恢复的时候呢,先建库,按照安装zabbix的时候导入数据库,导入那个主要就是为了创建几个历史表的结构,然后在拿这个备份导入,覆盖一下就行了。
#!/bin/bash # @Date : 2016-06-07 09:25:56 # @Author : ukyomud (ukyomud@qq.com) # @Filename : # @Description : PATH="/sbin:/usr/sbin:/bin:/usr/bin" export PATH # 数据库账号 NAME='zabbix' # 登录密码 PASSWD='密码' # 数据库备份路径 BAK_DIR="/workspace/zabbix_backup/zabbix_sql_backup" # 备份日志的log BAK_LOG_FILE="/var/log/zabbix_bk_log" # 备份数据轮转天数 DEL_FILE_DAYS=7 # 当前时间 DATE_NOW=$(date +'%Y-%m-%d') # 数据库主机 HOSTSER="数据库主机" # 要过滤掉的数据表,这个可以根据自己的情况变更 FILTER_TABLE="history_uint|history|trends_uint|trends|history_text|alerts|events" # 数据库连接端口 PORT=3306 # 判断有没有备份目录,没有的话创建一下。 [ -d $BAK_DIR ] || mkdir -p $BAK_DIR # 过滤出要备份的表,一次备份。 for tablename in $(mysql -h"$HOSTSER" -u"$NAME" -p"$PASSWD" -P"$PORT" zabbix -e "show tables;" 2>/dev/null | grep -Ev "$FILTER_TABLE");do /usr/bin/mysqldump -N -h"$HOSTSER" -u"$NAME" -p"$PASSWD" -P"$PORT" zabbix ${tablename} >>${BAK_DIR}/zabbixdb.${DATE_NOW}.sql 2>>${BAK_LOG_FILE} done # 我个人习惯是单独有个zabbix目录,用来保存zabbix 调用的脚本。 # 所以这里顺道做了备份。 cd /workspace/zabbix_backup/zabbix_scripts_backup tar czvf zabbix.tgz.$(date +%F) /workspace/zabbix # 查找7天前的日志,进行删除。 find $BAK_DIR -type f -ctime +${DEL_FILE_DAYS} | xargs rm -f find /workspace/zabbix_backup/zabbix_scripts_backup -type f -ctime +${DEL_FILE_DAYS} | xargs rm -f |
内容更新于: 2017-07-26 18:06:58
链接地址: http://blog.leanote.com/post/xiaomi/Zabbix-%E6%95%B0%E6%8D%AE%E5%BA%93%E5%A4%87%E4%BB%BD
Zabbix是开源的吧,用起如何,我们公司都没用监控软件,low得很,都是人工管理服务器和交换机。
开源的,网管软件在中大型网络中还是很重要的,不然出了问题第一时间不知道,也无法回溯问题
最近谢总更新很勤快呀
学习了