使用Docker部署ELK

这篇文章主要是将之前部署的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


至此,完成














猜你喜欢

转载自blog.csdn.net/fuckluy/article/details/80854294