區段(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