zabbix数据库备份和Zabbix的高可用

一.  数据库备份:

1.  备份Zabbix数据库可以防止数据库因意外损坏而导致所有的配置数据丢失,备份的目的是灾难恢复。这里选择对单表备份,而非全部备份。排除以下的表(原因是这几个表的数据为监控的历史展示数据,非配置类数据)。

history* trends* Acknowledges Alerts Auditlog Events service_alarms

2.  过滤出要备份的数据库:

[root@zabbix ~]# mysql -uzabbix -pzabbix zabbix -e 'show tables' | egrep -v 
"(Tables_in_zabbix|history*|trends*|acknowledges|alerts|auditlog|events|
service_alarms)"

3.  将过滤出的数据库赋值给一个变量,循环变量备份数据库:

## 创建备份文件的目录
[root@zabbix ~]# mkdir /mysqlbak

## 将过滤出来的数据赋值给变量
[root@zabbix ~]# TABLE=`mysql -uzabbix -pzabbix zabbix -e 'show tables' | egrep -v "
(Tables_in_zabbix|history*|trends*|acknowledges|alerts|auditlog|events|service_alarms)"`

## 备份数据
[root@zabbix ~]# for i in $TABLE; 
do 
mysqldump -uzabbix -pzabbix -P3306 -hlocalhost --opt zabbix $i > /mysqlbak/$i.sql; 
done

4.  数据的还原:

[root@zabbix ~]# for table in `ls /mysqlbak/`; 
do 
mysql -uzabbix -pzabbix -hlocalhost zabbix < $table;
done

注意:可以将备份和还原写成一个脚本文件:

## 创建脚本存放目录
[root@zabbix ~]# mkdir /server/scripts -p

[root@zabbix ~]# cd /server/scripts/

## 编写备份脚本
[root@zabbix scripts]# vim bak_mysql.sh

#!/bin/bash

## 定义变量  
BAK_DIR=/mysqlbak  ## 备份的目录
DAY=`date +%F` ## 对当天的数据库数据进行备份
USER=zabbix ## 数据库用户
PASSWD=zabbix ## 数据库密码
HOST=localhost ## 数据库主机
DB=zabbix ## 备份的数据库名称

## 定义备份数据库的函数
MYSQLDUMP () {
## 获取要备份的表,并赋值给变量
  TABLE=`mysql -uzabbix -pzabbix zabbix -e 'show tables' | egrep -v "
(Tables_in_zabbix|history*|trends*|acknowledges|alerts|auditlog|events|service_alarms)"`

## 判断目录是否存在,若不存在则创建目录
  [ -d $BAK_DIR/$DAY/logs ] || mkdir -p $BAK_DIR/$DAY/logs
  
  ## 遍历变量,进行表的备份
  for tab in $TABLE
  do
    mysqldump -uzabbix -pzabbix -P3306 -hlocalhost --opt zabbix $tab > $BAK_DIR/$DAY/$tab.sql
  done

## 存储日志
  [ $? -eq 0 ] && echo "${DAY}: Backup zabbix succeed" >> 
$BAK_DIR/$DAY/logs/ZabbixMysqlDumpSuccess.log || 
echo "${DAY}: Backup zabbix failed" >> $BAK_DIR/$DAY/logs/ZabbixMysqlDumpFailed.log
}

## 调用函数
MYSQLDUMP

## 为脚本赋予执行权限
[root@zabbix scripts]# chmod +x bak_mysql.s

## 执行脚本
[root@zabbix scripts]# ./bak_mysql.sh 

5.  查看数据是否备份成功:

[root@zabbix 2022-09-28]# tree /mysqlbak/

/mysqlbak/
└── 2022-09-28
    ├── actions.sql
    ├── autoreg_host.sql
    ├── conditions.sql
    ├── config_autoreg_tls.sql
    ├── config.sql
...........
    ├── logs
    │   └── ZabbixMysqlDumpSuccess.log
    ├── maintenances_groups.sql
    ├── maintenances_hosts.sql
    ├── maintenances.sql
    ├── maintenances_windows.sql
    ├── maintenance_tag.sql
    ├── media.sql
    ├── media_type_message.sql
..........

2 directories, 150 files

二.  Zabbix的高可用:

1.  Zabbix的高可用问题:对于一个监控系统都存在的一个问题就是知网来盗控自己,如果当身发生成周会导致全部监控实效,并且也无法发送报警消息。这就需要实现Zabbix系统的高可用,至少在监控系统出现故障时能够及时发送报警消息。

2.  Zabbix的高可用实现:

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值