我正在使用Logstash使用http_poller从URL获取日志。这很好用。我遇到的问题是收到的日志没有以正确的方式发送到Elastic Search。我尝试将结果拆分为不同的事件,但在Kibana中显示的唯一事件是日志中的最后一个事件。由于我每隔2分钟就会拉一次日志,因此很多日志信息都会丢失。
输入如下:
input {
http_poller {
urls => {
logger1 => {
method => get
url => "http://servername/logdirectory/thislog.log"
}
}
keepalive => true
automatic_retries => 0
# Check the site every 2 minutes
interval => 120
request_timeout => 110
# Wait no longer than 110 seconds for the request to complete
# Store metadata about the request in this field
metadata_target => http_poller_metadata
type => 'log4j'
codec => "json"
# important tag settings
tags => stackoverflow
}
}
然后我使用过滤器添加一些字段并拆分日志
filter {
if "stackoverflow" in [tags] {
split {
terminator => "\n"
}
mutate {
add_field => {
"Application" => "app-stackoverflow"
"Environment" => "Acceptation"
}
}
}
}
然后使用以下输出conf
将输出发送到Kibana服务器output {
redis {
host => "kibanaserver.internal.com"
data_type => "list"
key => "logstash N"
}
}
为什么不将所有事件存储在Kibana中的任何建议?