Logstash 參考指南(從命令行運行Logstash)

從命令行運行Logstash

要從命令行運行Logstash,請使用如下命令:node

bin/logstash [options]

命令行標記選項是你能夠指定它們來控制Logstash的執行,bin目錄的位置因平臺而異,查看Logstash目錄佈局以找到你係統上bin\Logstash的位置。shell

下面的示例運行Logstash配置,並加載mypipeline.conf文件中定義的Logstash的配置:segmentfault

bin/logstash -f mypipeline.conf

在命令行中設置的任何標誌都會覆蓋logstash.yml中的相應設置,但文件自己不會更改,對於後續的Logstash運行,它保持原樣。ruby

在測試Logstash時,指定命令行選項很是有用,可是在生產環境中,咱們建議你使用logstash.yml用於控制Logstash執行,使用設置文件使你更容易指定多個選項,而且它爲你提供了一個單一的、版本化的文件,你可使用該文件在每次運行時一致地啓動Logstash。jvm

命令行標記

Logstash有如下標記,你可使用--help標誌來顯示此信息。佈局

--node.name NAME測試

  • 指定此Logstash實例的名稱,若是沒有賦值,它將默認爲當前主機名。

-f, --path.config CONFIG_PATH插件

  • 從特定的文件或目錄加載Logstash配置,若是給定一個目錄,則該目錄中的全部文件將以字典順序鏈接,而後做爲一個配置文件進行解析,不支持屢次指定此標誌。若是屢次指定此標誌,Logstash使用最後一個事件(例如,-f foo -f bar-f bar相同))。
  • 你能夠指定通配符(globs),任何匹配的文件都將按照上面描述的順序加載,例如,可使用通配符特性按名稱加載特定文件:命令行

    bin/logstash --debug -f '/tmp/{one,two,three}'

    使用這個命令,Logstash鏈接三個配置文件:/tmp/one/tmp/two/tmp/three,並將它們解析爲一個配置。線程

-e, --config.string CONFIG_STRING

  • 使用給定的字符串做爲配置數據,語法與配置文件相同。若是沒有指定輸入,則使用如下做爲默認輸入:input { stdin { type => stdin } }而且若是沒有指定輸出,則使用如下做爲默認輸出:output { stdout { codec => rubydebug } },若是你但願使用這兩個默認值,請使用空字符串做爲-e標誌,默認爲nil

--modules

  • 啓動命名模塊,與-M選項一塊兒工做,爲指定模塊的默認變量賦值,若是--modules在命令行中使用,則logstash.yml中的任何模塊都將被忽略,那裏的任何設置也將被忽略。此標誌與-f-e標誌相互排斥,只能指定-f-e--modules之一,能夠經過用逗號分隔多個模塊,或者屢次調用--modules標誌來指定多個模塊。

-M, --modules.variable

  • 爲模塊的可配置選項分配一個值,爲Logstash變量賦值變量的格式是-M "MODULE_NAME.var.PLUGIN_TYPE.PLUGIN_NAME.KEY_NAME=value",對於其餘設置,它將是-M "MODULE_NAME.KEY_NAME.SUB_KEYNAME=value"-M標誌能夠根據須要屢次使用。若是沒有指定-M選項,那麼將使用該設置的默認值,-M標誌僅與--modules一塊兒使用,若是--modules標誌不存在,它將被忽略。

--pipeline.id ID

  • 設置管道的ID,默認爲main

-w, --pipeline.workers COUNT

  • 設置要運行的管道工人的數量,此選項設置將並行執行管道過濾器和輸出階段的工做人員數量。若是你發現事件正在備份,或者CPU沒有飽和,請考慮增長這個數字,以更好地利用機器處理能力,默認值是主機CPU內核的數量。

-b, --pipeline.batch.size SIZE

  • pipeline要工做的批處理大小,此選項定義單個工做線程在嘗試執行其過濾器和輸出以前將從輸入收集的最大事件數,默認值是125個事件。更大的批處理大小一般更高效,但代價是增長內存開銷,你可能須要增長jvm.options配置文件中的JVM堆空間,有關更多信息,請參閱Logstash配置文件

-u, --pipeline.batch.delay DELAY_IN_MS

  • 在建立pipeline批處理時,輪詢下一個事件時要等待多長時間,這個選項定義了在輪詢下一個事件時等待多長時間(以毫秒爲單位),而後將一個較小的批處理分派給過濾器和輸出,默認爲50ms。

--pipeline.unsafe_shutdown

  • 即便在內存中仍然存在運行中的事件,也要在關閉期間強制Logstash退出,默認狀況下,Logstash將拒絕退出,直到全部接收到的事件都被推送到輸出,啓用此選項可能致使關閉期間的數據丟失。

--path.data PATH

  • 這應該指向一個可寫的目錄,Logstash會在須要存儲數據時使用此目錄,插件也能夠訪問這個路徑,默認值是Logstash主目錄下的data目錄。

-p, --path.plugins PATH

  • 找到自定義插件的路徑,這個標誌能夠屢次使用以包含多個路徑,插件應該在特定的目錄層次結構中:PATH/logstash/TYPE/NAME.rb,其中TYPEinputsfiltersoutputscodecs,而且NAME是插件的名稱。

-l, --path.logs PATH

  • 將內部日誌寫入到的目錄。

--log.level LEVEL

  • 設置Logstash的日誌級別,可能的值是:

    • fatal:記錄很是嚴重的錯誤消息,這一般會致使應用程序停止
    • error:錯誤日誌
    • warn:警告日誌
    • info:詳細日誌信息(這是默認信息)
    • debug:調試日誌信息(針對開發人員)
    • trace :記錄除調試信息以外的細粒度消息

--config.debug

  • 將完整編譯的配置顯示爲debug日誌消息(還必須有--log.level=debug啓用),警告:日誌消息將包含傳遞給插件configs的任意密碼選項,可能會致使明文密碼出如今日誌中!

-i, --interactive SHELL

  • 切換到shell,而不是正常運行,有效的shell是「irb」和「pry」。

--V, --version

  • 發出Logstash及其好友的版本,而後退出。

-t, --config.test_and_exit

  • 檢查配置是否有效,而後退出,注意,這個標誌沒有檢查grok模式的正確性。Logstash能夠從一個目錄中讀取多個配置文件,若是你把這個標記和--log.level=debug結合起來,Logstash會對合並後的配置文件進行日誌記錄,並對每一個配置塊使用源文件進行註解。

-r, --config.reload.automatic

  • 監控配置更改,並在更改配置時從新加載,注意:使用SIGHUP手動重載配置,默認值爲false。

--config.reload.interval RELOAD_INTERVAL

  • 爲更改而多久輪詢一次配置位置,默認值是「3s」。

--http.host HTTP_HOST

  • Web API綁定的host,此選項指定指標REST端點的綁定地址,默認值是「127.0.0.1」。

--http.port HTTP_PORT

  • Web API http端口,此選項指定指標REST端點的綁定端口,默認值是9600-9700,此設置接受9600-9700格式的範圍,Logstash將獲取第一個可用端口。

--log.format FORMAT

  • 指定Logstash是用JSON形式(每行一個事件)仍是用純文本(使用Ruby的對象#inspect)寫入本身的日誌,默認值是「plain」。

--path.settings SETTINGS_DIR

  • 設置包含logstash.yml設置文件和log4j日誌記錄配置的目錄,這也能夠經過LS_SETTINGS_DIR環境變量設置,默認值是Logstash下的config目錄。

-h, --help

  • 打印幫助。
相關文章
相關標籤/搜索