使用 Docker-Compose 搭建单机版的 ELK 技术栈

ELK 是 Elasticsearch, Logstash 及 Kibana 组合的简称,被广泛应用于运行日志查找、分析等场景。本文介绍在开发环境中,通过 docker, docker-compose 安装单机版的 ELK。

下载 docker-compose 文件

在这里,我们使用 github 上的 docker-elk 项目来搭建 ELK 实验环境。

首先,到 项目官网 下载 zip 包。解压以后,进入 docker-elk-master 目录

相关项目运行起来大概需要 1.5G 的内存。

如果使用的是 Windows 作为 Docker 的宿主机,需要讲 C 盘的共享打开。

执行以下命令来启动。

1
docker-compose up -d

整个过程需要下载 elasticsearch, logstash 及 kibana 三个镜像,所以时间会比较久。

三个容器都启动后,可以通过浏览器访问:

1
http://localhost:9200

在提示输入用户名和密码框中,输入:

用户名: elastic
密码: changeme

可以看到类似下面的信息:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

{
"name" : "201f5f5b768e",
"cluster_name" : "docker-cluster",
"cluster_uuid" : "AmNP5m96QzWrC61u2rLrqw",
"version" : {
"number" : "7.10.0",
"build_flavor" : "default",
"build_type" : "docker",
"build_hash" : "51e9d6f22758d0374a0f3f5c6e8f3a7997850f96",
"build_date" : "2020-11-09T21:30:33.964949Z",
"build_snapshot" : false,
"lucene_version" : "8.7.0",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}

设置新密码

要设置新的密码,可以执行:

1
docker-compose exec -T elasticsearch bin/elasticsearch-setup-passwords auto --batch

该命令将会为6个子系统分别生成6个随机密码,类似如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Changed password for user apm_system
PASSWORD apm_system = H7WZniON5EUt6OjuNNzl

Changed password for user kibana_system
PASSWORD kibana_system = q7iOxBbuQz7tk3QfNE2L

Changed password for user kibana
PASSWORD kibana = q7iOxBbuQz7tk3QfNE2L

Changed password for user logstash_system
PASSWORD logstash_system = HGEXpVsHOUDrrS2Z8UE9

Changed password for user beats_system
PASSWORD beats_system = r5N1Awq72SsCTYS9Z8Xg

Changed password for user remote_monitoring_user
PASSWORD remote_monitoring_user = NV8kOK2YARn0O7Vzfxid

Changed password for user elastic
PASSWORD elastic = 5Vq6Crdn0hWmnOr9Aed5

为了方便以后使用,建议用一个文件将以上的密码保存。

为是密码更改生效,接下来需要修改相关的配置文件:

  1. docker-compose.yml - 注释或散掉 “ELASTIC_PASSWORD” 这一行的内容
  2. 修改 kibana\config\kibana.yml 文件中的密码为系统生成的随机密码,在我的环境中为: 5Vq6Crdn0hWmnOr9Aed5
  3. 修改 logstash\config\logstash.yml 文件中的密码为系统生成的随机密码,在我的环境中为: 5Vq6Crdn0hWmnOr9Aed5
  4. 修改 logstash\pipeline\logstash.conf 文件中的密码为系统生成的随机密码,在我的环境中为: 5Vq6Crdn0hWmnOr9Aed5

以上四个文件都改完以后,就可以重启 ELK, 执行以下命令:

1
docker-compose restart

但重启完成后,系统显示:

1
2
3
Restarting docker-elk-master_logstash_1      ... done
Restarting docker-elk-master_kibana_1 ... done
Restarting docker-elk-master_elasticsearch_1 ... done

访问 kibana

在浏览器中访问:

1
http://localhost:5601

就可以看到 kibana 的登录界面了。使用

用户名: elastic
密码: 5Vq6Crdn0hWmnOr9Aed5

密码就是上面生成的随机密码。 注意:这里需要的是 elastic 用户的密码

本文标题:使用 Docker-Compose 搭建单机版的 ELK 技术栈

文章作者:Morning Star

发布时间:2020年11月23日 - 07:11

最后更新:2021年04月16日 - 15:04

原始链接:https://www.mls-tech.info/docker/docker-compose-setup-elk/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。