我想建立的efk日志系统由docker组成。一切都设置好了,只有fluentd有问题。
流体码头集装箱日志
2022年2月15日02:06:11 + 0000 [信息]:解析配置文件成功路径= "/fluentd/etc/fluent.conf "
2022年2月15日02:06:11 + 0000 [信息]:gem "流畅插件ElasticSearch"版本"5.0.3"
2022年2月15日02:06:11 + 0000 [信息]:gem "fluentd"版本"1.12.0"
/usr/本地/库/ruby/2.6.0/rubygems/内核扩展名/内核要求。rb:54:在"要求"中:无法加载此类文件--ElasticSearch/传输/传输/连接/选择器(LoadError)
我的目录:
my project/
├─ fluentd/
│ ├─ conf/
│ │ └── fluent.conf
│ └── Dockerfile
└── docker-compose.yml
docker-compose.yml:
version: "3"
services:
web:
image: httpd
ports:
- "8010:80"
depends_on:
- fluentd
logging:
driver: "fluentd"
options:
fluentd-address: 127.0.0.1:24224
fluentd-async: 'true'
tag: httpd.access
fluentd:
build: ./fluentd
volumes:
- ./fluentd/conf:/fluentd/etc
links:
- "elasticsearch"
ports:
- "24224:24224"
- "24224:24224/udp"
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:7.13.1
environment:
- discovery.type=single-node
expose:
- 9200
ports:
- "9200:9200"
kibana:
image: docker.elastic.co/kibana/kibana:7.13.1
links:
- "elasticsearch"
ports:
- "5601:5601"
停靠文件:
# fluentd/Dockerfile
FROM fluent/fluentd:v1.12.0-debian-1.0
USER root
RUN ["gem", "install", "fluent-plugin-elasticsearch", "--no-document", "--version", "5.0.3"]
USER fluent
fluent.conf:
<source>
@type forward
port 24224
bind 0.0.0.0
</source>
<match *.**>
@type copy
<store>
@type elasticsearch
host elasticsearch
port 9200
logstash_format true
logstash_prefix fluentd
logstash_dateformat %Y%m%d
include_tag_key true
type_name access_log
tag_key @log_name
flush_interval 1s
</store>
<store>
@type stdout
</store>
</match>
3条答案
按热度按时间bis0qfac1#
似乎是elasticsearch 8.0破坏了这个特性。你可以等待修复,在等待的同时添加这样的东西:
bkkx9g8r2#
我遇到了同样的问题,我通过将
Dockerfile
中的fluent-plugin-elasticsearch
版本更新为5.2.0来解决它。n53p2ov03#
我也遇到过同样的问题,但我以前制作的照片直到今天都是一模一样的,我不知道到底是什么改变了。
但如果你需要紧急解决问题,请使用我的个人形象:
我的停靠文件: