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

2018/7/21_第3次修改                       ccb_warlock

更新说明:

2018/7/21:增加官方镜像库的文字描述;

2018/6/26:调整filebeat的底层镜像位ubuntu;

更新filebeat的版本到6.3.0;

增加底层不使用alpine的理由描述;

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

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

PS.官方目前也提供了镜像库(https://www.docker.elastic.co/),虽然官方说明底层是用centos,但是打包出来的镜像不仅容量大,而且目录的灵活性没有自己构建要强,故我还是建议自己来构建镜像。


 一、前提条件


 二、生成filebeat镜像

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

 2.1 获取filebeat包

# 创建目录

mkdir -p /root/filebeat

接着从官网(https://www.elastic.co/cn/downloads/beats/filebeat)获取tar.gz包(当时最新的包为filebeat-6.3.0-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  ubuntu:18.04 # Install Filebeat
WORKDIR /usr/local
COPY filebeat-6.3.0-linux-x86_64.tar.gz /usr/local
RUN cd /usr/local && \
    tar xvf filebeat-6.3.0-linux-x86_64.tar.gz && \
    rm -f filebeat-6.3.0-linux-x86_64.tar.gz && \
    ln -s /usr/local/filebeat-6.3.0-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"]

PS.这里选择ubuntu的原因是其作为底层打包出来的镜像比centos要小很多。

我曾经尝试使用alpine:3.7作为底层,但是构建后的镜像运行时报“standard_init_linux.go:190: exec user process caused "no such file or directory"”,故最后还是选择ubuntu。

# 编辑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.3.0 .

 三、部署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.3.0
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

docker stack 部署 filebeat的更多相关文章

  1. docker stack 部署容器监控方案(cAdvisor、Prometheus、Grafana)

    =============================================== 2018/7/8_第1次修改                       ccb_warlock === ...

  2. docker stack 部署 mysql 5.6

    =============================================== 2018/7/1_第1次修改                       ccb_warlock === ...

  3. docker stack 部署 redis

    =============================================== 2019/4/16_第2次修改                       ccb_warlock 更新 ...

  4. docker stack 部署 seafile(http)

    =============================================== 2018/5/13_第1次修改                       ccb_warlock == ...

  5. docker stack 部署 rabbitmq 容器

    =============================================== 2018/5/13_第1次修改                       ccb_warlock == ...

  6. docker stack 部署 mssql

    =============================================== 2019/12/8_第1次修改                       ccb_warlock == ...

  7. docker stack 部署nginx

    =============================================== 2018/7/29_第1次修改                       ccb_warlock == ...

  8. Docker 的部署方式

    在使用 docker run 命令启动 Docker 容器时,如果需要进行端口映射.目录挂载.网络信息等配置,整条命令将变得非常长,并且由于是一条 shell 命令,修改和复用也不方便.我们在大规模部 ...

  9. 容器基础(八): 使用docker swarm部署程序

    环境 基于上一节的env/server:v0.1, env/worker:v0.1镜像, 在基于debian8.2的两台机器上测试部署docker swarm. docker service部署 ➜ ...

随机推荐

  1. BZOJ 3881: [Coci2015]Divljak

    3881: [Coci2015]Divljak Time Limit: 20 Sec  Memory Limit: 768 MBSubmit: 553  Solved: 176[Submit][Sta ...

  2. 【Cf #503 C】Sergey's problem(有趣的构造)

    感觉这种构造题好妙啊,可我就是想不到诶. 给出一张无自环的有向图,回答一个独立集,使得图中任意一点都可以被独立集中的某一点两步之内走到. 具体构造方案如下: 下标从小到大枚举点,如果该点没有任何标记, ...

  3. 20165218 《网络对抗技术》Exp4 恶意代码分析

    Exp4 恶意代码分析 任务一:系统运行监控 记录分析联网的程序 创建计划任务netstat5218 schtasks /create /TN netstat5218 /sc MINUTE /MO 1 ...

  4. BZOJ 3438 小M的作物 & BZOJ 1877 [SDOI2009]晨跑

    我由衷地为我的朋友高兴.哈哈,yian,当你nick name破百上千时,再打“蒟蒻”就会被打的. 好的,说正事吧.请注意,这还是题解.但我发现,网络流实在是太套路了(怪不得这两年几乎销声匿迹).我们 ...

  5. 【整体二分】【P3834】 【模板】可持久化线段树 1(主席树)

    Description 给定一个长度为 \(n\) 的序列, \(m\) 次操作静态查询区间第 \(k\) 大 Input 第一行是 \(n,m\) 下一行描述这个序列 下面 \(m\) 行描述操作 ...

  6. opencv图片右转函数

    因为需要将函数进行右转,发现opencv自带 的过于麻烦.自己写了个右转的.可以根据这个想法写出任何方向的 //函数功能,右转图片 IplImage* convertImage(IplImage* i ...

  7. UIKit类图

  8. 科学计算三维可视化---TVTK管线与数据加载(数据集)

    一:数据集 三维可视化的第一步是选用合适的数据结构来表示数据,TVTK提供了多种表示不同种类数据的数据集 (一)数据集--ImageData >>> from tvtk.api im ...

  9. bzoj千题计划140:bzoj4519: [Cqoi2016]不同的最小割

    http://www.lydsy.com/JudgeOnline/problem.php?id=4519 最小割树 #include<queue> #include<cstdio&g ...

  10. 京东全链路压测军演系统(ForceBot)架构解密

    摘要:全链路压测是应对电商大促容量规划最有效的手段,如何有效进行容量规划是其中的架构关键问题.京东在全链路压测方面做过多年尝试,本文转载京东商城基础平台技术专家文章,介绍其最新的自动化压测 Force ...