[ElasticStack系列]docker部署logstash

本文介绍了如何在Docker环境中部署Logstash,包括准备工作、构建和推送私有镜像、配置文件说明,以及启动和测试过程。在部署过程中遇到的坑如Kafka配置错误和JSON写入ES失败的问题,也提供了相应的解决方案。
摘要由CSDN通过智能技术生成

安装

准备工作

1.Dockerfile

FROM docker.elastic.co/logstash/logstash:5.5.2

#自定义输入、输出流
RUN rm -f /usr/share/logstash/pipeline/logstash.conf
ADD config/pipeline/ /usr/share/logstash/pipeline/

#测试暂时不改变setting文件
#ADD config/setting/ /usr/share/logstash/config/

2.build_image.sh

#!/bin/bash
VER="5.5.2"
docker build -t "dev.docker.mcc.cn:5000/logstash:${VER}" .
docker push dev.docker.mcc.cn:5000/logstash:${VER}

3.输入输出流配置文件: stdout.conf

说明: 从文件读取,然后输出到控制台

input {        
  file {
    path => "/var/log/glog/*"
    type => "file_2_console"
    start_position => "beginning"
  }
}
output {
  if [type] == "file_2_console" {
      stdout {
       codec => rubydebug
    }
  }
}

完整目录结构如下:
这里写图片描述

步骤

1.先创建私有镜像仓库

说明:否则会报错Repo not exist,至于为什么打了tag就能push成功,后续再搞清楚

docker login xxx

docker pull docker.elastic.co/logstash/logstash:5.5.2

docker tag docker.elastic.co/logstash/logstash:5.5.2 dev.docker.mcc.cn:5000/logstash:5.5.2

docker push dev.docker.mcc.cn:5000/logstash:5.5.2

2.构建镜像

root@node36:~/mcc/logstash# ./build.sh

3.执行启动脚本start.sh

说明:挂载宿主机的/var/log/glog这个目录到容器内,从而使得容器内可以读取到宿主机的file log.(其他业务日志需要写文件挂载到此目录)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值