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,出现下面的,说明我们加速器安装好了

浙公网安备 33010602011771号