Logshark调试Logstash及Filebeat pipelines使用详解

 更新时间:2022年12月09日 15:41:17   作者:Elasticsearch  
这篇文章主要为大家介绍了Logshark调试Logstash及Filebeat pipelines使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

Filebeat processors处理数据

我们知道 Logstash 及 Filebeat 在 Elasticsearch 数据摄入及清理中起到非常大的作用。它们是常用的工具用来对数据进行处理。我们可以运用 Logstash 丰富的过滤器来处理数据,我们也可以使用 Filebeat 的 processors 来处理数据。

使用这些工具(和其他工具)对管道进行编码是一个高度迭代的过程,特别是在处理 grok 模式以解析非结构化日志时:你获得一些示例数据,将其提供给 input,然后你将重复: 

  • 对管道逻辑进行编码( Logstash 中的过滤器和 Filebeat 中的处理器)
  • 检查输出,直到日志被正确解析。

我一直觉得这个改变管道和检查输出的迭代周期有点慢 — 确保你在 Logstash 和 Filebeat 中都有控制台输出,但你最终会混合这些程序的输出和你的输出,你会肯定会滚动很多。 当然,这两种工具都有文件输出,但在处理包含数百个字段的文档时很容易迷失方向,因为每个文档都写在一行中,没有漂亮的打印。

我们需要一种方法来立即判断我们的管道输出是否正确,打印漂亮且可导航的输出是我的主要要求,如果我们有的话,我们的开发迭代会快得多! 这样的工具不存在。幸运的是,一个开源的项目 Logshark (灵感来自流行的网络检查工具 Wireshark)应运而生。

它是一个带有用 Go 编写的终端 UI 的 CLI 应用程序。它通过启动一个小型网络服务器来工作,该服务器通过接受 _bulk 请求模仿 Elasticsearch 的行为,因此你需要做的就是将 Logstash/Filebeat elasticsearch 输出重定向到该工具。

这个工具在更改生产管道时特别方便,因为你可以向管道添加第二个 elasticsearch 输出以检查事件,默认情况下它会收集它看到并接受的前 100 个事件,但丢弃其余的,你可以检查下一个通过点击 r (reset)来刷新它。

它还会告诉您每秒发生的事件数和平均文档大小,当你需要通过调整 bulk/batch 大小来优化吞吐量时,这些信息非常方便,如果你正在从南半球的机器收集日志,这就非常重要发送到北部的 Elasticsearch 集群。

你可以直接使用二进制文件 (<5mb) 或在 docker 上运行它。 UI 可以用于任何可以模拟终端的东西,比如你的常规 Linux 终端、iTerm、tmux、PuTTY 甚至 VSCode。

启动服务器

我们可以参考网站 GitHub - ugosan/logshark: Logshark is a debugger for JSON logs. 下载最新的发布版。

二进制

./logshark --host 0.0.0.0 --port 9200 --max 1000

上述命令将启动一个服务器。它侦听 9200 端口,也就是 Elasticsearch 运行的端口。我们需要停止自己的 Elasticsearch 运行,你运行 Logshark 和 Elasticsearch 在同一个机器上的话。我们使用如下的命令来检查侦听 9200 的端口。

  $ sudo lsof -i -P | grep LISTEN | grep 9200
  Password:
  logshark  69585          liuxg   10u  IPv6 0xe92fabcdd6634ab3      0t0    TCP *:9200 (LISTEN)

docker

docker run -p 9200:9200 -it ugosan/logshark -host 0.0.0.0 -port 9200

docker-compose.yml

  version: "3.2"
  services:
    logshark:
      image: ugosan/logshark
      tty: true
      stdin_open: true

注意:你不应使用 “docker-compose up”,而应使用 “docker-compose run logshark sh”,因为 docker-compose 不会附加到带有 “up” 的容器。 docker-compose run -p 9200:9200 logshark -port 9200

将的 Logstash 管道的输出指向它

