elasticsearch 正确设置了使用logstash到kibana解析自定义日志,我看不到任何错误和数据,elasticsearch,logstash,kibana,filebeat,elasticsearch,Logstash,Kibana,Filebeat" /> elasticsearch 正确设置了使用logstash到kibana解析自定义日志,我看不到任何错误和数据,elasticsearch,logstash,kibana,filebeat,elasticsearch,Logstash,Kibana,Filebeat" />

elasticsearch 正确设置了使用logstash到kibana解析自定义日志,我看不到任何错误和数据

elasticsearch 正确设置了使用logstash到kibana解析自定义日志,我看不到任何错误和数据,elasticsearch,logstash,kibana,filebeat,elasticsearch,Logstash,Kibana,Filebeat,我正在和kibana玩一玩,看看它是如何工作的 我能够直接从同一台服务器添加nginx日志数据,而无需日志存储,并且工作正常。但是使用logstash从不同的服务器读取日志文件不会显示数据。没有错误。。但没有数据 我有来自的自定义日志,它为我运行一些PHP脚本,消息的格式如下: Timestamp[LogLevel]:msg 例如: 2021-02-21 21:34:17 [DEBUG]: file size matches written file size 1194179 所以我的gork

我正在和kibana玩一玩,看看它是如何工作的

我能够直接从同一台服务器添加nginx日志数据,而无需日志存储,并且工作正常。但是使用logstash从不同的服务器读取日志文件不会显示数据。没有错误。。但没有数据

我有来自的自定义日志,它为我运行一些PHP脚本,消息的格式如下:

Timestamp[LogLevel]:msg

例如:

2021-02-21 21:34:17 [DEBUG]: file size matches written file size 1194179
所以我的gork过滤器是:

"%{DATESTAMP:timestamp} \[%{LOGLEVEL:loglevel}\]: %{GREEDYDATA:msg}"
我检查了,语法与文件格式匹配

我有一些包含后缀
out
的文件,它们是调试级别的,还有一些带有后缀
error
的文件是错误级别的

因此,为了在kibana服务器上配置logstash,我添加了文件
/etc/logstash/conf.d/pipeline.conf
,其中包含以下内容:

input {
    beats {
        port => 5544
    }
}
filter {
 grok {
   match => {"message"=>"%{DATESTAMP:timestamp} \[%{LOGLEVEL:loglevel}\]: %{GREEDYDATA:msg}"} 
 }
mutate {
    rename => ["host", "server"]
    convert => {"server" => "string"}
}
}

