时间戳未使用日期筛选器logstash获取我的日志值?
我有以下配置来获取Http调用和调用时的日志日期,但@timestamp显示日志从FileBeat服务器发送到logstash one的时间时间戳未使用日期筛选器logstash获取我的日志值?,logstash,logstash-grok,Logstash,Logstash Grok,我有以下配置来获取Http调用和调用时的日志日期,但@timestamp显示日志从FileBeat服务器发送到logstash one的时间 input { beats { port => 5044 } } filter { if [message] !~ /Calling SMC REST API/ { drop { } }else {
input {
beats {
port => 5044
}
}
filter {
if [message] !~ /Calling SMC REST API/ {
drop { }
}else {
grok {
match => ["message", "{URIPATHPARAM:request}"]
match => ["message", "\[%{DATA:timestamp}\]%{GREEDYDATA:extra} %{GREEDYDATA:date}"]
}
date {
match => ["timestamp", "[YYYY-MM-dd HH:mm:ss,SSS]"]
target => "timestamp"
}
}
}
output {
elasticsearch {
hosts => ["http://localhost:9200/"]
index => "smc_calls-%{+YYYY.MM.dd}"
}
stdout { codec => rubydebug }
}
输入日志消息:
[2017-04-25 12:41:25064]RF2345454:Sg2343信息
emcJmsContainer-2-******呼叫
SMC REST API*******
以ruby输出:
"date" => "http-call", --> dont why http call is shown here
"offset" => 18036878,
"input_type" => "log",
"source" => "log source",
"message" => "entire filtered message",
"type" => "log",
"tags" => [
[0] "beats_input_codec_plain_applied",
[1] "_dateparsefailure"
],
"@timestamp" => 2017-05-03T06:08:59.486Z,
"extra" => "reaminaing data from message",
"@version" => "1",
"beat" => {
"hostname" => "host",
"name" => "host",
"version" => "5.3.1"
},
"host" => "icgaspadsw01d",
"timestamp" => "2017-04-25 12:41:25,064" --> log timestamp i want but dont see in kibana when indexed
我认为您的grok解析器是以错误的方式编写的。用这个在格罗克
\[%{DATA:timestamp}\]%{GREEDYDATA:extra} %{GREEDYDATA:date}
然后使用您的日期筛选器。使用以下grok plus日期筛选器可以实现这一点:
grok {
match => ["message", "{URIPATHPARAM:request}"]
match => ["message", "%{TIMESTAMP_ISO8601:time}"]
}
date {
match => ["time", "YYYY-MM-dd HH:mm:ss,SSS"]
}
添加了输入日志消息,我想获取日期和http调用请求我看到了日志的时间戳,但看不到它的索引时间?现在我看到了值,但无法在日期类型上可视化,以获取特定日期的请求计数,因为它不在日期历史图下。在grok之后是否使用了日期筛选器?似乎时间戳值未正确发送。请参阅输出中的@timestamp文件。这是将Kibana指示为记录时间戳的字段。grok解析器写得不正确,因此字段时间戳不包含日期,它可能不包含任何内容或整个日志消息。尝试使用像grok构造函数这样的工具来获得一个有效的解析器,然后您可能就能够自己解决这个问题了。