Docker搭建ELK步骤详解
一.安装前须知
-
以下步骤在 VMware 中的 centos 7 中操作,ip 地址为:
192.168.161.128
;注意安装的时候最好统一版本,否则后面会出现许多问题,进官网搜索对应镜像,查看 Tags 标签下的版本,目前我这最新的 Tags 是
7.12.1
,所以拉取镜像时统一加上该版本号。官网镜像地址 -
Docker 搭建 ELK 之前需熟悉 Docker 的相关指令,如:拷贝容器文件
docker cp
、强制删除容器:docker rm -f 容器id
、创建网络:docker network create elk
、查看日志:docker logs container
等等。 -
为了方便后续文件的挂载,先创建如下目录
/usr/local/elk
,再执行mkdir /usr/local/elk/{elasticsearch,kibana,logstash}
创建3个对应的目录,所以以下操作如无特别说明,均在/usr/local/elk
下执行。 -
为了容器间的通信,需要先用 docker 创建一个网络:
docker network create elk
。
二.安装 Docker
安装 docker 可以照着官网步骤一步一步来,挺简单的。
Install Docker Engine on CentOS
安装完后可以看下版本:docker -v
查看 docker 详细信息:docker info
三.Docker 安装 ElasticSearch
1.搜索、下载并查看镜像
# 搜索镜像
docker search elasticsearch
# 拉取 7.12.1 版本镜像
docker pull elasticsearch:7.12.1
# 查看所有镜像
docker images
2.拷贝配置文件
# 运行 elasticsearch
docker run -d --name es --net elk -P -e "discovery.type=single-node" elasticsearch:7.12.1
# 进入容器查看配置文件路径
docker exec -it es /bin/bash
cd config
在 config 中可看到 elasticsearch.yml 配置文件,再执行 pwd
可以看到当前目录为: /usr/share/elasticsearch/config
,所以退出容器,执行文件的拷贝:
# 将容器内的配置文件拷贝到 /usr/local/elk/elasticsearch/ 中
docker cp es:/usr/share/elasticsearch/config/elasticsearch.yml elasticsearch/
# 修改文件权限
chmod 666 elasticsearch/elasticsearch.yml
# 在elasticsearch 目录下再创建data目录,同时修改权限
chmod -R 777 elasticsearch/data
注意:这里要修改文件的权限为可写,否则,进行挂载后,在外部修改配置文件,容器内部的配置文件不会更改。同时,创建 data 目录进行挂载。
3.重新运行容器并挂载:
# 先删除旧的容器
docker rm -f es
# 运行新的容器
docker run -d --name es \
--net elk \
-p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \
--privileged=true \
-v $PWD/elasticsearch/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v $PWD/elasticsearch/data/:/usr/share/elasticsearch/data \
elasticsearch:7.12.1
说明:
- -p (小写)映射端口号,主机端口:容器端口
- -P(大写)随机为容器指定端口号
- -v 进行容器的挂载
- –name 指定容器别名
- –net 连接指定网络
- -e 指定启动容器时的环境变量
- -d 后台运行容器
- –privileged=true 使容器有权限挂载目录
4.查看容器