docker stack 部署 filebeat 容器

===============================================

 2018/6/7_第1次修改                       ccb_warlock

 

===============================================

 filebeat作为轻量化的日志传输工具非常适合部署在服务端将日志传输回来后经过ELK进行分析统计,故本篇整理stack中部署redis容器服务的方式。

 


 一、前提条件

 


 二、生成filebeat镜像

 由于我部署的时候没有找到官方的filebeat镜像,故只能先自己构建镜像包。

 2.1 获取filebeat包

 # 创建目录

mkdir -p /root/filebeat

 接着从官网(https://www.elastic.co/cn/downloads/beats/filebeat)获取tar.gz包(当时最新的包为filebeat-6.2.4-linux-x86_64.tar.gz),并将tar.gz包上传到/root/filebeat目录下。

 

 2.2 创建dockerfile、docker-entrypoint.sh

 # 编辑dockerfile 

vi /root/filebeat/dockerfile

 # 增加下面的内容到dockerfile文件中,wq保存。

# base image
FROM docker.io/centos

# Install Filebeat
WORKDIR /usr/local
COPY filebeat-6.2.4-linux-x86_64.tar.gz /usr/local
RUN cd /usr/local && \
    tar xvf filebeat-6.2.4-linux-x86_64.tar.gz && \
    rm -f filebeat-6.2.4-linux-x86_64.tar.gz && \
    ln -s /usr/local/filebeat-6.2.4-linux-x86_64 /usr/local/filebeat && \
    chmod +x /usr/local/filebeat/filebeat && \
    mkdir -p /etc/filebeat && \
    mkdir -p /var/log/filebeat-target

ADD ./docker-entrypoint.sh /usr/bin/
RUN chmod +x /usr/bin/docker-entrypoint.sh

ENTRYPOINT ["docker-entrypoint.sh"]

CMD ["/usr/local/filebeat/filebeat","-e","-c","/etc/filebeat/filebeat.yml"]

 # 编辑docker-entrypoint.sh

vi /root/filebeat/docker-entrypoint.sh

 # 增加下面的内容到docker-entrypoint.sh文件内,wq保存。

#!/bin/bash
set -e 
TMP=${PATHS}
config=/etc/filebeat/filebeat.yml
if [ ${TMP:0:1} = '/' ] ;then
    tmp='"'${PATHS}'"'
fi

env
echo 'Filebeat init process done. Ready for start up.'
echo "Using the following configuration:"
cat /etc/filebeat/filebeat.yml
exec "$@"

 2.3 构建filebeat容器

cd /root/filebeat/
docker build --rm -t filebeat:6.2.4 .

 三、部署filebeat

 3.1 创建映射的本地目录

mkdir -p /usr/docker-vol/filebeat/conf

 3.2 添加配置文件filebeat.yml

vi /usr/docker-vol/filebeat/conf/filebeat.yml

 # 添加下面的内容到filebeat.yml文件中,wq保存。

filebeat.prospectors:
- type: log
  paths:
    - /var/log/filebeat-target/access.log

output.logstash:
  # ELK - Logstash hosts
  hosts: ["192.168.12.12:5044"]

 3.3 配置filebeat-stack.yml

cd
vi filebeat-stack.yml

 # 添加下面的内容到filebeat-stack.yml文件内 ,wq保存。

version: '3'
services:

  filebeat:
    image: filebeat:6.2.4
    environment:
      - TZ=Asia/Shanghai
    volumes:
      # filebeat 的配置文件
      - /usr/docker-vol/filebeat/conf/filebeat.yml:/etc/filebeat/filebeat.yml
      # 将kongy获取的日志映射到filebeat-target目录下
      - /usr/docker-vol/kong/kongy-log:/var/log/filebeat-target
    deploy:
      replicas: 1
      restart_policy:
        condition: on-failure
    networks:
      - net01

networks:
  net01:
    external: true

 3.4 创建服务栈

 1)命令方式

cd
docker stack deploy -c filebeat-stack.yml filebeat-stack

 2)portainer界面方式(推荐)

 登录portainer(如果是根据上面的教程部署的portainer,浏览器访问http://宿主机IP:9000,在stack中增加rabbitmq-stack.yml文件中的内容)

 


 参考资料:
 1.http://blog.51cto.com/ylw6006/2107307?app
 2.http://blog.51cto.com/linyingyong/2083825

猜你喜欢

转载自www.cnblogs.com/straycats/p/9153495.html