vocus logo

方格子 vocus

使用Graylog和Opensearch進行日誌管理和備份

更新 發佈閱讀 10 分鐘
近期專案需求,需要使用到Log工具,在效能、快速搭建、費用的考量下,決定使用Gray & Opensearch

創建 Graylog 和 Opensearch

1. 使用官方提供的Docker yaml檔就能快速建立,不過因為有備份需求,opensearch要增加快照設定

version: '3'
services:
opensearch:
image: "opensearchproject/opensearch:2.15.0"
environment:
- "OPENSEARCH_JAVA_OPTS=-Xms1g -Xmx1g"
- "bootstrap.memory_lock=true"
- "discovery.type=single-node"
- "path.repo=/home/mmsd/graylog" # 配置快照路徑
- "plugins.security.disabled=true"
ulimits:
memlock:
hard: -1
soft: -1
ports:
- "9203:9200"
- "9303:9300"
volumes:
- "opensearch:/usr/share/opensearch/data" # 數據卷
- "/path/on/host/graylog:/home/mmsd/graylog" # 快照存儲路徑
volumes:
opensearch:

2. 啟動Docker container

docker compose up -d

手動備份Log

1. Docker container啟動後,就建立快照存儲庫

curl -X PUT "http://localhost:9203/_snapshot/my_backup" -H 'Content-Type: application/json' -d'
{
"type": "fs",
"settings": {
"location": "/home/mmsd/graylog",
"compress": true
}
}'
  • 如果出現{"error":{"root_cause":[{"type":"exception","reason":"failed to create blob container"}],"type":"repository_verification_exception","reason":"[my_backup] path is not accessible on cluster-manager node","caused_by":{"type":"exception","reason":"failed to create blob container","caused_by":{"type":"access_denied_exception","reason":"/usr/share/opensearch/snapshot/tests-G5Qo2ODjTz6wqjlTiKsRDw"}}},"status":500}的錯誤,通常是因為容器對該路徑的權限不足,請參考權限不足解決方案

2.創建快照

curl -X PUT "http://localhost:9203/_snapshot/my_backup/snapshot_1"

3.確保快照已正確配置

curl -X GET "http://localhost:9203/_snapshot/my_backup?pretty"

4.確保 /path/on/host/graylog 目錄中能看到生成的快照文件

ls /path/on/host/graylog

5.備份索引

curl -X PUT "http://localhost:9203/_snapshot/my_backup/graylog_backup_$(date +%Y%m%d%H%M%S)?wait_for_completion=true" -H 'Content-Type: application/json' -d'
{
"indices": "graylog_0",
"ignore_unavailable": true,
"include_global_state": false
}'

6.刪除已備份的索引

curl -X DELETE "http://localhost:9203/graylog_0?pretty"

Recover Log data

1.關閉索引

curl -X POST "http://localhost:9203/graylog_0/_close?pretty"

2.Recover Log data

curl -X POST "http://localhost:9203/_snapshot/my_backup/graylog_backup/_restore" -H 'Content-Type: application/json' -d'
{
"indices": "graylog_0"
}'

3.重新開啟索引

curl -X POST "http://localhost:9203/graylog_0/_open?pretty"

自動備份

1.建立shell script

#!/bin/bash

# 備份索引
curl -X PUT "http://localhost:9203/_snapshot/my_backup/backup_$(date +%Y%m%d)?wait_for_completion=true" -H 'Content-Type: application/json' -d'
{
"indices": "graylog_*",
"ignore_unavailable": true,
"include_global_state": false
}'

# 刪除索引
curl -X DELETE "http://localhost:9203/graylog_0?pretty"

# 日誌
echo "$(date): Backup and deletion completed." >> /var/log/opensearch_backup.log

2.設定Cron Job

crontab -e
0 2 * * * /path/to/backup_script.sh

權限不足解決方案

排查與解決方式

1. 檢查宿主機目錄的權限

由於你使用的是 bind 挂载 /path/on/host/graylog:/home/mmsd/graylog,宿主機的目錄權限可能限制了 OpenSearch 的操作。

執行以下命令,檢查該目錄的所有者與權限:

ls -ld /path/on/host/graylog

假設輸出類似以下內容:

drwxr-xr-x 2 root root 4096 Nov 21 14:00 /path/on/host/graylog

可以看到,該目錄歸屬於 root,而 Docker 容器內的 OpenSearch 默認運行用戶不是 root,因此無法寫入。

2. 修改宿主機目錄的權限

給該目錄賦予容器的用戶寫入權限:

  • 改變目錄的擁有者 找到容器內的 OpenSearch 用戶 UID 和 GID,然後修改宿主機路徑的擁有者:
