如何从Filebeat设置Kibana索引模式?

时间:2019-06-16 09:18:55

标签: elasticsearch logstash kibana elastic-stack filebeat

我正在使用带有节点应用程序的麋鹿堆栈。我正在使用文件拍,logstash格式将日志从主机发送到logstash,并将数据发送到elastic和kibana从elastic读取。在kibana中,我看到了默认的索引模式,例如filebeat-2019.06.16

我想将其更改为application-name-filebeat-2019.06.16。但这不起作用。我正在寻找一种在文件拍中执行此操作的方法,因为会有多个应用程序/文件拍,但只有一个logstash / elasticsearch / kibana。

我已经尝试过filebeat.yml上的文件拍配置。

filebeat.inputs:
- type: log
  paths:
    - /var/log/*.log
  fields:
    - app_name: myapp

output.logstash:
  index: "%{fields.app_name}-filebeat-%{[agent.version]}-%{+yyyy.MM.dd}"
  hosts: ["${ELK_ENDPOINT}"]
  ssl.enabled: true
  ssl:
    certificate_authorities:
      - /etc/pki/tls/certs/logstash-beats.crt

setup.template.name: "%{fields.app_name}-filebeat-%{[agent.version]}"

相同类型的文件将与节点应用程序主机和filebeat一起使用。

logstash也使用此配置初始化

02-beats-input.conf

input {
  beats {
    port => 5044
    codec => "json"
    ssl => true
    ssl_certificate => "/etc/pki/tls/certs/logstash-beats.crt"
    ssl_key => "/etc/pki/tls/private/logstash-beats.key"
  }
}

30-output.conf

filter {
  json {
    source => "message"
  }
}

output {
  elasticsearch {
    hosts => ["localhost"]
    manage_template => false
    index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
    document_type => "%{[@metadata][type]}"
  }
}

它正在像filebeat-2019.06.16那样建立索引模式。我想要类似application-name-filebeat-2019.06.16的东西。

1 个答案:

答案 0 :(得分:2)

您要将文件拍日志发送到logstash,需要在logstash管道而不是filebeat配置文件中定义索引名称。

尝试以下输出:

output {
  elasticsearch {
    hosts => ["localhost"]
    manage_template => false
    index => "%{[fields][app_name]}-%{[@metadata][beat]}-%{+YYYY.MM.dd}"
    document_type => "%{[@metadata][type]}"
  }
}

要在filebeat上设置索引名称,您需要将日志直接发送到elasticsearch。

如果您还有其他拍子将数据发送到同一端口,并且其中一些拍子没有字段[fields][app_name],则可以在输出中使用条件拍子或在管道上创建字段。