docker安装logstash服务

1.创建目录
mkdir logstash #主目录
cd logstash
mkdir dockerfile #Dockerfile构建镜像目录
mkdir shell #服务构建启动相关脚本
mkdir volumes #挂载服务配置、日志、数据
在这里插入图片描述
2.编写Dockerfile
cd dockerfile
logstash安装比较简单,主要是需要配置一些配置文件;直接基于已有的镜像,Dockerfile基本上没有内容
vim Dockerfile
添加内容

FROM logstash:7.4.2


USER logstash

ENTRYPOINT ["logstash","-f"]

CMD ["/usr/share/logstash/logstash.conf"]

3.编写构建脚本

cd ../shell
vim build

添加内容


#!/bin/bash
DOCKER_PATH=$PWD/../
sudo docker build -f $DOCKER_PATH/dockerfile/Dockerfile  -t logstash:7.4.2 $DOCKER_PATH/dockerfile/

赋予执行权限
chmod 755 build
构建镜像
./build
在这里插入图片描述

查看镜像
docker images
在这里插入图片描述
3.配置文件修改
进入volumes目录
创建config目录挂载配置文件
mkdir config
编写配置文件logstash.conf
cd config
vim logstash.conf
内容如下

# Sample Logstash configuration for creating a simple
# Beats -> Logstash -> Elasticsearch pipeline.

input {
#  beats {
#    port => 5044
#  }
tcp {
	 # elastcisearch 服务所在 ip 地址(docker内注释这行)
	 host => "127.0.0.1"
	 # logstash的端口,默认为 5044。
	 port => 5044
	 codec => json_lines
	}
}

output {
  elasticsearch {
    hosts => ["http://127.0.0.1:9200"]
    index =>  "logstash-console-%{+YYYY.MM.dd}"
    #user => "elastic"
    #password => "changeme"
  }
}

编写配置文件logstash.yml
vim logstash.yml
修改内容

# 127.0.0.1 为 logstash 服务所在 ip
http.host: "127.0.0.1"(docker需要填0.0.0.0否则外部无法访问)
http.port: 9600

4.编写创建容器脚本
vim run
内容为

#!/bin/bash
DOCKER_PATH=$PWD/../
port=9600
imageName=logstash
version=7.4.2
sudo docker run -itd  -p ${port}:9600 -p 5044:5044  --name logstash  -v /etc/localtime:/etc/localtime -v $DOCKER_PATH/volumes/config/jvm.options:/usr/share/logstash/config/jvm.options -v $DOCKER_PATH/volumes/config/logstash.conf:/usr/share/logstash/config/logstash.conf -v $DOCKER_PATH/volumes/config/logstash.yml:/usr/share/logstash/config/logstash.yml -v $DOCKER_PATH/volumes/data/:/usr/share/logstash/data/ --restart=always ${imageName}:${version}

赋予执行权限
chmod 755 run
创建容器并启动
./run
在这里插入图片描述
查看容器
docker ps
在这里插入图片描述
5.验证是否成功
浏览器输入宿主机ip:9600
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44835704/article/details/119974169