Z.S.K.'s Records

Grafana学习(grafana资源备份工具)

目前,Grafana是使用statefulset的形式部署的, 单实例,底层存储也没有使用分布式容灾, 里面有很配置好的模板,整天提醒吊胆地怕这个实例磁盘出问题,在不给分配更多资源的情况下,必须要找个合适的备份方案, 当然,可以直接备份整个目录, 这里介绍下使用kubernetes的cronjob进行定时备份

Grafana-backup-tool

在github上找到一个比较好用的grafana数据的备份工具, 用python写的, 地址在这里, ReadMe写的挺详细,一看就明白, 这个工具能备份 datasource, dashboard及配置的alert. 需要备份的也就这些数据了,其它的数据用处不大,

也有直接的docker 镜像可用,我们发布到kubernetes中,在发布之前需要一个Grafana的token来访问数据

Grafana Token

新建一个grafana token,这个token需要配置到备份工具脚本中,使用这个token通过api访问grafana的数据

在新建的时候可以限定角色, 需要注意的是这个token只有在第一次新建的时候会显示,所以最好保存在其它地方,要不然后续都无法再显示.

CronJob

将该容器在Kubernetes集群中发布成CronJob定时执行, 详细的CronJob,大家可参考这里

yaml文件中需要指定两个环境变量

同时,最好也指定successfulJobsHistoryLimit 及failedJobsHistoryLimit, 不然会遗留很多的pod.

指定备份目录,因为我这里使用了NodeName直接让该pod定向调度到指定机器,每次执行完之后都会在该机器的目录下生成备份数据,之后通过rsync工具同步到其它机器上,实现灾备.

确认部署成功后:

至此, 每天的22:33即会备份一次数据.

参考文章:

转载请注明出处https://izsk.me

Z.S.K. wechat
Scan Me To Read on Phone
I know you won't do this,but what if you did?