docker-compose方式安装elk

笔者安装的软件:elasticsearch:7.1.1,kibana7.1.1,logstash7.1.1

  由于是使用docker-compose方式安装的,所以需要去安装docker-compose

docker-compose安装步骤如下

1、安装python-pip
# yum -y install epel-release
# yum -y install python-pip
 
2、安装docker-compose
# pip install docker-compose
 
3、待安装完成后,执行查询版本的命令
# docker-compose version
 
docker-compose配置文件如下:
version: '2.2'
services:
  elasticsearch:
    image: elasticsearch:7.1.1
    container_name: elasticsearch7.1.1
    environment:
      - discovery.type=single-node
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    volumes:
      - /usr/local/docker_elk/elasticsearch/data:/usr/share/elasticsearch/data
    hostname: elasticsearch
    restart: always
    ports:
      - 9200:9200
      - 9300:9300
  kibana:
    image: kibana:7.1.1
    container_name: kibana7.1.1
    environment:
      - elasticsearch.hosts=http://elasticsearch:9200
    hostname: kibana
    depends_on:
      - elasticsearch
    restart: always
    ports:
      - "5601:5601"
  logstash:
    image: logstash:7.1.1
    container_name: logstash7.1.1
    hostname: logstash
    volumes:
      - /usr/local/docker_elk/logstash/logstash.conf:/usr/share/logstash/pipeline/logstash.conf
    restart: always
    depends_on:
      - elasticsearch
    ports:
      - 9600:9600
      - 5044:5044

 

执行 docker-compose up -d,这样以后台形式启动elk容器,这个启动的时间有点久。

启动完容器,使用docker ps查看容器

在浏览器输入http://ip:5601/,就可以看到kibana的界面,这样就完成了elk搭建启动。

 

 

这里需要注意的点:

   要在es指定内存大小,- "ES_JAVA_OPTS=-Xms512m -Xmx512m",根据自己机器的内存来设置合适的大小,要不然不指定,会出现内存不够的错误。

   volumes是我们的宿主机的目录映射到容器的目录,所以需要提前创建好目录,并且给宿主机器目录赋予权限。

 否则会出现没有权限的错误, java.nio.file.AccessDeniedException: /usr/share/elasticsearch/data/nodes,这个错误容易误导以为是docker容器目录没有权限,其实是我们的宿主的机器目录没有权限

,赋予权限也很简单,chmod 777  /usr/local/docker_elk/elasticsearch/data,这个是给data目录赋予权限。这样就可以启动elasticsearch.

 

 

因为dockerhub是在外国网站,为了加快docker容器拉取速度。我们可以配置docker镜像加速器。

  vim /etc/docker/daemon.json,编辑这个文件,没有就创建这个文件

 

{
  "registry-mirrors": [
    "https://hub-mirror.c.163.com",
    "https://mirror.baidubce.com"
  ]
}
 保存后,执行下面的命令
systemctl daemon-reload
systemctl restart docker
 
执行命令
docker info,出现下面的,说明我们加速器安装好了

  

 

 

 

posted @ 2021-01-03 13:33  linniku  阅读(486)  评论(0)    收藏  举报