这篇文章主要是将之前部署的ELK改为docker部署,都使用5.6的镜像,因为最新的elk镜像改地址了,国内一直拉不下来
非Docker部署ELK:https://blog.csdn.net/fuckluy/article/details/80430732
环境:Centos 7 、 安装好了docker 、关闭防火墙
1、先安装Compose
$ sudo curl -L https://github.com/docker/compose/releases/download/1.17.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose
测试是否安装成功:
$ docker-compose --version
2、创建相应的目录
mkdir /root/elk
3、进入相应的目录编写配置文件
cd /root/elk/
vim logstash.conf
输入以下内容:
input {
tcp {
port => 4567
}
}
filter {
}
output {
elasticsearch {
hosts => ["elasticsearch:9200"]
index => "logstash-%{type}-%{+YYYY.MM.dd}"
document_type => "%{type}"
}
}
4、制作自己的logstash镜像:
cd /root/elk/
vim dockerfile
输入以下内容
FROM logstash:5.6
COPY logstash.conf /some/config-dir/
CMD ["-f","/some/config-dir/logstash.conf"]
然后build镜像:
docker build -t my-logstash:5.6 .
该image做好后可以推送到自己的镜像仓库,便于以后重复使用
5、my-logstash镜像做好后编写docker-compose.yml文件
cd /root/elk
vim docker-compose.yml
在yml文件中输入以下内容:
version: '2'
services:
elasticsearch:
image: elasticsearch:5.6
container_name: elasticsearch
restart: always
networks:
- elk
ports:
- "9200:9200"
- "9300:9300"
volumes:
- ./data:/usr/share/elasticsearch/data
logstash:
image: my-logstash:5.6
container_name: logstash
restart: always
networks:
- elk
ports:
- "4567:4567"
depends_on:
- elasticsearch
kibana:
image: kibana:5.6
container_name: kibana
restart: always
networks:
- elk
ports:
- "5601:5601"
depends_on:
- elasticsearch
networks:
elk:
然后保存退出,并在该路径下使用下面的命令运行该docker-compose.yml文件
docker-compose up -d
直接把compose中的内容复制过去可能会出现格式的问题,需要重新调整个是,在线编辑yml文件
logstash的conf文件也不要直接复制,否则会有格式问题,如果logstash的input是读文件,需要挂载主机目录到容器中,要修改docker-compose文件内容
至此,完成