Logstash 參考指南(logstash.yml)

logstash.yml

你能夠在Logstash設置文件logstash.yml中設置選項來控制Logstash執行,例如,你能夠指定管道設置、配置文件的位置、日誌記錄選項和其餘設置。當你運行Logstash時,logstash.yml文件中的大多數設置均可以做爲命令行標誌使用,在命令行中設置的任何標誌都會覆蓋logstash.yml文件中的相應設置。html

logstash.yml文件是用YAML編寫的,它的位置因平臺而異(參見Logstash目錄佈局),你能夠以層次結構形式指定設置或使用平面鍵,例如,要使用分層表單設置管道批處理大小和批延遲,你須要指定:node

pipeline:
  batch:
    size: 125
    delay: 50

要表示與平面鍵相同的值,須要指定:json

pipeline.batch.size: 125
pipeline.batch.delay: 50

logstash.yml文件還支持bash風格的環境變量插值設置值。segmentfault

pipeline:
  batch:
    size: ${BATCH_SIZE}
    delay: ${BATCH_DELAY:50}
node:
  name: "node_${LS_NODE_NAME}"
path:
   queue: "/tmp/${QUEUE_DIR:queue}"

注意,${VAR_NAME:default_value}表示法是受支持的,在上面的示例中,它設置了一個默認的批延遲50和一個默認的path.queue/tmp/queue的。bash

模塊也能夠在logstash.yml文件中指定,模塊定義將具備這種格式:jvm

modules:
  - name: MODULE_NAME1
    var.PLUGIN_TYPE1.PLUGIN_NAME1.KEY1: VALUE
    var.PLUGIN_TYPE1.PLUGIN_NAME1.KEY2: VALUE
    var.PLUGIN_TYPE2.PLUGIN_NAME2.KEY1: VALUE
    var.PLUGIN_TYPE3.PLUGIN_NAME3.KEY1: VALUE
  - name: MODULE_NAME2
    var.PLUGIN_TYPE1.PLUGIN_NAME1.KEY1: VALUE
    var.PLUGIN_TYPE1.PLUGIN_NAME1.KEY2: VALUE
若是使用命令行標誌 --modules,則忽略在 logstash.yml文件中定義的任何模塊。

logstash.yml文件包括如下設置,若是你使用的是X-Pack,請參閱Logstash中的X-Pack設置ide

設置 描述 默認值
node.name 節點的描述性名稱 機器的主機名
path.data Logstash及其插件用於任何持久需求的目錄 LOGSTASH_HOME/data
pipeline.id 管道的ID main
pipeline.workers 將並行執行管道的過濾和輸出階段的工人數量,若是你發現事件正在備份,或者CPU沒有飽和,請考慮增長這個數字,以更好地利用機器處理能力 主機CPU核心的數量
pipeline.batch.size 在嘗試執行過濾器和輸出以前,單個工做線程將從輸入中收集的最大事件數,更大的批處理大小一般更高效,但代價是增長內存開銷,你可能須要增長jvm.options配置文件中的JVM堆空間,有關更多信息,請參閱Logstash配置文件 125
pipeline.batch.delay 當建立管道事件批處理時,在向管道工做人員發送一個較小的批處理以前,等待每一個事件的時間爲多少毫秒 50
pipeline.unsafe_shutdown 當設置爲true時,即便內存中仍然存在遊離事件,也會在關閉期間強制Logstash退出,默認狀況下,Logstash將拒絕退出,直到全部接收到的事件都被推送到輸出,啓用此選項可能致使關閉期間的數據丟失 false
path.config 主管道的Logstash配置路徑,若是指定目錄或通配符,配置文件將按字母順序從目錄中讀取 特定於平臺的,請參閱Logstash目錄佈局
config.string 包含要用於主管道的管道配置的字符串,使用與配置文件相同的語法 None
config.test_and_exit 當設置爲true時,檢查配置是否有效,而後退出,注意,在此設置中沒有檢查grok模式的正確性,Logstash能夠從一個目錄中讀取多個配置文件,若是你把這個設置和log.level: debug結合起來,Logstash將對合並後的配置文件進行日誌記錄,並用它來自的源文件註解每一個配置塊 false
config.reload.automatic 當設置爲true時,按期檢查配置是否已更改,並在更改配置時從新加載配置,這也能夠經過SIGHUP信號手動觸發 false
config.reload.interval Logstash多久檢查一次配置文件以查看更改 3s
config.debug 當設置爲true時,將完整編譯的配置顯示爲debug日誌消息,你還必須設置log.level: debug,警告:日誌消息將包含傳遞給插件配置的任意密碼選項,可能會致使明文密碼出如今日誌中! false
config.support_escapes 當設置爲true時,引號中的字符串將處理如下轉義序列:\n變成文字換行符(ASCII 10),\r變成文字回車(ASCII 13),\t變成文字製表符(ASCII 9),\\變成字面反斜槓\\"變成一個文字雙引號,\'變成文字引號 false
modules 當配置時,modules必須位於上表中描述的嵌套YAML結構中 None
queue.type 用於事件緩衝的內部隊列模型,爲基於內存中的遺留隊列指定memory,或者persisted基於磁盤的ACKed隊列(持久隊列 memory
path.queue 啓用持久隊列時存儲數據文件的目錄路徑(queue.type: persisted path.data/queue
queue.page_capacity 啓用持久隊列時使用的頁面數據文件的大小(queue.type: persisted),隊列數據由分隔成頁面的僅追加的數據文件組成 64mb
queue.max_events 啓用持久隊列時隊列中未讀事件的最大數量(queue.type: persisted 0(無限)
queue.max_bytes 隊列的總容量(字節數),確保磁盤驅動器的容量大於這裏指定的值,若是queue.max_eventsqueue.max_bytes都指定,Logstash使用最早達到的任何標準 1024mb(1g)
queue.checkpoint.acks 當啓用持久隊列時,在強制執行檢查點以前的最大ACKed事件數(queue.type: persisted),指定queue.checkpoint.acks: 0設置此值爲無限制 1024
queue.checkpoint.writes 啓用持久隊列時強制執行檢查點以前的最大寫入事件數(queue.type: persisted),指定queue.checkpoint.writes: 0設置此值爲無限制 1024
queue.drain 啓用時,Logstash會一直等到持久隊列耗盡後才關閉 false
dead_letter_queue.enable 標記指示Logstash以插件支持的DLQ特性 false
dead_letter_queue.max_bytes 每一個dead letter隊列的最大大小,若是條目將增長dead letter隊列的大小,超過此設置,則刪除條目 1024mb
path.dead_letter_queue 存儲dead letter隊列數據文件的目錄路徑 path.data/dead_letter_queue
http.host 指標REST端點的綁定地址 "127.0.0.1"
http.port 指標REST端點的綁定端口 9600
log.level 日誌級別,有效的選項是:fatalerrorwarninfodebugtrace info
log.format 日誌格式,設置爲json日誌以JSON格式,或plain使用Object#.inspect plain
path.logs Logstash將其日誌寫到的目錄 LOGSTASH_HOME/logs
path.plugins 哪裏能夠找到自定義插件,你能夠屢次指定此設置以包含多個路徑,插件應該在特定的目錄層次結構中:PATH/logstash/TYPE/NAME.rbTYPEinputsfiltersoutputscodecsNAME是插件的名稱 特定於平臺的,請參閱Logstash目錄佈局
相關文章
相關標籤/搜索