我有日志文件,其中包含我希望在Kibana中显示的apache日志。 日志以IP开头。我已经对我的模式进行了调整并且通过了。 我试图在beats输入配置文件中添加字段,但即使在刷新字段后也不会在Kibana中显示。 这是配置文件
filter {
if[type] == "apache" {
grok {
match => { "message" => "%{HOST:log_host}%{GREEDYDATA:remaining}" }
add_field => { "testip" => "%{log_host}" }
add_field => { "data_left" => "%{remaining}" }
}
}
...
添加我已重新启动所有服务:logstash,elasticsearch,kibana在新配置之后。
答案 0 :(得分:1)
问题可能是您的grok
模式使用过于严格的模式。
HOST
根据您的IPORHOST
字段名称test_ip
可能apache
的可能性。假设数据实际上是以filter {
if [type] == "apache" {
grok {
match => {
message => "%{IPORHOST:log_host}%{GREEDYDATA:remaining}"
}
add_field => {
testip => "%{log_host}"
data_left => "%{remaining}"
}
}
}
}
定义的类型进入的,那么它应该是:
add_field
话虽如此,您对grok
的使用完全没有必要。 log_host
模式本身会创建两个字段:remaining
和testip
,因此无需定义名为data_left
和grok
的额外字段。
或许更有用的是,您不需要制作自己的Apache Web日志filter {
if [type] == "apache" {
grok {
match => { "message" => "%{COMBINEDAPACHELOG}" }
}
# Set @timestamp to the log's time and drop the unneeded timestamp
date {
match => [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ]
remove_field => "timestamp"
}
}
}
模式。 The COMBINEDAPACHELOG
pattern already exists,自动提供所有标准字段。
limit_choices_to={'parentCategory__name': 'comp method'}
您可以在a more complete example in the Logstash documentation here中看到这一点。