【问题标题】:logstash write log from filebeat on two indexeslogstash 从两个索引上的 filebeat 写入日志
【发布时间】:2023-02-03 23:08:35
【问题描述】:

我在服务器上安装了 elk 堆栈,在另一台服务器上安装了 filebeat 以在 filebeats-[data] 索引上发送 syslog,它工作正常。 现在,在 elk 服务器上,我在 logstash 中配置了另一个输入,以在 json_data 索引上发送一个 json 文件,它工作正常,但现在我在两个索引上都找到了 filebeat 日志,但我不明白为什么。 我只希望 filebeat 日志记录在 filebeat-[data] 索引上,而不是在 json_data 索引上。 我哪里错了?

这是我的 logstash conf 文件

input {
  file {
    path => "/home/centos/json/test.json"
    start_position => "beginning"
    sincedb_path => "/dev/null"
  }
}
filter {
  json {
    source => "message"
  }
}
output {
  elasticsearch {
    hosts => "http://10.xxx.xxx.xxx:9200"
    index => "json_data"
  }
}
input {
  beats {
    port => 5044
  }
}
filter {
  if [type] == "syslog" {
    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}" ]
    }
    date {
      match => [ "syslog_timestamp", "MMM  d HH:mm:ss", "MMM dd HH:mm:ss" ]
    }
  }
}
output {
  elasticsearch {
    hosts => "http://10.xxx.xxx.xxx:9200"
    sniffing => true
    manage_template => false
    index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
  }
}

我尝试了不同的配置,我也尝试删除 json.conf,在这种情况下,filebeat 只写在 filebeat-[data] 索引上

【问题讨论】:

    标签: json logstash filebeat elk


    【解决方案1】:

    对于从 filebeat 到 logstash 的日志,你可以在 filebeat 配置中设置索引名称。在这种情况下,logstash 不会填充或操作索引名称,当然您还需要从 logstash 的 filebeat 配置中删除索引部分。

    对于 json_file,保持配置不变,无需更改任何内容。

    在filebeat中设置自定义索引名称,可以参考:https://www.elastic.co/guide/en/beats/filebeat/current/change-index-name.html

    【讨论】:

      猜你喜欢
      • 2019-11-30
      • 1970-01-01
      • 1970-01-01
      • 2019-08-25
      • 1970-01-01
      • 1970-01-01
      • 2019-11-30
      • 2020-10-09
      • 2019-06-04
      相关资源
      最近更新 更多