filebeat采集到的日志数据传入logstash后如何放入不同的Hashmap
时间: 2023-05-23 16:02:16 浏览: 117
请使用logstash的filter插件,使用grok模式匹配日志数据并将它们放入不同的字段中,然后使用output插件将数据推送到不同的Hashmap中。具体可以参考以下配置:
filter {
grok {
match => { "message" => "%{TIMESTAMP_ISO8601:timestamp} %{LOGLEVEL:loglevel} %{GREEDYDATA:message}" }
}
}
output {
if [loglevel] == "INFO" {
elasticsearch {
hosts => ["localhost:9200"]
index => "info-%{+YYYY.MM.dd}"
}
} else if [loglevel] == "ERROR" {
mongodb {
uri => "mongodb://localhost:27017"
database => "errors"
collection => "logs"
}
} else {
kafka {
bootstrap_servers => "localhost:9092"
topic_id => "debug_logs"
}
}
}
上述配置将日志数据中的时间戳、日志级别和消息内容分别保存到timestamp、loglevel和message字段中。然后根据日志级别将数据推送到不同的目的地。比如,loglevel为INFO的数据会被推送到Elasticsearch中的info索引,loglevel为ERROR的数据会被推送到MongoDB中的errors.logs集合,其它日志数据会被推送到Kafka的debug_logs主题中。
阅读全文