【问题标题】:How To Use exclude_line in filebeat如何在 filebeat 中使用 exclude_line
【发布时间】:2021-03-13 02:16:03
【问题描述】:

172.11.11.11 - - [01/Dec/2020:05:49:54 +0000] "GET / HTTP/1.1" 200 1875 "-" "ELB-HealthChecker/2.0" "-"

我在应用服务器 aws 实例中使用 filebeat,在其他实例中使用 elk。

我在消息级别收到这样的日志,我想排除这些行。如何实现这一点?

【问题讨论】:

  • 您是否有要排除的日志的模式?例如,它是否总是包含一个特定的文本,如"ELB-HealthChecker/2.0
  • 172.11.11.11 - - [01/Dec/2020:05:49:54 +0000] "GET / HTTP/1.1" 200 1875 "-" "ELB-HealthChecker/2.0" "-" -感谢您的回复,这是我的日志,我没有模式,是否可以排除这些?
  • 以一种简单的方式,您可以执行exclude_lines: ['ELB-HealthChecker'] 之类的操作,它会排除包含文本ELB-HealthChecker 的所有行。如果需要,您也可以使用更复杂的基于正则表达式的模式。要在filebeat.yml 中使用它,请参考elastic.co/guide/en/beats/filebeat/current/…
  • 我有两个应用程序作为 docker 容器运行,对于一个应用程序,我配置了如下的 logstash 管道。输入 { beats { port => 5044 } tcp { port => 5000 } } filter { json { source => "message" remove_field => "message" } if [level] == 10 { mutate { add_field => { "log -level" => "trace" } } } if [level] == 20 { mutate { add_field => { "log-level" => "debug" } } } 对于其他应用程序,我得到这样的日志,信息: ::ffff:172.11.11.11 - GET / 123 - 1.232 ms 我的要求是如果消息中的信息必须在日志级别添加“信息”。如何做到这一点?

标签: logstash filebeat


【解决方案1】:

@Syam 已经正确回答了您,但在进一步阅读您的要求后,我建议您使用 logstash 中的过滤器部分并应用它。

filter {
      if [message] =~ 'info' or if [message] =~ 'INFO' or if [message] =~ 'Info' {
          mutate {
            replace => { "LOG-LEVEL" => "INFO" }
          }
      }
  }

祝你好运:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-16
    • 2018-11-10
    • 1970-01-01
    • 2021-06-21
    • 2019-06-06
    • 1970-01-01
    相关资源
    最近更新 更多