[英]Logstash filter according to fields source declare in filebeat config
input {
beats
{
port => 5042
}
}
output {
if [source] == "access"
{
elasticsearch {
hosts => ["16.113.56.102:9200"]
index => "logstsh-access-nginxlogs-%{+YYYY.MM.dd}"
}
}
else if [source] == "error"
{
elasticsearch {
hosts => ["16.113.56.102:9200"]
index => "logstsh-error-nginxlogs-%{+YYYY.MM.dd}"
}
}
}
我想使用字段源和在 filebeat 輸入中聲明的字段分離日志文件,因為從 kibana 端,日志的源是訪問/錯誤,但是,logstash 不會將日志傳遞給彈性搜索,我想知道這是聲明來源的正確方法嗎? 我嘗試在輸入部分使用絕對,它就像一個魅力,所以我認為問題出在輸入 filebeat 或 logstash 上。
首先,如果你不需要將數據發送到多個elasticsearch集群,我建議你使用一個output 。 例如:
output {
elasticsearch {
hosts => ["16.113.56.102:9200"]
index => "logstash-%{source}-nginxlogs-%{+YYYY.MM.dd}"
}
}
}
在 filebeat 中,您可以使用處理器將字段添加到每個文檔中
processors:
- add_fields:
target: project
fields:
name: myproject
id: '574734885120952459'
參考: https://www.elastic.co/guide/en/beats/filebeat/current/add-fields.html
注意:要了解是否因為 Logstash 問題,您可以使用以下方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.