在 ELK 堆栈中调试 Filebeat

Posted

技术标签:

【中文标题】在 ELK 堆栈中调试 Filebeat【英文标题】:Debugging Filebeat in the ELK stack 【发布时间】:2018-04-14 20:22:56 【问题描述】:

我的 ELK 系统出现了一些问题。客户端工作如下:

Filebeat -> Logstash --> Elastic --> Kibana

我们的部分日志不会从特定机器到达 Elastic。 我怀疑问题出在 Filebeat 中的日志收集中。

我试图在 Elastic 和 GitHub 网站上查找有关调试系统的信息,但我只找到了theselinks,上面写着:

默认情况下,Filebeat 将其所有输出发送到 syslog。当你跑 Filebeat 在前台,可以使用 -e 命令行标志来 而是将输出重定向到标准错误。例如:

filebeat -e 默认配置文件是filebeat.yml( 文件的位置因平台而异)。你可以使用不同的 通过指定 -c 标志来配置文件。例如:

filebeat -e -c myfilebeatconfig.yml

您可以增加 通过启用一个或多个调试选择器来调试消息。例如, 要查看已发布的事务,您可以使用以下命令启动 Filebeat 像这样发布选择器:

filebeat -e -d "发布"

如果你想要所有的调试输出(公平 警告,很多),你可以使用 *,像这样:

filebeat -e -d "*"

filebeat -e 没有显示我需要什么,其他选项提供了太多信息。有没有其他方法可以用这种特定的架构来调试我们的 ELK?或者还有其他命令行选项吗?

仅供参考:我已经尝试在我的机器上设置 FileBeat 服务,它在相同的 filebeat.yml 配置下表现出色。

【问题讨论】:

【参考方案1】:
# The # character at the beginning of a line indicates a comment. Use
# comments to describe your configuration.
input 

# The filter part of this file is commented out to indicate that it is
# optional.
# filter 
#
# 
output 

您的logstash 配置中有这样的配置吗?如果是这样,任何输入问题(在您的情况下为 filebeat)都会出现在 logstash 日志中。我在我的 filebeat 日志上使用了 grok 过滤器,所以日志还告诉我它是否无法解析日志行。

【讨论】:

我解决了这个问题。稍后我会为它添加一个解决方案(我忘记了这篇文章,正如你所看到的那样并没有引起太多关注)但简而言之,一个 FileBeat 进程的收集无法处理我们文件夹中的流量 @Green 你能分享一下解决方案吗?我有兴趣显示原始日志 嘿@Gadelkareem 你可以检查这个线程,我在那里添加了我的解决方案。 ***.com/a/47459207/8868108

以上是关于在 ELK 堆栈中调试 Filebeat的主要内容,如果未能解决你的问题,请参考以下文章

关于使用Spring Boot Microservices设置ELK堆栈

基于弹性堆栈(ELK堆栈)的日志分析存储及展示

使用 ELK 堆栈的最佳 Docker 日志记录架构

ELK 堆栈中的 REDIS 有啥意义?

ELK 堆栈中的 Logstash 和 filebeat

使用 ELK 堆栈进行应用程序日志记录