elasticsearch Elasticsearch Logstash文件节拍映射
我有一个问题与麋鹿堆栈+文件节拍 Filebeat正在向Logstash发送类似apache的日志,Logstash应该正在解析这些行。Elasticsearch应该将分割的数据存储在字段中,这样我就可以使用Kibana将它们可视化 问题: Elasticsearch接收日志,但将其存储在单个“消息”字段中 理想的解决方案: 输入: 10.0.0.1 some.hostname.at-[27/Jun/2017:23:59:59+0200] ES: “ip”:“10.0.0.1” “主机名”:“some.hostname.at” “时间戳”:“2017年6月27日:23:59:59+0200” 我的日志存储配置:elasticsearch Elasticsearch Logstash文件节拍映射,elasticsearch,logstash,elastic-stack,filebeat,elasticsearch,Logstash,Elastic Stack,Filebeat,我有一个问题与麋鹿堆栈+文件节拍 Filebeat正在向Logstash发送类似apache的日志,Logstash应该正在解析这些行。Elasticsearch应该将分割的数据存储在字段中,这样我就可以使用Kibana将它们可视化 问题: Elasticsearch接收日志,但将其存储在单个“消息”字段中 理想的解决方案: 输入: 10.0.0.1 some.hostname.at-[27/Jun/2017:23:59:59+0200] ES: “ip”:“10.0.0.1” “主机名”:“s
input {
beats {
port => 5044
}
}
filter {
if [type] == "web-apache" {
grok {
patterns_dir => ["./patterns"]
match => { "message" => "IP: %{IPV4:client_ip}, Hostname: %{HOSTNAME:hostname}, - \[timestamp: %{HTTPDATE:timestamp}\]" }
break_on_match => false
remove_field => [ "message" ]
}
date {
locale => "en"
timezone => "Europe/Vienna"
match => [ "timestamp", "dd/MMM/yyyy:HH:mm:ss Z" ]
}
useragent {
source => "agent"
prefix => "browser_"
}
}
}
output {
stdout {
codec => rubydebug
}
elasticsearch {
hosts => ["localhost:9200"]
index => "test1"
document_type => "accessAPI"
}
}
我的Elasticsearch发现输出:
我希望周围有麋鹿专家能帮助我。
提前谢谢大家,,
Matthias您所说的grok过滤器在这里不起作用 尝试使用:
%{IPV4:client_ip} %{HOSTNAME:hostname} - \[%{HTTPDATE:timestamp}\]
不需要在字段名前面单独指定所需的名称(此处您不尝试格式化消息,而是提取单独的字段),只需在“:”后面的括号中说明字段名,即可得到所需的结果 此外,使用覆盖功能,而不是删除消息的\u字段。 更多信息请点击此处:
它最终看起来将类似于:
filter {
grok {
match => { "message" => "%{IPV4:client_ip} %{HOSTNAME:hostname} - \[%{HTTPDATE:timestamp}\]" }
overwrite => [ "message" ]
}
}
您可以在此处测试grok筛选器: