天天看點

Logstash學習-配置文法

區段(section)

Logstash 用{}來定義區域。區域内可以包括插件區域定義,你可以在一個區域定義多個插件,插件區域内則可以定義鍵值對設定。

資料類型

Logstash支援少量的資料值類型:

  • bool  debug => true
  • string  host => "localhost"
  • number  port => 80
  • array  match => ["hello","message"]
  • hash  options => {name => "xiaoming", age => 55}

注意:地域1.2.0的版本哈希文法跟數組一樣。

字段引用

字段是 Logstash::Event 對象的屬性。事件就像一個哈希一樣,是以可以想想字段就像一個鍵值對。

如果想在Logstash配置中使用字段的值,隻需要把字段的名字解除安裝中括号[]裡就行了,這就較字段引用。對于潛逃字段,每層字段名都解除安裝[]裡就可以。例:[object][field]

小貼士:

Logstash的數組也支援倒序下表,即[geoip][location][-1]可以擷取數組最後一個元素的值;

Logstash還支援變量内插,在字元串裡使用字段引用的方法是這樣:"the logitude is %{[geoip][location][0]}"

條件判斷(condition)

Logstash從1.3.0版開始支援條件判斷和表達式,支援下面這些操作符:

  • == (等于), != (不等于), < (小于), > (大于), <= (小于等于), >= (大于等于)
  • =~ (比對正則), !~ (不比對正則)
  • in (包含), not in (不包含)
  • and (與), or (或), nand(非與), xor(非或)
  • () (複合表達式), !() (對複合表達式結果取反)

指令行參數

-e 執行,這個參數的預設值是:input{stdin{}}output{stdout{}}

--config 或 -f 配置檔案,後跟參數類型可以是一個字元串的配置(像Hello World例子一樣)或全路徑檔案名或全路徑路徑(如:/etc/logstash.d/,logstash會自動讀取/etc/logstash.d/目錄下所有*.conf 的文本檔案,然後在自己記憶體裡拼接成一個完整的大配置檔案再去執行)

注意:logstash列出目錄下所有檔案時,是字母排序的,而logstash配置段的filter和output都是順序執行,是以順序非常重要。

采用多檔案管理的使用者,推薦采用數字編号方式命名配置檔案,同時在配置中,嚴禁采用if判斷限定不同日志的動作。

--configtest 或 -t 測試

--log 或 -l 日志。logstash預設輸出日志到标準錯誤,生産環境下用此參數自定義

--pipeline-workers 或 -w 運作filter和output的pipeline線程數量,預設是CPU核數。

--pipeline-batch-size 或 -b

每個 Logstash pipeline 線程,在執行具體的 filter 和 output 函數之前,最多能累積

的日志條數。預設是 125 條。越大性能越好,同樣也會消耗越多的 JVM 記憶體。

--pipeline-batch-delay 或 -u

每個 Logstash pipeline 線程,在打包批量日志的時候,最多等待幾毫秒。預設是 5ms。

--pluginpath 或 -P

可以寫自己的插件,然後用 bin/logstash --pluginpath/path/to/own/plugins 加載它們。

--verbose

輸出一定的調試日志。

--debug

輸出更多的調試日志。

設定檔案

從 Logstash 5.0 開始,新增了 $LS_HOME/config/logstash.yml 檔案,可以将

所有的指令行參數都通過 YAML 檔案方式設定。同時為了反映指令行配置參數的層

級關系,參數也都改成用.而不是-了。

轉載于:https://www.cnblogs.com/GoQC/p/6202709.html