docker exec -it <opensearch_container_id> id

輸出類似:

uid=1000 gid=1000(opensearch)

在宿主機執行:

sudo chown -R 1000:1000 /path/on/host/graylog

3. 重啟 OpenSearch 容器

權限修改後,重新啟動容器:

docker compose restart opensearch

4. 重新創建快照存儲庫

再次執行 API 請求來創建快照存儲庫:

curl -X PUT "http://localhost:9203/_snapshot/my_backup" -H 'Content-Type: application/json' -d'
{
"type": "fs",
"settings": {
"location": "/home/mmsd/graylog",
"compress": true
}
}'
留言
avatar-img
嘿洽啦
1會員
7內容數
軟體開發 & 金融投資的日常筆記
嘿洽啦的其他內容
2024/11/22
RabbitMQ 和 Kafka 是兩種流行的消息處理工具,各自擅長不同的應用場景。RabbitMQ 以低延遲和靈活的消息路由著稱,適合即時通信和微服務;Kafka 則專注於高吞吐量和數據持久化,適用於大規模數據流和實時分析。本文比較了它們的性能、擴展性和安全性,幫助你選擇最符合需求的解決方案。
Thumbnail
2024/11/22
RabbitMQ 和 Kafka 是兩種流行的消息處理工具,各自擅長不同的應用場景。RabbitMQ 以低延遲和靈活的消息路由著稱,適合即時通信和微服務;Kafka 則專注於高吞吐量和數據持久化,適用於大規模數據流和實時分析。本文比較了它們的性能、擴展性和安全性,幫助你選擇最符合需求的解決方案。
Thumbnail
2024/11/22
Message Queue 和 Streaming Process 是分佈式系統中最重要的技術之一,但它們的應用場景和特性有明顯區別。消息隊列適合可靠的低延遲通信,而流處理專注於大規模數據流的實時分析。本文深入比較兩者特性,幫助你根據需求選擇合適的技術,打造更高效的系統架構!
Thumbnail
2024/11/22
Message Queue 和 Streaming Process 是分佈式系統中最重要的技術之一,但它們的應用場景和特性有明顯區別。消息隊列適合可靠的低延遲通信,而流處理專注於大規模數據流的實時分析。本文深入比較兩者特性,幫助你根據需求選擇合適的技術,打造更高效的系統架構!
Thumbnail
2024/11/22
本文介紹如何使用 Docker 安裝 RabbitMQ,並將其與 Node.js 結合,實現訊息的生產與消費。這個架構可以應用於分佈式系統或事件驅動架構中,幫助讀者理解如何整合 RabbitMQ 與 Node.js。
Thumbnail
2024/11/22
本文介紹如何使用 Docker 安裝 RabbitMQ,並將其與 Node.js 結合,實現訊息的生產與消費。這個架構可以應用於分佈式系統或事件驅動架構中,幫助讀者理解如何整合 RabbitMQ 與 Node.js。
Thumbnail
看更多
你可能也想看
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
《轉轉生》(Re:INCARNATION)為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,結合拉各斯街頭節奏、Afrobeat/Afrobeats、以及約魯巴宇宙觀的非線性時間,建構出關於輪迴的「誕生—死亡—重生」儀式結構。本文將從約魯巴哲學概念出發,解析其去殖民的身體政治。
Thumbnail
《轉轉生》(Re:INCARNATION)為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,結合拉各斯街頭節奏、Afrobeat/Afrobeats、以及約魯巴宇宙觀的非線性時間,建構出關於輪迴的「誕生—死亡—重生」儀式結構。本文將從約魯巴哲學概念出發,解析其去殖民的身體政治。
Thumbnail
本文探討如何快速搭建 Graylog 和 Opensearch 以滿足專案需求,並詳細介紹日誌管理、手動備份、快照設定及自動備份的步驟。通過設置 Docker 環境,解決權限不足問題,確保系統的穩定備份與恢復功能。讀者將學會如何有效管理日誌數據和進行必要的快照操作,提升系統的可靠性和數據安全性。
Thumbnail
本文探討如何快速搭建 Graylog 和 Opensearch 以滿足專案需求,並詳細介紹日誌管理、手動備份、快照設定及自動備份的步驟。通過設置 Docker 環境,解決權限不足問題,確保系統的穩定備份與恢復功能。讀者將學會如何有效管理日誌數據和進行必要的快照操作,提升系統的可靠性和數據安全性。
Thumbnail
※ 必備開發環境: Node.Js環境。 Npm或yarn套件管理工具。 Docker倉庫套件:可以快速建立MySQL的資料庫。 下載 Docker Desktop:Docker Desktop for Windows。 ※ Docker快速建立MySQL資料庫,使用步驟: 準備Dock
Thumbnail
※ 必備開發環境: Node.Js環境。 Npm或yarn套件管理工具。 Docker倉庫套件:可以快速建立MySQL的資料庫。 下載 Docker Desktop:Docker Desktop for Windows。 ※ Docker快速建立MySQL資料庫,使用步驟: 準備Dock
Thumbnail
呈上篇,若是在大型系統中使用,重複被調用時,在每次紀錄時都會創建一個新的 FileHandler,這會導致日誌處理器不斷累積,從而使日誌重複記錄。 [Python]使用logging創建兩個以上的日誌紀錄 使用__new__的方法來避免重複調用 改良後 setup_logger 方法中創建一
Thumbnail
呈上篇,若是在大型系統中使用,重複被調用時,在每次紀錄時都會創建一個新的 FileHandler,這會導致日誌處理器不斷累積,從而使日誌重複記錄。 [Python]使用logging創建兩個以上的日誌紀錄 使用__new__的方法來避免重複調用 改良後 setup_logger 方法中創建一
Thumbnail
工具功能 (1) 彈性任意查詢檔案,如對來源目錄設定,檔案修改日期 設定,檔名特定字串或副檔名設定後,自動查出明細,並可展開至各階子目錄處理     (2) 依查詢後結果,可產出 LIST ,提供查詢結果之確認,再依此對檔案作複 (3) 可對檔案作移動,複製至別處,刪除處理,使電腦可騰出硬碟空間
Thumbnail
工具功能 (1) 彈性任意查詢檔案,如對來源目錄設定,檔案修改日期 設定,檔名特定字串或副檔名設定後,自動查出明細,並可展開至各階子目錄處理     (2) 依查詢後結果,可產出 LIST ,提供查詢結果之確認,再依此對檔案作複 (3) 可對檔案作移動,複製至別處,刪除處理,使電腦可騰出硬碟空間
Thumbnail
在進行Electron 專案時,後端夥伴選擇將 sqlite 資料庫跟專案檔打包成一個執行檔。在開發過程中,前端的操作經常會更動到 db的資料,此時 Git 就會追蹤到 db 的變化,因此前端在推送檔案到遠端 repo 前,會需要將其移出 Git 追蹤範圍,該怎麼做?
Thumbnail
在進行Electron 專案時,後端夥伴選擇將 sqlite 資料庫跟專案檔打包成一個執行檔。在開發過程中,前端的操作經常會更動到 db的資料,此時 Git 就會追蹤到 db 的變化,因此前端在推送檔案到遠端 repo 前,會需要將其移出 Git 追蹤範圍,該怎麼做?
Thumbnail
GitLab為程式碼管理倉庫,且從8.0開始提供CI/CD。 安裝 更新套件索引 sudo apt update 安裝postfix sudo apt install ca-certifi​cates curl openssh-server postfix 切換目錄 cd /t
Thumbnail
GitLab為程式碼管理倉庫,且從8.0開始提供CI/CD。 安裝 更新套件索引 sudo apt update 安裝postfix sudo apt install ca-certifi​cates curl openssh-server postfix 切換目錄 cd /t
Thumbnail
logging 是 Python 中用於記錄程式運行時信息的模組,它可以幫助你在開發過程中更好地管理和追蹤程式的執行狀態和錯誤信息。 本文較著重使用兩種不同的方法來創建日誌紀錄。 其他有關logging的教學,我推薦以下文章,他介紹蠻詳細的,我就不多贅述了。
Thumbnail
logging 是 Python 中用於記錄程式運行時信息的模組,它可以幫助你在開發過程中更好地管理和追蹤程式的執行狀態和錯誤信息。 本文較著重使用兩種不同的方法來創建日誌紀錄。 其他有關logging的教學,我推薦以下文章,他介紹蠻詳細的,我就不多贅述了。
Thumbnail
工作上需要使用到LDAP,但因為公司提供的Server不便,因此在本機建立LDAP伺服器和使用者是一個解決方案。本文記錄了安裝ApacheDS和Apache Directory Studio,以及建立連線、使用者和組織的步驟。
Thumbnail
工作上需要使用到LDAP,但因為公司提供的Server不便,因此在本機建立LDAP伺服器和使用者是一個解決方案。本文記錄了安裝ApacheDS和Apache Directory Studio,以及建立連線、使用者和組織的步驟。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News