如何从 filebeat 设置 kibana 索引模式?
How to set kibana index pattern from filebeat?
我正在将 elk stack 与节点应用程序一起使用。我使用 filebeat、logstash 格式将日志从主机发送到 logstash,并将数据发送到 elastic 并从 elastic 读取 kibana。在 kibana 中,我看到了像 filebeat-2019.06.16
这样的默认索引模式。
我想将其更改为 application-name-filebeat-2019.06.16
。但它不起作用。我正在寻找一种在 filebeat 中执行此操作的方法,因为会有多个 applications/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-节拍-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。
如果您有其他节拍将数据发送到同一端口并且其中一些没有字段 [fields][app_name]
您可以在输出上使用条件或在管道上创建字段。
我正在将 elk stack 与节点应用程序一起使用。我使用 filebeat、logstash 格式将日志从主机发送到 logstash,并将数据发送到 elastic 并从 elastic 读取 kibana。在 kibana 中,我看到了像 filebeat-2019.06.16
这样的默认索引模式。
我想将其更改为 application-name-filebeat-2019.06.16
。但它不起作用。我正在寻找一种在 filebeat 中执行此操作的方法,因为会有多个 applications/filebeats 但只有一个 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-节拍-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。
如果您有其他节拍将数据发送到同一端口并且其中一些没有字段 [fields][app_name]
您可以在输出上使用条件或在管道上创建字段。