elasticsearch 如何从filebeat设置kibana索引模式?,elasticsearch,logstash,kibana,elastic-stack,filebeat,elasticsearch,Logstash,Kibana,Elastic Stack,Filebeat" /> elasticsearch 如何从filebeat设置kibana索引模式?,elasticsearch,logstash,kibana,elastic-stack,filebeat,elasticsearch,Logstash,Kibana,Elastic Stack,Filebeat" />

elasticsearch 如何从filebeat设置kibana索引模式?

elasticsearch 如何从filebeat设置kibana索引模式?,elasticsearch,logstash,kibana,elastic-stack,filebeat,elasticsearch,Logstash,Kibana,Elastic Stack,Filebeat,我将elk堆栈与节点应用程序一起使用。我用filebeat、logsstash格式将日志从主机发送到logstash,并将数据发送到elastic,kibana从elastic读取数据。在kibana中,我看到默认索引模式,如filebeat-2019.06.16 我想将此更改为application-name-filebeat-2019.06.16。但它不起作用。我正在寻找一种在filebeat中实现它的方法,因为将有多个应用程序/filebeats,但只有一个logstash/elastic

我将elk堆栈与节点应用程序一起使用。我用filebeat、logsstash格式将日志从主机发送到logstash,并将数据发送到elastic,kibana从elastic读取数据。在kibana中,我看到默认索引模式,如
filebeat-2019.06.16

我想将此更改为
application-name-filebeat-2019.06.16
。但它不起作用。我正在寻找一种在filebeat中实现它的方法,因为将有多个应用程序/filebeats,但只有一个logstash/elasticsearch/kibana

我在
filebeat.yml
上尝试了这个filebeat配置

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

的东西。如果要将filebeat日志发送到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


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

我以后必须使用logstash gork提取日志。是否可以从filebeat发送变量
@appname
之类的内容,这些内容可以在日志存储中使用,比如
“%{[@appname][beat]}-%{+YYYY.MM.dd}”
?是的,您可以使用filebeat中的字段变量-
字段:env:staging
。参考-。它也可以在日志存储中加载。