标签:重要 devops color 开始时间 nginx alert 日常 png 异地
一,业务背景二,方案思路:
1,备份脚本任务一开始便向es中插入一条记录,该记录包括:备份开始时间,备份主机,备份脚本的完整路径和文件名,备份来源,备份目的,备份状态,备份结束时间,文件大小等;并记录插入成功的doc_id;
2,备份结束后,更新该条记录的字段态,主要是更新结束时间,备份状态(默认failed改为success),文件大小等。
3, 备注:
A,通过开始和结束时间,计算出总的备份时间,方便调整更新窗口;
B,通过对备份状态字段的值判断,如果为failed则发送邮件报警;
C,通过文件大小,可以评估磁盘容量使用情况,方便进行容量规划;
三, 实现脚本(数据库备份为例)
由于整体脚本比较简单,只列shell插入es部分脚本
1,开始插入记录
`
curl -s -H ‘Content-Type: application/json‘ XPUT http://$esUrl/backup_$(date +%Y%m%d)/log/ -d ‘
2,更新记录
其中变量doc_id为前一步中 /tmp/${backup_name}.json 存放的插入es记录的返回结果(用jq进行json解析)
`
curl -s -H ‘Content-Type: application/json‘ XPUT http://$esUrl/backup_$(date +%Y%m%d)/log/$doc_id/_update -d ‘
{"doc":{"last_time":"‘"${last_time}"‘","end_time":"‘"${endYmd}T${endHMS}+08:00"‘","backup_status":"success","backup_size":"‘"${backup_size}"‘"}}‘
`
四,es 数据结果
head插件数据结果查询:
五,elastalert报警
elastalert安装可以参考网上文档,配置报警规则:查询最近12小时以内记录,如果备份状态为failed的记录出现1次,则发送报警邮件,规则的如下:
name: backup
type: frequency
attach_related: true
index: backup
num_events: 1 #出现次数
timeframe:
hours: 12 #查询最近12小时
filter:
六,报警邮件截图
由于是测试,所以我备份记录状态全是失败.
基于elasticsearch和elastalert的备份状态检查
标签:重要 devops color 开始时间 nginx alert 日常 png 异地
原文地址:https://blog.51cto.com/emulator/2370949