zabbix监控centos备份是否成功
zabbix监控centos备份是否成功
工作场景
我们有一台容器部署的showdoc需要每天备份一次数据目录,想通过脚本进行备份,然后通过zabbix监控是否备份成功,如果不成功的话,就会进行报警。
# showdoc的部署参见showdoc官网https://www.showdoc.com.cn/help/65610
yum remove docker-common
cd /etc/yum.repos.d/
wget http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install docker-ce -y
systemctl enable docker
systemctl restart docker
docker version
docker info
# 原版官方镜像安装命令(中国大陆用户不建议直接使用原版镜像,可以用后面的加速镜像)
docker pull star7th/showdoc
# 中国大陆镜像安装命令(安装后记得执行docker tag命令以进行重命名)
docker pull registry.cn-shenzhen.aliyuncs.com/star7th/showdoc
docker tag registry.cn-shenzhen.aliyuncs.com/star7th/showdoc:latest star7th/showdoc:latest
##后续命令无论使用官方镜像还是加速镜像都需要执行
#新建存放showdoc数据的目录
mkdir -p /showdoc_data/html
chmod -R 777 /showdoc_data
# 如果你是想把数据挂载到其他目录,比如说/data1,那么,可以在/data1目录下新建一个showdoc_data/目录,
# 然后在根目录的新建一个软链接/showdoc_data到/data1/showdoc_data
# 这样既能保持跟官方教程推荐的路径一致,又能达到自定义存储的目的.
#启动showdoc容器
docker run -d --name showdoc --user=root --privileged=true -p 4999:80 \
-v /showdoc_data/html:/var/www/html/ star7th/showdoc
根据以上命令操作的话,往后showdoc的数据都会存放在 /showdoc_data/html 目录下。
你可以打开 http://localhost:4999 来访问showdoc (localhost可改为你的服务器域名或者IP)。账户密码是showdoc/123456,登录后你便可以看到右上方的管理后台入口。建议登录后修改密码。
对showdoc的问题或建议请至https://github.com/star7th/showdoc 出提issue。若觉得showdoc好用,不妨点个star。
备份思路步骤
1、通过shell写一个备份脚本,可以通过scp或rsync推送到专门的存储设备或直接本地进行备份,在脚本里面增加一个是否备份成功的判断,如果成功就向某个文件写入0,如果不成功就写入1。
2、写入到定时任务当中,每天的某一个时间点执行
3、安装好zaabix_agent,并自定义键值
4、在zabbix当中自定义监控项和触发器,判断shell脚本输出的文件值是否为0,为0表示备份成功,不为0表示失败。
5、关联钉钉报警
第一步:数据目录是/showdoc_data/html,写一个备份的脚本
mkdir /scripts
mkdir /backup
mkdir /zabbix
vim /scripts/showdoc_backup.sh
#!/bin/bash
BAKUP_DIR=/backup
DATE=$(date +%Y-%m-%d)
ZABBIX_READ_DIR=/zabbix
# 备份数据目录
zip -r /$BACKUP_DIR/showdoc_$DATE_bak.zip /showdoc_data/html
if [ $? -eq 0 ]; then
echo 0 > $ZABBIX_READ_DIR/zabbix_read
else
echo 1 > $ZABBIX_READ_DIR/zabbix_read
fi
第二步:定时任务,每天凌晨3点执行
0 3 * * * /bin/bash /scripts/showdoc_backup.sh
第三步:安装agent并自定义触发器
rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/3.4/rhel/7/x86_64/zabbix-agent-3.4.12-1.el7.x86_64.rpm
systemctl enable --now zabbix-agent
[root@Showdoc zabbix_agentd.d]# pwd
/etc/zabbix/zabbix_agentd.d
[root@Showdoc zabbix_agentd.d]# cat custom.conf
UserParameter=zabbix_read,cat /zabbix/zabbix_read
systemctl restart zabbix-agent