当前位置: 首页 > article >正文

Grafana 备份配置文件、数据库数据 和 仪表盘定义

Grafana 的备份需要覆盖 配置文件数据库数据仪表盘定义 三个核心部分。以下是详细的备份方案及操作步骤:


一、配置文件备份

1. 核心配置文件
  • 路径/etc/grafana/grafana.ini(默认路径)
  • 备份命令
    sudo cp /etc/grafana/grafana.ini /backup/grafana/grafana.ini.bak
    
2. Provisioning 配置(数据源/仪表盘预配置)
  • 路径/etc/grafana/provisioning/
  • 备份命令
    sudo tar -czvf /backup/grafana/provisioning.tar.gz /etc/grafana/provisioning/
    

二、数据库备份

Grafana 的元数据(用户、仪表盘、组织等)存储在数据库中,需根据实际数据库类型操作:

1. SQLite(默认数据库)
  • 数据库路径/var/lib/grafana/grafana.db
  • 备份命令
    sudo sqlite3 /var/lib/grafana/grafana.db ".backup '/backup/grafana/grafana.db.bak'"
    
2. MySQL/MariaDB
  • 备份命令
    mysqldump -u [用户名] -p[密码] grafana > /backup/grafana/grafana_mysql.sql
    
3. PostgreSQL
  • 备份命令
    pg_dump -U [用户名] -d grafana -f /backup/grafana/grafana_pg.sql
    

三、仪表盘单独备份

1. 手动导出(通过 Web 界面)
  • 访问仪表盘 → 点击设置(齿轮图标)→ Export → 保存为 JSON 文件。
2. 自动化导出(API 批量导出)
# 获取所有仪表盘 UID
curl -s -H "Authorization: Bearer [API_KEY]" http://localhost:3000/api/search | jq '.[].uid' > dashboards.list

# 批量导出 JSON
mkdir /backup/grafana/dashboards/
while read uid; do
  curl -s -H "Authorization: Bearer [API_KEY]" \
    http://localhost:3000/api/dashboards/uid/$uid | jq '.dashboard' > "/backup/grafana/dashboards/${uid}.json"
done < dashboards.list

四、插件备份

  • 插件目录/var/lib/grafana/plugins/
  • 备份命令
    sudo tar -czvf /backup/grafana/plugins.tar.gz /var/lib/grafana/plugins/
    

五、自动化备份脚本

#!/bin/bash
BACKUP_DIR="/backup/grafana/$(date +%Y%m%d)"
mkdir -p $BACKUP_DIR

# 备份配置文件
sudo cp /etc/grafana/grafana.ini $BACKUP_DIR/
sudo tar -czvf $BACKUP_DIR/provisioning.tar.gz /etc/grafana/provisioning/

# 备份数据库(以 SQLite 为例)
sudo sqlite3 /var/lib/grafana/grafana.db ".backup '$BACKUP_DIR/grafana.db.bak'"

# 备份插件
sudo tar -czvf $BACKUP_DIR/plugins.tar.gz /var/lib/grafana/plugins/

# 清理7天前的备份
find /backup/grafana/ -type d -mtime +7 -exec rm -rf {} \;

六、恢复流程

  1. 恢复配置文件

    sudo cp /backup/grafana.ini /etc/grafana/grafana.ini
    sudo tar -xzvf provisioning.tar.gz -C /
    
  2. 恢复数据库

    • SQLite:
      sudo cp grafana.db.bak /var/lib/grafana/grafana.db
      sudo chown grafana:grafana /var/lib/grafana/grafana.db
      
    • MySQL:
      mysql -u [用户] -p[密码] grafana < grafana_mysql.sql
      
  3. 恢复插件

    sudo tar -xzvf plugins.tar.gz -C /
    

七、最佳实践建议

  1. 加密敏感数据:备份文件若含密码等敏感信息,建议使用 gpg 加密。
  2. 异地存储:将备份同步至云存储(如 AWS S3)或异地服务器。
  3. 定期验证:每季度执行一次恢复演练,确保备份有效性。
  4. 版本控制:对导出的 JSON 仪表盘使用 Git 管理变更历史。

通过此方案,可实现 Grafana 的全量灾备,确保在系统崩溃或误操作时快速恢复服务。


http://www.kler.cn/a/590370.html

相关文章:

  • 日语学习-日语知识点小记-构建基础-JLPT-N4N5阶段(23):たら ても
  • 3.16学习总结 java
  • Spring 框架中常用注解和使用方法
  • 【一文读懂】RTSP与RTMP的异同点
  • MyBatis (一)持久层框架-基础入门
  • 2024下半年真题 系统架构设计师 案例分析
  • IP关联对跨境电商的影响及如何防范措施?
  • unity is running as administrator 管理员权限问题
  • 【后端开发面试题】每日 3 题(十四)
  • ORM操作(flask)
  • 基于SpringBoot + Vue 的心理健康系统
  • Matlab自学笔记四十八:各类型缺失值的创建、判断、替换、移位和处理方法
  • Spring Boot 核心知识点:依赖注入 (Dependency Injection)
  • 轻量级、高性能的 Rust HTTP 服务器库 —— Hyperlane
  • Spring Cloud 负载均衡(Ribbon)- 流量管理与服务调用优化
  • C++从入门到入土(八)——多态的原理
  • 冒泡排序:古老算法中的智慧启示
  • 「Java EE开发指南」如何用MyEclipse构建一个Web项目?(二)
  • Zabbix7.0+DeepSeek大模型实现人工智能告警分析
  • 鸿蒙路由 HMRouter 配置及使用 二