fluentd
Fluentd 安装配置
前提需要创建下面两个目录(路径可自定义)
mkdir -p /home/fluentd/container-logs /home/fluentd/conf/
制作含有elasticsearch插件的fluentd镜像
创建Dockerfile 方法1
FROM fluentd:latest
USER root
RUN ["gem", "install", "fluent-plugin-elasticsearch"]
创建Dockerfile 方法2
FROM fluentd:latest
RUN fluent-gem install fluent-plugin-elasticsearch --user-install
创建Dockerfile 方法3 (这个对接es 7.*)
FROM fluent/fluentd:v1.12.0-debian-1.0
USER root
RUN ["gem", "install", "elasticsearch", "--no-document", "--version", "7.10.1"]
RUN gem install excon -v 0.109.0
RUN ["gem", "install", "fluent-plugin-elasticsearch", "--no-document", "--version", "5.0.3"]
USER root
创建Dockerfile 方法4
FROM fluent/fluentd:v1.12.0-debian-1.0
USER root
RUN gem install faraday-net_http -v 3.0.2
RUN gem install faraday -v 2.8.1
RUN gem install excon -v 0.109.0
RUN ["gem", "install", "elasticsearch", "--no-document", "--version", "7.10.1"]
RUN ["gem", "install", "fluent-plugin-elasticsearch", "--no-document", "--version", "5.0.3"]
USER fluent
创建Dockerfile 方法5 (这个对接es 8.*)
FROM fluentd
USER root
RUN gem install fluent-plugin-elasticsearch \
fluent-plugin-tail-ex \
fluent-plugin-tail-multiline
USER root
#多留个端口出来供以后转发用
EXPOSE 24224 24224/udp 25225
制作镜像
docker build -t fluent .
值得注意的是
fluent-plugin-elasticsearch 插件的版本应该和 elasticsearch 对应,我这边使用的elasticsearch 为7.10.1 则 fluent-plugin-elasticsearch 应该在 5.0.3,版本无法对应的话,fluent 启动时 将报 无法连接至elasticsearch,如下:
报错
"The client is unable to verify that the server is Elasticsearch. Some functionality may not be compatible if the server is running an unsupported product."
启动服务
Docker启动
docker启动命令
docker run -d \
-p 24224:24224 \
-v /home/fluentd/container-logs:/fluentd/log \
-v /home/fluentd/conf/fluent.conf:/fluentd/etc/fluent.conf \
fluentd:latest
Docker-Compose启动
首先创建docker-compose.yml文件
version: '3'
services:
server-fluentd:
image: fluentd:latest
container_name: server-fluentd
ports:
- "24224:24224"
restart: always
privileged: true
environment:
- FLUENTD_CONF=fluentd.conf
volumes:
- ./log:/var/log # 如果是tail方式,flaunted配置文件中的日志路径应该是这个容器中的路径
- ./fluentd.conf:/fluentd/etc/fluentd.conf
docker-compose 启动命令
docker-compose up -d
#docker 启动命令
sudo docker run \
-d -p 24224:24224 \
-v /home/fluentd/container-logs:/fluentd/log \
-v /home/fluentd/conf/fluent.conf:/fluentd/etc/fluent.conf \
fluentd:latest