LogStash管道配置文件結構詳解
概述
參考文檔:
LogStash 是 Elastic Stack 中的數(shu)據(ju)(ju)處(chu)理(li)引擎(qing),用于收集、處(chu)理(li)和轉發日志(zhi)數(shu)據(ju)(ju)。其配置文件(jian)是驅(qu)動 LogStash 工(gong)作的核心。
配置文件基本結構
LogStash 配置文件采用簡潔的(de) DSL(領域(yu)特定語言(yan)),主要(yao)由三大核心(xin)區塊(kuai)組成:
- input:定義數據來源
- filter:定義數據處理邏輯(可選)
- output:定義數據輸出目標
# 這是注釋,input定義數據來源
input {
...
}
# filter:定義數據處理邏輯(可選)
filter {
...
}
# output:定義數據輸出目標
output {
...
}
配置文件語法規則:
- 每行以key => value格式定義配置項
- 使用#添加注釋
- 區塊通過縮進或{}包裹(推薦使用{})
示例
插件配(pei)置:下面輸入(ru)部分配(pei)置了(le)兩個文(wen)件輸入(ru)
input {
file {
path => "/var/log/messages"
type => "syslog"
}
file {
path => "/var/log/apache/access.log"
type => "apache"
}
}
值類型設置
插(cha)件可以要(yao)求設置的值必須是特定類型,例如布(bu)爾值、列表或哈希值。支持以下值類型。
- List
它本身不是一種類型,而是一種屬性類型
path => [ "/var/log/messages", "/var/log/*.log" ]
uris => [ "//elastic.co", "//example.net" ]
- Boolean
布爾值必須是true或false
ssl_enable => true
- Bytes
字節字段是一個字符串字段,表示有效的字節單位。它方便在插件選項中聲明具體的大小。支持國際單位制 (SI) 和二進制 (Binary) 單位。二進制單位以 1024 為基數,國際單位制單位以 1000 為基數。此字段不區分大小寫,并且允許在值和單位之間使用空格。如果未指定單位,則整數字符串表示字節數
my_bytes => "1113" # 1113 bytes
my_bytes => "10MiB" # 10485760 bytes
my_bytes => "100kib" # 102400 bytes
my_bytes => "180 mb" # 180000000 bytes
- Codec
編解碼器是用于表示數據的 Logstash 編解碼器的名稱。編解碼器可用于輸入和輸出。
輸(shu)入編(bian)解碼器(qi)(qi)提供了(le)一種便捷(jie)的(de)方(fang)式(shi),可以(yi)在數(shu)據進(jin)(jin)入輸(shu)入之(zhi)前對其(qi)(qi)進(jin)(jin)行(xing)解碼。輸(shu)出(chu)編(bian)解碼器(qi)(qi)提供了(le)一種便捷(jie)的(de)方(fang)式(shi),可以(yi)在數(shu)據離開輸(shu)出(chu)之(zhi)前對其(qi)(qi)進(jin)(jin)行(xing)編(bian)碼。使用輸(shu)入或輸(shu)出(chu)編(bian)解碼器(qi)(qi),無需在 Logstash 管道中單獨添(tian)加過濾器(qi)(qi)。
codec => "json"
- Hash
哈希是按格式指定的鍵值對的集合"field1" => "value1"。請注意,多個鍵值條目用空格而不是逗號分隔。
match => {
"field1" => "value1"
"field2" => "value2"
...
}
# 也可以寫成一行
match => { "field1" => "value1" "field2" => "value2" }
- Number
數字必須是有效的數值(浮點數或整數)。
port => 33
本文來自博客園,作者:huangSir-devops,轉載請注明原文鏈接://www.xtjzw.net/huangSir-devops/p/18929387,微信Vac666666,歡(huan)迎(ying)交流
