專案

一般

配置概況

Index Model

Graylog透明地管理一組或多組Elasticsearch索引以優化搜尋和分析操作,從而提高速度並降低資源消耗,為了能夠管理具有不同映射、分析器和複製設定的索引,Graylog使用Index sets,它是所有這些設定的抽象。

每個Index set都包含Graylog建立、管理和填入Elasticsearch索引以及處理特定要求的索引輪替和資料保留所需的設定,Graylog為每個Index set維護一個索引別名,該別名始終指向該Index set中的目前正在活動中的索引,在滿足配置的輪替標準(文件數量、索引大小或索引壽命)之前,始終只有一個索引可以寫入新訊息。

後台任務會不斷檢查是否符合Index sets的輪換標準,並在發生這種情況時建立並準備新索引。一旦索引準備好,索引別名就會自動切換到。這意味著所有Graylog節點都可以將訊息寫入別名,甚至不需要知道Index set目前活動中的索引是哪一個。

幾乎每個讀取操作都是在給定的時間範圍內執行。由於Graylog會按順序將messages寫入Elasticsearch,因此它可以保留有關每個索引涵蓋的時間範圍資訊。當提供了時間範圍時,它會選擇要查詢的索引清單,如果沒有提供時間範圍,則搜尋它所知道的所有索引。

驅逐索引和訊息

Graylog在索引集中管理最大索引數量,根據配置的保留策略,當達到配置的最大索引數時,索引集中最舊的索引將自動關閉、刪除或匯出,刪除是由Graylog主節點在後台執行緒中執行的,該執行緒不斷將索引數量與配置的最大值進行比較:

INFO : org.graylog2.indexer.rotation.strategies.AbstractRotationStrategy - Deflector index <graylog_95> should be rotated, Pointing deflector to new index now!
INFO : org.graylog2.indexer.MongoIndexSet - Cycling from <graylog_95> to <graylog_96>.
INFO : org.graylog2.indexer.MongoIndexSet - Creating target index <graylog_96>.
INFO : org.graylog2.indexer.indices.Indices - Created Graylog index template "graylog-internal" in Elasticsearch.
INFO : org.graylog2.indexer.MongoIndexSet - Waiting for allocation of index <graylog_96>.
INFO : org.graylog2.indexer.MongoIndexSet - Index <graylog_96> has been successfully allocated.
INFO : org.graylog2.indexer.MongoIndexSet - Pointing index alias <graylog_deflector> to new index <graylog_96>.
INFO : org.graylog2.system.jobs.SystemJobManager - Submitted SystemJob <f1018ae0-dcaa-11e6-97c3-6c4008b8fc28> [org.graylog2.indexer.indices.jobs.SetIndexReadOnlyAndCalculateRangeJob]
INFO : org.graylog2.indexer.MongoIndexSet - Successfully pointed index alias <graylog_deflector> to index <graylog_96>.

Index set配置

Index set具有Graylog如何將訊息儲存到Elasticsearch叢集相關的各種不同設定。

  • 標題:Index set的名稱。
  • 描述:Index set的描述。
  • 索引前綴:用於由Index set管理Elasticsearch索引的唯一前綴。前綴必須以字母或數字開頭,且只能包含字母、數字_、-和+。,索引別名將被相應命名,例如,graylog_deflector(如果索引前綴是graylog
  • 分析器:(預設值:standard)Elasticsearch的Index set 分析器
  • 索引分片:(預設值:4)每個索引使用的Elasticsearch分片數量。
  • 索引副本:(預設值:0)每個索引使用的Elasticsearch副本數。
  • 最大限度(number of snippets):(預設值:1)索引優化(強制合併)之後後每個Elasticsearch索引的最大段數,請參閱段落合併以了解詳細資訊。
  • 輪換後停用索引優化:索引輪替後停用Elasticsearch索引優化(強制合併)。僅當您在優化過程中Elasticsearch叢集的效能出現嚴重問題時才啟動此選項。

索引輪換

  • 訊息計數:寫入特定數量的訊息後輪換索引。
  • 索引大小:在達到磁碟上的近似大小(最佳化之前)後輪換索引。
  • 索引時間:在特定時間(例如 1 小時或 1 週)後輪換索引。

索引保留

  • 刪除:在Elasticsearch裡 刪除索引以最大限度地減少資源消耗。
  • 關閉:在Elasticsearch裡 關閉索引以減少資源消耗。
  • 存檔:商業功能,請參閱 存檔

維護

保持索引範圍同步

建立新索引後,Graylog 將自動計算索引範圍,假如有關索引時間範圍的元資料不同步,Graylog會在Web介面中通知您。如果手動刪除索引或刪除已「關閉」索引中的訊息,則可能會發生這種情況。

系統將讓您重新產生所有時間範圍資訊。這可能需要幾秒鐘,但對於Graylog來說是一項簡單的任務,在手動刪除索引或進行其他可能導致同步問題的變更後,您可以輕鬆地自行重建資訊:

$ curl -XPOST http://127.0.0.1:9000/api/system/indices/ranges/rebuild

這會觸發一個系統工作:

INFO : org.graylog2.indexer.ranges.RebuildIndexRangesJob - Recalculating index ranges.
INFO : org.graylog2.system.jobs.SystemJobManager - Submitted SystemJob <9b64a9d0-dcac-11e6-97c3-6c4008b8fc28> [org.graylog2.indexer.ranges.RebuildIndexRangesJob]
INFO : org.graylog2.indexer.ranges.RebuildIndexRangesJob - Recalculating index ranges for index set Default index set (graylog2_*): 5 indices affected.
INFO : org.graylog2.indexer.ranges.MongoIndexRangeService - Calculated range of [graylog_96] in [7ms].
INFO : org.graylog2.indexer.ranges.RebuildIndexRangesJob - Created ranges for index graylog_96: MongoIndexRange{id=null, indexName=graylog_96, begin=2017-01-17T11:49:02.529Z, end=2017-01-17T12:00:01.492Z, calculatedAt=2017-01-17T12:00:58.097Z, calculationDuration=7, streamIds=[000000000000000000000001]}
[...]
INFO : org.graylog2.indexer.ranges.RebuildIndexRangesJob - Done calculating index ranges for 5 indices. Took 44ms.
INFO : org.graylog2.system.jobs.SystemJobManager - SystemJob <9b64a9d0-dcac-11e6-97c3-6c4008b8fc28> [org.graylog2.indexer.ranges.RebuildIndexRangesJob] finished in 46ms.

手動輪換活動中的索引

有時,你可能希望手動輪換活動中的索引,而不是等到滿足最新索引中配置的輪換條件,例如,如果你更改了索引映射或每個索引的分片數量,你可以針對Graylog主節點的REST API進行HTTP請求對或透過Web介面來執行此操作:

$ curl -XPOST http://127.0.0.1:9000/api/system/deflector/cycle

觸發此作業會產生類似以下的日誌輸出:

INFO : org.graylog2.rest.resources.system.DeflectorResource - Cycling deflector for index set <58501f0b4a133077ecd134d9>. Reason: REST request.
INFO : org.graylog2.indexer.MongoIndexSet - Cycling from <graylog_97> to <graylog_98>.
INFO : org.graylog2.indexer.MongoIndexSet - Creating target index <graylog_98>.
INFO : org.graylog2.indexer.indices.Indices - Created Graylog index template "graylog-internal" in Elasticsearch.
INFO : org.graylog2.indexer.MongoIndexSet - Waiting for allocation of index <graylog_98>.
INFO : org.graylog2.indexer.MongoIndexSet - Index <graylog_98> has been successfully allocated.
INFO : org.graylog2.indexer.MongoIndexSet - Pointing index alias <graylog_deflector> to new index <graylog_98>.
INFO : org.graylog2.system.jobs.SystemJobManager - Submitted SystemJob <024aac80-dcad-11e6-97c3-6c4008b8fc28> [org.graylog2.indexer.indices.jobs.SetIndexReadOnlyAndCalculateRangeJob]
INFO : org.graylog2.indexer.MongoIndexSet - Successfully pointed index alias <graylog_deflector> to index <graylog_98>.
INFO : org.graylog2.indexer.retention.strategies.AbstractIndexCountBasedRetentionStrategy - Number of indices (5) higher than limit (4). Running retention for 1 index.
INFO : org.graylog2.indexer.retention.strategies.AbstractIndexCountBasedRetentionStrategy - Running retention strategy [org.graylog2.indexer.retention.strategies.DeletionRetentionStrategy] for index <graylog_94>
INFO : org.graylog2.indexer.retention.strategies.DeletionRetentionStrategy - Finished index retention strategy [delete] for index <graylog_94> in 23ms.

回到頁首