就像普通的 elasticsearch 输出一样。针对 docker 的情况:

   input {}
   filter {}
   output {
     elasticsearch {
       hosts => ["http://host.docker.internal:9200"]
     }
   } 

使用 docker 时,你可以使用 host.docker.internal 从另一个容器访问 logshark 容器

例如

docker run --rm byrnedo/alpine-curl -v -XPOST -d '{"hello":"test"}' http:/ /host.docker.internal:9200。

针对非 docker 部署,我们可以使用如下的 logstash.conf 来进行测试:

logstash.conf

  input {
     stdin { }
 }
 filter {}
 output {
    stdout { codec => rubydebug }
     elasticsearch {
       hosts => ["http://localhost:9200"]
     }
  }

在上面,我使用 stdin 来输入我们的文档。我们使用如下的命令来启动 Logstash:

./bin/logstash -f logstash.conf

我们在 console 中打入一些我们喜欢的文字:

我们切换到 Logshark 所在的 terminal:

我们可以输入 l 来改变布局:

 我们可以清楚地看到每个输出。它对我们调试 pipeline 非常有用。

以上就是Logshark调试Logstash及Filebeat pipelines使用详解的详细内容,更多关于Logshark调试Logstash的资料请关注脚本之家其它相关文章!

相关文章

  • Docker volume使用详解及实例

    Docker volume使用详解及实例

    这篇文章主要介绍了Docker volume使用详解及实例的相关资料,并附简单实例,帮助大家学习参考,需要的朋友可以看下
    2016-11-11
  • Docker实现Mariadb分库分表及读写分离功能

    Docker实现Mariadb分库分表及读写分离功能

    这篇文章主要给大家介绍了关于Docker实现Mariadb分库分表及读写分离功能的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-05-05
  • Docker安装和简单使用入门教程

    Docker安装和简单使用入门教程

    这篇文章主要介绍了Docker安装和简单使用入门教程,由于小编使用的是linux系统,支持docker的,所以安装相对比较简单,需要的的朋友参考下吧
    2017-01-01
  • docker-compose如何实现滚动更新

    docker-compose如何实现滚动更新

    这篇文章主要介绍了docker-compose如何实现滚动更新方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-05-05
  • 本地Docker部署Navidrome音乐服务器与远程访问听歌详细教程(图文详解)

    本地Docker部署Navidrome音乐服务器与远程访问听歌详细教程(图文详解)

    本文和大家分享一款目前在G站有11K+Star的开源跨平台音乐服务器 Navidrome,如何在 Linux 环境本地使用 Docker 部署,并结合cpolar 内网穿透工具配置公网地址,实现随时随地远程访问本地存储音乐的详细流程,感兴趣的朋友跟随小编一起看看吧
    2024-08-08
  • 教你使用如何docker部署淘宝rap2服务

    教你使用如何docker部署淘宝rap2服务

    这篇文章主要介绍了教你使用如何docker部署淘宝rap2服务,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-08-08
  • 浅谈docker学习之docker数据卷(volume)

    浅谈docker学习之docker数据卷(volume)

    这篇文章主要介绍了浅谈docker学习之docker数据卷(volume),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-12-12
  • docker安装redis5.0.3的方法步骤

    docker安装redis5.0.3的方法步骤

    这篇文章主要介绍了docker安装redis5.0.3的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • Docker运行hello-world镜像失败或超时的问题

    Docker运行hello-world镜像失败或超时的问题

    在安装Docker并尝试运行hello-world时,可能会遇到超时问题,这通常是由于默认的镜像源访问速度慢造成的,解决这个问题的办法是更换镜像源,虽然许多人推荐使用阿里云的镜像源,对Docker hello-world超时问题感兴趣的朋友一起看看吧
    2024-09-09
  • Docker构建镜像的两种方式实现

    Docker构建镜像的两种方式实现

    从 docker 镜像仓库中下载的镜像不能满足我们的需求时,可以通过以下两种方式对镜像进行更改。本文就详细的介绍了这两种方法,感兴趣的可以了解一下
    2021-09-09

最新评论