繁体   English   中英

如何为从相同文件节拍到logstash的不同日志设置不同的索引名称

[英]How to have different index name for different log from same filebeat to logstash

我已经设置了 ELK 的版本(7.3.1)。 filebeat(7.3.1) 在不同的虚拟机上。 我在安装了 Filebeat 的 VM 上有多个日志。 我想为不同的日志使用不同的索引名称。 我尝试了一种不起作用的方法,配置文件如下

文件节拍.yml

filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /data01/-----/LOG1/forecaster.log
  fields:
  log_type: type1
- type: log
  enabled: true
  paths:
    - /data01/-----/LOG2/forecaster.log
  fields:
  log_type: type2
- type: log
  enabled: true
  paths:
    - /data01/-----/LOG3/forecaster.log
  fields:
  log_type: type3

logstash.conf

input {
    beats {
                type => "filebeat"
                port => "5044"
    }
}

filter {
  #If log line contains tab character followed by 'at' then we will tag that entry as stacktrace
  if [message] =~ "\tat" {
    grok {
      match => ["message", "^(\tat)"]
      add_tag => ["stacktrace"]
    }
  }
}
output {
stdout {
    codec => rubydebug
  }
if ([fields][log_type] == "type1") {
elasticsearch {
hosts => ["IP:9200"]
index => "log1"
}
}
if ([fields][log_type] == "type2") {
elasticsearch {
hosts => ["IP:9200"]
index => "log2"
}
}
if ([fields][log_type] == "type3") {
elasticsearch {
hosts => ["IP:9200"]
index => "log3"
}
}
}

使用上述配置,并在分析 EL 和 filebeat 的日志后,从 filebeat 中获取日志文件并发送到正在处理的 logstash,但不会发送到弹性搜索。

为了完成这项工作,我需要帮助找出问题/缺失的地方

谢谢

似乎filebeat配置中的缩进在字段部分不正确,您缺少两个空格字符

filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /data01/-----/LOG1/forecaster.log
  fields:
    log_type: type1                            <-- fis this line
- type: log
  enabled: true
  paths:
    - /data01/-----/LOG2/forecaster.log
  fields:
    log_type: type2                            <-- fis this line
- type: log
  enabled: true
  paths:
    - /data01/-----/LOG3/forecaster.log
  fields:
    log_type: type3                            <-- fis this line

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM