iT邦幫忙

2025 iThome 鐵人賽

DAY 6
0
DevOps

從零開始的 graylog 探險系列 第 6

Day 6: 備份與恢復策略基礎

  • 分享至 

  • xImage
  •  

Graylog 的高效運作仰賴 MongoDB(系統配置)、Graylog DataNode(索引/日誌存儲)及各項配置檔。經常備份這三者,是保障服務可用與災難恢復的基礎。以下將介紹如何於 Docker Compose 環境下執行最基本的備份操作。

需備份重點說明

  • MongoDB:存放 Graylog 設定、用戶、儀表板等資料。
  • Graylog DataNode:負責索引及日誌數據存儲。新版 Graylog 使用 DataNode 取代 Elasticsearch。
  • Graylog 設定/內容包:如 server.conf 等重要設定檔案。

Docker Compose 實際備份步驟

備份 MongoDB

利用 docker exec 於容器內執行 mongodump,並將資料複製至主機:

docker exec <mongodb_container_name> mongodump --db=graylog --archive=/tmp/graylog.archive
docker cp <mongodb_container_name>:/tmp/graylog.archive ./backup/graylog.archive

還原則使用 mongorestore:

docker cp ./backup/graylog.archive <mongodb_container_name>:/tmp/graylog.archive
docker exec <mongodb_container_name> mongorestore --archive=/tmp/graylog.archive

備份 Graylog DataNode

DataNode 的資料通常透過 Docker volume 持久化(如 docker-compose.yml 中的 graylog-datanode:/var/lib/graylog-datanode)。
備份方法如下:

# 備份 DataNode 數據
docker run --rm \
  -v graylog-datanode:/data \
  -v $(pwd)/backup:/backup \
  alpine \
  tar -czvf /backup/datanode_backup.tar.gz -C /data .

還原只需同樣將 tar 檔回存 Volume:

docker run --rm \
  -v graylog-datanode:/data \
  -v $(pwd)/backup:/backup \
  alpine \
  tar -xzvf /backup/datanode_backup.tar.gz -C /data

備份 Graylog 設定檔

通常 Graylog docker-compose 會將資料目錄掛載於 volume(如 graylog_data:/usr/share/graylog/data/data),可用 tar 複製:

docker run --rm \
  -v graylog_data:/config \
  -v $(pwd)/backup:/backup \
  alpine \
  tar -czvf /backup/graylog_config.tar.gz -C /config .

開發 vs. 生產環境簡略建議

開發環境可只備份 MongoDB 或 DataNode 核心資料,操作簡單,毀損後可快速重建。
生產環境需每日自動排程完整備份全部 volume,建議異地/雲端儲存以及加密,並應定期測試還原流程,確保災難下能迅速復原。


上一篇
Day 5: 首次啟動與憑證設定
下一篇
Day 7: 輸入源配置與管理
系列文
從零開始的 graylog 探險9
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言