安装
准备工作
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.(其他业务日志需要写文件挂载到此目录)