Graylog: 處理保留政策
如何設定日誌保留政策
👋 歡迎來到 Stackhero 文件!
Stackhero 提供一個即用型的 Graylog cloud 解決方案,帶來多項好處,包括:
- 包含無限和專用的 SMTP 電郵伺服器。
- 只需一鍵即可輕鬆更新。
- 使用 HTTPS 保護的可自訂域名(例如,https://logs.your-company.com)。
- 由專用私有 VM提供的最佳性能和強大安全性。
節省時間並簡化您的生活:只需 5 分鐘即可嘗試 Stackhero 的 Graylog cloud hosting 解決方案!
保留政策(Retention)決定了在 OpenSearch 資料庫中儲存的訊息數量。您可以根據訊息數量、最大保存天數或總儲存容量來設定保留政策。
例如,您可以選擇保留過去 365 天的訊息、最多保留 2 億則訊息,或預留總共 400 GB 的儲存空間。
認識索引(Indices)
在設定保留政策之前,了解 Graylog 與 OpenSearch 所使用的索引運作方式非常重要。可以將索引想像成實體容器。Graylog 會「開啟」一個容器(即一個索引),並將收到的訊息放入其中。當這個容器的配額被超過時,該容器就會被關閉、放到「架子」上,然後開啟一個新的容器來存放後續訊息。
您可以根據不同的條件來設定這個配額:
- 訊息數量:例如「每個容器最多保留 2,000 萬則訊息,然後開啟新容器」。
- 時間限制:例如「每個容器使用 10 天,之後切換到新容器」。
- 容量限制:例如「每個容器儲存 20 GB,然後換下一個」。
同時也會設定可放在「架子」上的最大容器數量。如果超過這個數量,最舊的容器會自動被刪除。例如,若您設定最多 20 個容器,但實際上有 22 個,則最舊的 2 個容器會被移除。
在這個比喻中,容器代表索引,架子代表 OpenSearch,而最大數量則是允許的索引數量。
選擇輪替策略(Rotation Strategy)
Graylog 提供三種保留策略:
- 「Index time」:設定每個索引保留訊息的最長時間,例如每個索引 14 天。
- 「Index message count」:設定每個索引的最大訊息數,例如每個索引 2,000 萬則訊息。
- 「Index size」:限制每個索引的最大容量,例如每個索引 40 GB。
您可以根據實際需求選擇其中一種策略。例如,選擇「Index time」可以確保您始終擁有過去 X 天的日誌。
請務必準確評估您的磁碟空間需求。
例如,如果您每天儲存 1 GB 的日誌,並決定保留過去 365 天的日誌,則需要 365 GB 的磁碟空間。請記得還要預留額外的作業空間(詳見下方說明)。
設定保留參數
Graylog 預設將索引數量限制為 20。您可以根據需求調整這個數值。例如,若您想保留過去 365 天的日誌,可以將 365 天平均分配到 20 個索引,約每個索引 19 天。
其他策略也可以用類似方式計算:
- 「Index message count」策略:若要保留 2 億則訊息,且最多 20 個索引,則每個索引約 1,000 萬則訊息。
- 「Index size」策略:若要保留 400 GB 日誌,且最多 10 個索引,則每個索引約 40 GB。
我們建議您至少保留 15 GB 的可用磁碟空間,以供日誌、Graylog journal 及 MongoDB 資料使用。
如果可用磁碟空間用盡,OpenSearch 將會停止運作,您可能需要升級到更大的實例。
設定保留政策
要設定保留政策,請進入 Graylog 介面。在「System」選單下選擇「Indices」,然後在「Default index set」區塊點擊「Edit」按鈕。
以下範例設定了最多 27 個索引,每個索引保留 14 天的日誌。這樣的配置大約可以保留一年的日誌(378 天)。
我們不建議每個索引保留超過 14 天的訊息。
Retention configuration to keep logs for a year
當您選擇「Index time」作為輪替政策時,必須使用 ISO8601 Duration 標準來定義期間。
例如,「P7D」代表 7 天,「P14D」代表 14 天,依此類推。
進階閱讀
如果您想進一步了解索引,強烈建議您參考 官方文件。
處理 OpenSearch 只讀索引錯誤
有時 OpenSearch 會進入只讀模式,您可能會遇到以下錯誤:
- "Flood stage disk watermark exceeded, all indices on this node will be marked read-only"
- "FORBIDDEN/12/index read-only / allow delete (api)"
這些錯誤是 OpenSearch 為了保護資料,在磁碟空間嚴重不足時啟動的保護機制。當可用磁碟空間低於 7 GB 時,OpenSearch 會將索引設為只讀,以避免資料損毀。
遇到這些錯誤時,您有兩個選擇:
- 重新調整您的保留政策,減少保留的日誌數量。調整後,請刪除最舊的索引以釋放磁碟空間,讓 OpenSearch 能恢復為可讀寫模式。請注意,刪除索引會導致該索引內所有資料永久遺失。
- 升級到更大磁碟空間的實例。只需在 Stackhero 控制台上一鍵操作,實例就會重新啟動並擁有更多磁碟空間,OpenSearch 也會自動恢復為可讀寫模式。