output {
    elasticsearch {
        hosts => "http://localhost:9200"
        user => "<USER>"
        password => "<PASSWORD>"
    }
}
- type: filestream
  enabled: true
  paths:
    - /home/ubuntu/.pm2/*-error-*log
  fields:
   level: error
- type: filestream
  enabled: true
  paths:
    - /home/ubuntu/.pm2/logs/*-out-*log
  fields:
   level: debug
我尝试使用
log
而不是
filestream
结果是一样的。 但是使用
filestream
是有意义的,因为日志会在上不断更新

因此,我在一台服务器上运行了
logstash
,在另一台服务器上运行了
filebeat
,打开了防火墙端口,我可以看到它们正在连接,但在Kibana logs仪表板中没有看到与我使用logstash获取的文件相关的任何新数据

filebeat日志始终显示这一行
Feb 24 04:41:56 vcx-prod-backup-01 filebeat[3797286]:2021-02-24T04:41:56.991Z信息[file_watcher]filestream/fswatch.go:131开始下一次扫描
和一些关于分析指标的信息,这样看起来很好,但仍然没有数据

我试图在这里提供尽可能多的信息,我是kibana的新手,我不知道如果没有错误,为什么kibana中不会显示数据

我想可能我没有正确地跳过gork过滤器中的方括号,所以我尝试使用
“%{DATESTAMP:timestamp}\\\[%{LOGLEVEL:LOGLEVEL}\\\]:%{greedyddata:msg}”
替换
\[
,但结果是一样的

如能提供有关此问题的任何信息,将不胜感激

#更新 ֿ 使用堆栈版本7.11.1

根据@leandrojmp的建议,我改回了
log
,而不是
filestream

我检查了
harverser.go
filebeat中的相关行,发现如下:

Feb 24 14:16:36 SERVER filebeat[4128025]: 2021-02-24T14:16:36.566Z        INFO        log/harvester.go:302        Harvester started for file: /home/ubuntu/.pm2/logs/cdr-ssh-out-1.log
Feb 24 14:16:36 SERVER filebeat[4128025]: 2021-02-24T14:16:36.567Z        INFO        log/harvester.go:302        Harvester started for file: /home/ubuntu/.pm2/logs/cdr-ftp-out-0.log

我还注意到,当我将输出配置为stdout时,我确实看到了来自另一台服务器的事件。因此,logstash确实正确地接收了它们,但由于某些原因,我在kiban中没有看到它们。

如果您同时使用
stdout
elasticsearch
输出,但在Kibana中看不到日志,那么您可以我需要在Kibana中创建一个
索引模式
,以便它可以显示您的数据


在为您的数据创建
索引模式之后,在您的情况下
索引模式可能类似于
logstash-*
,您需要在Kibana中配置Logs应用程序来查找此索引,默认情况下Logs应用程序查找
filebeat-*
索引。

好的……因此@leandrojmp在unde中帮了我很多忙了解kibana的情况。谢谢!所有的功劳都归你!只想写一个日志回答,帮助其他人克服初始设置

让我们重新开始

我想要一个kibana节点,用于监视不同服务器上的自定义日志。 我在两者上都安装了ubuntu最新的LTS,添加了deb存储库,第一个安装了kibana、elsaticsearch和logstash,第二个安装了filebeat

基本的设置没有太多的安全性和SSL,这不是我在这里寻找的,因为我是这个主题的新手,一切都是基本设置

kibana.yml
中,我将主机更改为
0.0.0
,而不是
localhost
,以便可以从外部连接,并在logstash中添加了以下配置文件:

input {
    beats {
        port => 5544
    }
}
filter {
 grok {
   match => {"message"=>"%{DATESTAMP:timestamp} \[%{LOGLEVEL:loglevel}\]: %{GREEDYDATA:msg}"} 
 }
mutate {
    rename => ["host", "server"]
    convert => {"server" => "string"}
}
}

output {
    elasticsearch {
        hosts => ["http://localhost:9200"]
    }
}
我没有使事情复杂化,也不需要设置额外的身份验证

my filebeat.yml配置:

- type: log
  enabled: true
  paths:
    - /home/ubuntu/.pm2/*-error-*log
  fields:
   level: error
- type: log
  enabled: true
  paths:
    - /home/ubuntu/.pm2/logs/*-out-*log
   level: debug
我启动了一切,在任何日志中都没有错误,但在kibana中仍然没有数据,因为我不知道elasticsearch如何存储它的数据,我需要找出如何连接到elasticsearch并查看数据是否存在,所以我执行了
curl-X GEThttp://localhost:9200/_cat/indices?v 
并注意到一个logstash索引,所以我执行了
curl-X得到http://localhost:9200/logstash-2021.02.24-000001/_search
我注意到日志数据显示在数据库中

因此,这一定意味着它与kibana有关。因此,在设置下使用kibana的web界面时,我注意到一个名为
索引模式的配置,用于匹配包含日志数据的索引,并且那里的输入与logstash索引名不匹配,因此我在其中添加了
,logstash*
,瞧!它起作用了:)


谢谢

您使用的是哪个版本的堆栈?
文件流
仍然是实验性的,我建议您将其更改回
日志
,直到您发现什么不起作用。将其更改为
日志
,重新启动filebeat并使用
harvester查找行。转到filebeat日志中的
。如果使用
stdout
如果您看到事件,那么问题可能出现在logstash和elasticsearch之间的通信中,或者在尝试接收文档时出现在elasticsearch中。您应该同时查看日志、logstash日志和elasticsearch日志,以查看是否有任何相关信息、任何错误或警告。@leandrojmp-出于某种原因没有考虑到这些问题检查elasticsearch日志时,我看到的身份验证错误不是来自logstash。现在我了解了更多信息,我正在清除集群,重新配置,让我们看看它是如何运行的:)您可以使用检查elasticsearch中的索引,例如,使用
curlhttp://localhost:9200/_cat/indices
将向您显示所有索引。您创建了吗索引模式?我不使用中的logs接口