通过以下方式安装ELK服务器:https://www.digitalocean.com/community/tutorials/how-to-install-elasticsearch-logstash-and-kibana-elk-stack-on-centos-7
它似乎工作除了filebeat连接; filebeat似乎没有转发任何东西,或者至少我在日志中找不到任何东西来指示发生了什么 .
我的文件配置如下:
filebeat:
prospectors:
-
paths:
- /var/log/*.log
- /var/log/messages
- /var/log/secure
encoding: utf-8
input_type: log
timeout: 30s
idle_timeout: 30s
registry_file: /var/lib/filebeat/registry
output:
logstash:
hosts: ["my_elk_fqdn:5044"]
bulk_max_size: 1024
compression_level: 3
worker: 1
tls:
certificate_authorities: ["/etc/pki/tls/certs/logstash-forwarder.crt"]
shipper:
logging:
to_files: true
files:
path: /var/log/filebeat
name: filebeat.log
rotateeverybytes: 10485760 # = 10MB
keepfiles: 7
level: debug
我一直从filebeat获取的日志文件输出不是很有帮助:
2016-07-14T17:32:21-04:00 DBG Start next scan
2016-07-14T17:32:31-04:00 DBG Start next scan
2016-07-14T17:32:41-04:00 DBG Start next scan
2016-07-14T17:32:46-04:00 DBG Flushing spooler because of timeout. Events flushed: 0
2016-07-14T17:32:51-04:00 DBG Start next scan
我的配置文件有什么问题吗?
当我在ELK服务器上测试时,看看我是否得到任何东西:
[root@my_elk_server ~]# curl -XGET 'http://localhost:9200/filebeat-*/_search?pretty'
{
"took" : 1,
"timed_out" : false,
"_shards" : {
"total" : 0,
"successful" : 0,
"failed" : 0
},
"hits" : {
"total" : 0,
"max_score" : 0.0,
"hits" : [ ]
}
}
哦,我的logbeats的logstash配置:
input {
beats {
port => 5044
ssl => true
ssl_certificate => "/etc/pki/tls/certs/logstash-forwarder.crt"
ssl_key => "/etc/pki/tls/private/logstash-forwarder.key"
}
}
更新:它不是filebeat . 消息确实被传递但仍有一个我无法跟踪的问题,有些松了一口气:
发现它不是导致问题的文件 . 似乎要发送到elasticsearch的logstash中的配置文件没有正确标记索引(和类型)以使其可搜索,如问题所示 . 而不是将filebeat放在索引名称中,它给出了如下结果:
"_index" : "%{[@metadata][beat]}-2016.07.14",
放在文件中的elasticsearch输出结果是不正确的
output {
elasticsearch {
hosts => "my_elk_fqdn:9200"
sniffing => true
manage_template => false
index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
document_type => "%{[@metadata][type]}"
}
}
显然,这个@metadata没有正确传递 . 有没有人能够正确填充_index和_type字段???
这可能是filebeat的错误? https://github.com/logstash-plugins/logstash-input-beats/issues/6