相關網站:
1 github上Http output plugin的相關介紹和用法
input {
file {
path => ["/root/demo.log"] # 只使用絕對路徑。若是多個文件,使用數組方式進行具體說明。
start_position => "beginning" # 從頭開始讀取文件數據,讀到最後一行變爲tail -f狀態。若沒有這行,默認從結束位置開始讀取數據
}
}
filter {
grok{ # 自定義grok,如果日誌中有時間,將匹配結果存入log_timestamp,其餘字段,存入[fields][*]下
match => {
"message" => "time=\"%{NOTSPACE:log_timestamp}\" level=%{NOTSPACE:[level]} msg=\"%{GREEDYDATA:[msg]}\" file=\"%{NOTSPACE:[file]}\""}
}
}
output {
http {
http_method => "post" # 值可以是put或者post,默認沒有設置
url => "http://100.73.18.12:13345/api/objs/monitor/gateway/receive" # 接收數據的地址,這裏可以通過mock一個server端進行數據的接收,同時也是可以通過下面的stdout進行輸出查看(兩邊的數據略有差距)
format => "json_batch" # 格式化輸出方式,json_batch表示輸出json數組
mapping => {
"name" => "test_logstash"
"type" => "GAUGE"
"fields" => {
"level" => "%{[level]}"
"file" => "%{[file]}" }
}
}
stdout { # 標準輸出,用於終端輸出調試
codec => rubydebug { # 輸出爲json字符串。json換爲rubydebug,數據會按照ruby格式輸出
}
}
}