【问题标题】:Removing unwanted fields in Logstash configuration file删除 Logstash 配置文件中不需要的字段
【发布时间】:2019-02-11 12:30:33
【问题描述】:

我正在构建一个 ELK 设置并且它工作正常,但是我遇到了一种情况,我想在通过 logstash 处理时从系统日志数据中删除某些字段,例如 remove_fieldremove_tag我已经在我的 logstash 配置文件中定义了,但这不起作用。

寻求任何尊重和专家建议以更正配置以使其运行,非常感谢。

我的logstash配置文件:

[root@sandbox-prd~]# cat /etc/logstash/conf.d/syslog.conf
input {
  file {
    path => [ "/data/SYSTEMS/*/messages.log" ]
    start_position => beginning
    sincedb_path => "/dev/null"
    max_open_files => 64000
    type => "sj-syslog"
 }
}

filter {
  if [type] == "sj-syslog" {
    grok {
      match => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp } %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: %{GREEDYDATA:syslog_message}" }
      add_field => [ "received_at", "%{@timestamp}" ]
      remove_field => ["@version", "host", "_type", "_index", "_score", "path"]
      remove_tag => ["_grokparsefailure"]
    }
    syslog_pri { }
    date {
      match => [ "syslog_timestamp", "MMM  d HH:mm:ss", "MMM dd HH:mm:ss" ]
  }
 }
}
output {
        if [type] == "sj-syslog" {
        elasticsearch {
                hosts => "sandbox-prd02:9200"
                manage_template => false
                index => "sj-syslog-%{+YYYY.MM.dd}"
                document_type => "messages"
  }
 }
}

出现在 Kibana 门户上的数据示例

syslog_pid:6662 type:sj-syslog syslog_message:(root) CMD (LANG=C LC_ALL=C /usr/bin/mrtg /etc/mrtg/mrtg.cfg --lock-file /var/lock/mrtg/mrtg_l --confcache-file /var/lib/mrtg/mrtg.ok) syslog_severity:notice syslog_hostname:dbaprod01 syslog_severity_code:5 syslog_timestamp:Feb 11 10:25:02 @timestamp:February 11th 2019, 23:55:02.000 message:Feb 11 10:25:02 dbaprod01 CROND[6662]: (root) CMD (LANG=C LC_ALL=C /usr/bin/mrtg /etc/mrtg/mrtg.cfg --lock-file /var/lock/mrtg/mrtg_l --confcache-file /var/lib/mrtg/mrtg.ok) syslog_facility:user-level syslog_facility_code:1 syslog_program:CROND received_at:February 11th 2019, 10:25:03.353 _id:KpHo2mgBybCgY5IwmRPn _type:messages
_index:sj-syslog-2019.02.11 _score: -

我的资源详情:

操作系统版本:Linux 7

Logstash 版本:6.5.4

【问题讨论】:

    标签: logstash logstash-grok logstash-configuration logstash-file


    【解决方案1】:

    您不能删除_type_index,它们是elasticsearch 工作所需的元数据字段,它们包含有关您的索引名称和数据映射的信息,_score 字段也是元数据字段,在搜索时生成,它不在您的文档中。

    【讨论】:

    • @-leadrojmp,非常感谢您的专业回答,让我检查一下考虑。但是,remove_tag => ["_grokparsefailure"]
    • 如果您的 grok 过滤器成功,它将删除一个名为 _grokparsefailure 的标签。但是由于您只有一个 grok 过滤器,因此不需要此行,如果您有另一个 grok 并想在 grok 失败后删除标签,那将是有意义的。
    • Thnx 很有效 :-) ,学到了新东西,感谢您的所有帮助。
    猜你喜欢
    • 1970-01-01
    • 2015-09-27
    • 1970-01-01
    • 2012-02-24
    • 1970-01-01
    • 1970-01-01
    • 2021-09-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多