我有一个带有弹性搜索、日志存储、Kibana 和 Filebeat 的设置,其版本如下所示。
1) 弹性搜索:6.2.4 2) 日志存储:6.2.4 3) 木花:6.2.4
我的日志存储管道如下:
sudo vim/etc/logstash/conf.d/02-beats-input.conf
input {
beats {
port => "5044"
ssl => true
ssl_certificate => "/etc/pki/tls/certs/logstash-forwarder.crt"
ssl_key => "/etc/pki/tls/private/logstash-forwarder.key"
}
}
filter {
#If log line contains tab character followed by 'at' then we will tag that
entry as stacktrace
if [message] =~ "tat" {
grok {
match => ["message", "^(tat)"]
add_tag => ["stacktrace"]
}
}
#Grokking Spring Boot's default log format
grok {
match => { "message" => "(?<timestamp>%{YEAR}-%{MONTHNUM}-%{MONTHDAY} %
{TIME}) %{LOGLEVEL:level} %{NUMBER:pid} --- [(?<thread>[A-Za-z0-
9-]+)] [A-Za-z0-9.]*.(?<class>[A-Za-z0-9#_]+)s*:s+(?
<logmessage>.*)"}
}
#grok {
# match => { "message" => "(?<timestamp>%{YEAR}-%{MONTHNUM}-%{MONTHDAY}
# %{TIME}) %{LOGLEVEL:level} %{NUMBER:pid} --- .+? :s+(?
# <logmessage>.*)"}
#}
grok {
match => { "source" => "/var/log/containers/%{DATA:pod_name}_%
{DATA:namespace}_%{GREEDYDATA:container_name}-%{DATA:container_id}.log"
}
remove_field => ["source"]
}
sudo vim/etc/logstash/conf.d/30-elasticsearch-output.conf
output {
elasticsearch {
hosts => ["localhost:9200"]
sniffing => true
manage_template => false
index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
document_type => "%{[@metadata][type]}"
}
}
弹性搜索、Kibana、Logstash 在一个虚拟机中运行,而应用程序和 Filebeat 在不同的虚拟机上运行。
目前,这两个 VM 之间的日期存在差异,我需要修复。
Kibana 发现的最新登录如下所示,并带有特定的时间戳。
message:
{"log":"TACACS+: No port assigned for host, "XX.XX.XX.XX". Using default
port 49 instead.n","stream":"stdout","time":"**2018-05-
17T00:58:09.401752809Z**"}
@timestamp:
May 16th 2018, 17:58:09.408
应用程序的最新日志如下,带有特定的时间戳。
{"log":"TACACS+: No port assigned for host, "XX.XX.XX.XX". Using default
port 49 instead.n","stream":"stdout","time":"**2018-05-
17T06:06:44.365607578Z**"}
如果您看到上述两个日志,很明显 kibana 显示日志时有一些延迟,尤其是在上述情况下,它有大约 5 小时的延迟。我还看到延迟不断增加。 不过,我看到了木花上的所有日志。问题是我看到的延迟。
有人可以帮助我理解这种行为吗?这是因为两个虚拟机之间的时间差异吗?两者都在 PDT 时区。日志大小应该足够小,我不希望有任何限制。
如果您需要任何其他详细信息,请告诉我。
我相信时间/时区不匹配导致了这个问题。只需同步它,问题就会得到解决。