你能夠在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_events 和queue.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 |
日誌級別,有效的選項是:fatal 、error 、warn 、info 、debug 、trace |
info |
log.format |
日誌格式,設置爲json 日誌以JSON格式,或plain 使用Object#.inspect |
plain |
path.logs |
Logstash將其日誌寫到的目錄 | LOGSTASH_HOME/logs |
path.plugins |
哪裏能夠找到自定義插件,你能夠屢次指定此設置以包含多個路徑,插件應該在特定的目錄層次結構中:PATH/logstash/TYPE/NAME.rb ,TYPE 是inputs 、filters 、outputs 或codecs ,NAME 是插件的名稱 |
特定於平臺的,請參閱Logstash目錄佈局 |