【问题标题】:Regarding ELK-Logstash keyword filter passing to zabbix trapper关于传递给zabbix trapper的ELK-Logstash关键字过滤器
【发布时间】:2018-12-11 12:10:37
【问题描述】:

关于传递给zabbix trapper的ELK-Logstash关键字过滤器,我如何配置logstash过滤器根据每个接收到的消息行中的关键字向zabbix trapper发送特定消息? 我已经完全配置了 zabbix-server trapper,并且消息 zabbix-sender 在客户端服务器上工作正常,但目前过滤器配置对我来说似乎有点困难。 我的logstash是基于6.4的,Zabbix server是基于3.4的,当前logstash过滤器配置如下:

filter {
  if [prospector][type] == "log" {
    grok {
      match => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: %{GREEDYDATA:syslog_message}" }
      add_field => [ "received_at", "%{@timestamp}" ]
      add_field => [ "received_from", "%{host}" ]
    }
    syslog_pri { }
    date {
      match => [ "syslog_timestamp", "MMM  d HH:mm:ss", "MMM dd HH:mm:ss" ]
    }
  }
}

提前致谢。

【问题讨论】:

  • 过滤器是否创建了您期望的字段?您有输出{} 节吗?
  • 是的,现有的 grok 过滤器适用于常规消息传递;但是如果我想为诸如“错误”之类的关键字制作一个特定的过滤器,以通过 zabbix-trapper 接口向 zabbix-server 的输出发送消息,我该怎么办?我自己做了一些研究并尝试了几个小时,但不幸的是没有工作。任何建议都非常感谢。谢谢。

标签: logstash zabbix


【解决方案1】:

是的,现有的 grok 过滤器适用于常规消息传递;但是如果我想为诸如“错误”之类的关键字制作一个特定的过滤器,以通过 zabbix-trapper 接口向 zabbix-server 的输出发送消息,我该怎么办?我自己做了一些研究并尝试了几个小时,但不幸的是没有工作。任何建议都非常感谢。 谢谢。

【讨论】:

    【解决方案2】:

    如果你想有条件输出,你可以这样做:

    output {
        if [message] =~ /eek/ {
            stdout { codec => rubydebug }
        } else {
            ...
        }
    }
    

    此配置正在测试message 字段以查看它是否包含eek

    假设zabbix output plugin 做你想做的事,你可以使用类似的结构将数据路由到zabbix。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-04
      • 1970-01-01
      • 1970-01-01
      • 2022-01-19
      • 1970-01-01
      相关资源
      最近更新 更多