Filebeat 未在 Elasticsearch 中创建索引
Posted
技术标签:
【中文标题】Filebeat 未在 Elasticsearch 中创建索引【英文标题】:Filebeat is not creating index in Elasticsearch 【发布时间】:2019-02-04 11:11:41 【问题描述】:我正在设置 Filebeat 以将日志发送到 Elasticsearch。这是我的filebeat.yml
:
filebeat.prospectors:
- type: log
paths:
- '/var/log/project/*.log'
json.message_key: message
output.elasticsearch:
hosts: ["localhost:9200"]
我有这个文件/var/log/project/test.log
,里面有这个内容:
"message": "This is a test"
我期待这个日志被发送到 Elasticsearch。 Elasticsearch 在 9200 的 localhost 的 Docker 容器中运行。
当我运行 filebeat (Docker) 时,Elasticsearch 中没有创建索引。所以,在 Kibana 中,我没有看到任何数据。
这是为什么呢? Filebeat不应该自动创建索引吗?
【问题讨论】:
【参考方案1】:您可以如下创建索引
output.elasticsearch:
hosts: ["localhost:9200"]
index: "test-%+yyyy.MM.dd"
【讨论】:
这会在 elasticsearch 中创建一个新索引还是连接到现有索引?【参考方案2】:解决了!我没有在主机和 Filebeat 容器之间共享日志目录,因此没有要发送的日志。
我在运行 Filebeat 时添加了一个卷:
docker run -it -v $(pwd)/filebeat.yml:/usr/share/filebeat/filebeat.yml -v /var/log/project/:/var/log/project/ docker.elastic.co/beats/filebeat:6.4.0
【讨论】:
以上是关于Filebeat 未在 Elasticsearch 中创建索引的主要内容,如果未能解决你的问题,请参考以下文章
安装Filebeat+Elasticsearch+Kibana(单节点)
filebeat + logstash + elasticsearch + granfa
ELK 做日志分析(filebeat+logstash+elasticsearch)配置
filebeat+elasticsearch+logstash+kibana收集系统日志(docker)