当前位置: 首页 > 知识库问答 >
问题:

如何将自定义摄取管道与Filebeat模块一起使用

潘凯
2023-03-14

如何将自定义摄取管道与Filebeat模块一起使用?在我的例子中,我使用的是<code>apache<code>模块。

根据多个来源,这应该可以通过<code>output.elasticsearch进行配置。管道/output.elasticsearch.pipelines[pipeline]。资料来源如下:

  • https://www.elastic.co/guide/en/beats/filebeat/current/elasticsearch-output.html#pipelines-option-es
  • https://stackoverflow.com/a/58726519/1026263
  • https://www.elastic.co/guide/en/beats/filebeat/current/elasticsearch-output.html#pipelines-option-es

然而,在多次尝试不同的排列后,我从未能够影响Filebeat使用哪个摄取管道;它总是使用模块的股票摄取管道。

这只是众多尝试之一:

filebeat.config:

filebeat.modules:
  - module: apache
    access:
      enabled: true
      var.paths: ["/var/log/apache2/custom_access*"]
    error:
      enabled: true
      var.paths: ["/var/log/apache2/custom_error*"]

filebeat.config.modules:
  reload.enabled: true
  reload.period: 5s

output.elasticsearch:
  hosts: ["${ELASTICSEARCH_URL}"]
  pipeline: "apache_with_optional_x_forwarded_for"

使用debug(-d"*")运行filebeat会显示以下内容,我认为这表明我的规范已被忽略。(我还可以通过Elasticsearch中生成的文档看出我的自定义管道被绕过了。)

2021-12-16T23:23:47.464Z      DEBUG   [processors]    processing/processors.go:203    Publish event: {
  "@timestamp": "2021-12-16T23:23:47.464Z",
  "@metadata": {
    "beat": "filebeat",
    "type": "_doc",
    "version": "7.10.2",
    "pipeline": "filebeat-7.10.2-apache-access-pipeline"
  },

我在Filebeat v6.8和v7.10中都试过这个(在docker.elastic.co/beats/filebeat docker镜像中)。

这类似于这些线程,它们从未得出令人满意的结论:

    < li >如何将自定义接收管道与docker自动发现一起使用 < li >如何为Filebeat Nginx模块指定管道?

共有1个答案

法玮
2023-03-14

好吧,根据这个PR到beats存储库,要覆盖模块管道,您需要在输入配置中指定自定义管道,而不是在输出上。

试试这个:

filebeat.modules:
  - module: apache
    access:
      enabled: true
      input.pipeline: your-custom-pipeline
      var.paths: ["/var/log/apache2/custom_access*"]
    error:
      enabled: true
      input.pipeline: your-custom-pipeline
      var.paths: ["/var/log/apache2/custom_error*"]
 类似资料:
  • 我很难用Filebeat的Docker自动发现功能来使用定制的Elasticsearch摄取管道。我已经在我的< code>filebeat.yml文件中开始使用自定义处理器,但是我更愿意将它转移到我创建的自定义摄取管道。 首先,这是我使用自定义处理器的配置,它为我的Servarr应用Docker容器提供自定义的类似grok的处理(通过在我的docker-compose.yml文件中对它们应用标签

  • 问题内容: 我知道Android 很棒。它使我们能够播放本地文件以及媒体流。而且非常容易使用(例如): 通过调用具有不同参数集的重载,可以设置不同类型的DataSource 。这个函数有一个有趣的原型: 看起来可以用自己的实现完全覆盖。它确实有效: 并在主要代码中: 是的,这很好。但是,如果我尝试音频/ aacp广播流(例如:“ http://111.223.51.8:8005”-它是“ COOL

  • 我有一个明确的模块化项目,它依赖于一个自动模块;e、 g.关于java。激活。仍然可以使用jlink吗? 查看此模块信息。爪哇: 然后jlink不能添加模块: 根据我的理解,一个自动模块无论如何都会包含整个类路径。所以我想用jlink创建运行时映像没有任何好处? 另请参阅:什么是自动模块? 有没有可能绕过这个问题?也许为这些依赖生成module-info.java?

  • 问题内容: 我只是开始看一下Mattt出色的新Alamofire快速联网库,并且不确定如何将其与自定义标头一起使用。 我正在尝试从AFNetworking转换为Alamofire的代码是这样的: 问题答案: 根据官方文档,不建议修改会话配置: 不建议将其用于Authorization或Content- Type标头。而是分别使用URLRequestConvertible和ParameterEnco

  • 问题内容: 我试图将Python 3程序反向移植到2.7,但遇到了一个奇怪的问题: 根据文档,返回Unicode文本的内存流。当我尝试手动输入Unicode字符串时,它可以正常工作。为什么即使所有写入的字符串都是Unicode字符串,它也无法与模块结合使用?在什么地方来,它使得异常? (我知道我可以代替使用,但是我想知道在这种情况下怎么了) 问题答案: Python 2.7模块不支持Unicode