elasticsearch logstash不从beats读取logtype字段
我在一个节点上运行logstash filebeat和elasticsearch 我试图让logstash识别标记为“syslog”的日志,并将它们转储到名为“syslog”的索引中,但它似乎看不到标签,因为它们都进入了“未分类”索引(我的所有默认索引) 这是我的表
elasticsearch logstash不从beats读取logtype字段,
elasticsearch,logstash,elastic-stack,filebeat,
elasticsearch,Logstash,Elastic Stack,Filebeat,我在一个节点上运行logstash filebeat和elasticsearch 我试图让logstash识别标记为“syslog”的日志,并将它们转储到名为“syslog”的索引中,但它似乎看不到标签,因为它们都进入了“未分类”索引(我的所有默认索引) 这是我的表 /etc/filebeat/filebeat.yml filebeat: prospectors: - paths: - /var/log/messages fields:
/etc/filebeat/filebeat.yml
filebeat:
prospectors:
-
paths:
- /var/log/messages
fields:
type: syslog
output:
logstash:
hosts: ["localhost:9901"]
这是我的日志存储配置文件
/etc/logstash/conf.d/logstash_server_syslog.conf
input {
beats {
port => "9901"
}
}
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 {
if [type] == "syslog" {
elasticsearch {
hosts => ["10.0.0.167:9200", "10.0.0.168:9200"]
index => "syslog"
}
} else {
elasticsearch {
hosts => ["10.0.0.167:9200", "10.0.0.168:9200"]
index => "uncategorized"
}
}
}
查看输出(使用stdout{}节)可以证实这一点,但我猜您错过了以下部分:
默认情况下,[在“字段”配置中]指定的字段将分组在
输出文档中的字段子字典。存储定制
字段作为顶级字段,请将\u root选项下的字段\u设置为true
查看输出(使用stdout{}节)可以证实这一点,但我猜您错过了以下部分:
默认情况下,[在“字段”配置中]指定的字段将分组在
输出文档中的字段子字典。存储定制
字段作为顶级字段,请将\u root选项下的字段\u设置为true
使用配置选项在Filebeat中设置自定义
类型
字段
filebeat:
prospectors:
- paths:
- /var/log/messages
document_type: syslog
这将设置
@metadata.type
字段以与Logstash一起使用,而自定义字段则不会。使用配置选项在Filebeat中设置自定义类型
字段
filebeat:
prospectors:
- paths:
- /var/log/messages
document_type: syslog
这会将@metadata.type
字段设置为与Logstash一起使用,而自定义字段则不会