Graylog: 處理保留政策

如何設定日誌保留政策

👋 歡迎來到 Stackhero 文件!

Stackhero 提供即用型的 Graylog cloud 解決方案,帶來多項好處,包括:

  • 包含無限和專用的 SMTP 電郵伺服器
  • 只需一鍵即可輕鬆更新
  • 使用 HTTPS 保護的可自訂域名(例如,https://logs.your-company.com)。
  • 專用私有 VM提供的最佳性能和強大安全性

節省時間簡化您的生活:只需 5 分鐘即可嘗試 Stackhero 的 Graylog cloud hosting 解決方案!

保留政策(Retention)定義了在 OpenSearch 資料庫中儲存的訊息數量。您可以根據訊息數量、最大保存時間或總儲存容量來設定保留政策。

例如,您可以選擇保留過去 365 天的訊息、最多保留 2 億條訊息,或預留總共 400 GB 的儲存空間。

在設定保留政策之前,了解 Graylog 和 OpenSearch 所使用的索引運作方式非常重要。可以將索引想像成實體容器。Graylog 會「打開」一個容器(即一個索引),並將收到的訊息放入其中。當這個容器的配額被超過時,該容器會被關閉、存放到架上,然後為後續訊息開啟一個新容器。

您可以根據不同的標準來設定這個配額:

  1. 訊息數量:「每個容器最多保留 2,000 萬條訊息,然後啟動新容器。」
  2. 時間限制:「每個容器使用 10 天,然後切換到新容器。」
  3. 容量限制:「每個容器儲存 20 GB,然後換下一個。」

同時也會設定可存放在架上的最大容器數量。如果超過這個數量,最舊的容器會自動被刪除。例如,若您設定最多 20 個容器,但架上已有 22 個,則最舊的 2 個容器會被移除。

在這個比喻中,容器代表索引,架子代表 OpenSearch,而最大數量則是允許的索引數量。

Graylog 提供三種保留策略:

  1. 「Index time」:定義每個索引中訊息的最大保存天數,例如每個索引 14 天。
  2. 「Index message count」:設定每個索引的最大訊息數,例如每個索引 2,000 萬條訊息。
  3. 「Index size」:限制每個索引的最大容量,例如每個索引 40 GB。

您可以根據實際需求選擇其中一種策略。例如,選擇「Index time」可以確保您始終擁有過去 X 天的日誌。

請務必準確評估您的磁碟儲存需求。

例如,若您每天儲存 1 GB 日誌並希望保留過去 365 天的日誌,則需要 365 GB 的磁碟空間。請記得還需預留額外的運作空間(詳見下文)。

Graylog 預設將索引數量限制為 20。您可以根據需求調整這個數值。例如,若您想保留過去 365 天的日誌,可以將 365 天平均分配到 20 個索引,即每個索引約 19 天。

其他策略也可以用類似方式計算:

  1. 「Index message count」策略:若要保留 2 億條訊息,最多 20 個索引,則每個索引需保留 1,000 萬條訊息(2 億 ÷ 20)。
  2. 「Index size」策略:若要保留 400 GB 日誌,最多 10 個索引,則每個索引需 40 GB(400 GB ÷ 10)。

建議您始終預留至少 15 GB 的磁碟空間給日誌、Graylog 的 journal 及 MongoDB 資料。

如果磁碟空間用盡,OpenSearch 會停止運作,您可能需要升級到更大容量的實例。

要設定保留政策,請進入 Graylog 介面。在「System」選單下選擇「Indices」,然後在「Default index set」點擊「Edit」按鈕。

以下範例設定了最多 27 個索引,每個索引保留 14 天的日誌。這樣可大約保留一年的日誌(378 天)。

我們不建議每個索引保留超過 14 天的訊息。

Retention configuration to keep logs for a yearRetention configuration to keep logs for a year

當選擇「Index time」作為輪替政策時,您需要使用 ISO8601 Duration 標準來定義保存期間。

例如,「P7D」代表 7 天,「P14D」代表 14 天,依此類推。

如果您想進一步了解索引,強烈建議您參閱 官方文件

有時 OpenSearch 會切換到只讀模式,您可能會遇到以下錯誤:

  1. "Flood stage disk watermark exceeded, all indices on this node will be marked read-only"
  2. "FORBIDDEN/12/index read-only / allow delete (api)"

這些錯誤是 OpenSearch 在磁碟空間嚴重不足時的保護機制。當可用磁碟空間低於 7 GB 時,OpenSearch 會將索引設為只讀,以防止資料損毀。

遇到這些錯誤時,您有兩個選擇:

  1. 重新設定保留政策以減少保留的日誌數量。調整政策後,刪除最舊的索引以釋放磁碟空間,讓 OpenSearch 回復為可讀寫模式。請注意,刪除索引會導致該索引內的所有資料永久遺失。
  2. 升級到更大磁碟容量的實例。在 Stackhero 控制台只需一鍵即可升級,實例會自動重啟並擁有更多磁碟空間,OpenSearch 也會自動回復為可讀寫模式。