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 文件方式設置。同時為了反映命令行配置參數的層
級關系,參數也都改成用.而不是-了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM