使用Docker构建Elastic Stack 8.2环境
背景:只需要一个选项的情况下,请用中文给出以下内容的释义:
使用”Elastic Stack”将各种日志数据集成到数据库中,并进行可视化和分析。这是一个使用Docker轻松创建最新的Elastic Stack环境的备忘录。
弹性栈
- Elastic Stack = Elasticsearch、Kibana、Beats、Logstash | Elastic
详细信息可在官方网页指南中找到,简单来说,以下是功能配置。
-
- Elasticsearch
-
- データの集積と検索と分析を担います。
-
- Logstash
-
- データをElasticsearchに投入する際のパイプライン機能を担います。
-
- Kibana
- データの可視化で様々なチャートやグラフなどで表現機能を担います。
过去,根据这些首字母,也被称为”ELK栈”。
- ELK Stack:Elasticsearch開発元が提供するプロダクト | Elastic
基本功能可以免费使用开源软件,但部分功能需要付费许可证。您可以先试用一段时间再停用。
行动背景
主机方
-
- OS:Ubuntu Server 20.04.4LTS
-
- Docker CE version 20.10.16
- docker compose version v2.6.0
容器端
- Elastic Stack 8.2.2
准备Docker环境
请参考以下页面介绍。
- Linuxサーバー環境のDockerインストールメモ – Qiita
防火墙设置(重要)
如果在全球IP地址环境中构建,由于Elastic Stack的每个服务都会泄露到互联网外部,因此务必在事先进行防火墙(安全组等)的设置。
在这种情况下,我们将仅限制对工作终端的TCP / 5601端口进行开放。
由于Elastic Stack经常成为网络攻击的目标,来自世界各地的攻击频繁发生,因此请务必不要对外部开放,即使只是几秒钟。
搭建 Elastic Stack
本次我们将使用以下存储库,方便地使用Docker Compose构建最新的Elastic Stack。
- [GitHub – deviantony/docker-elk: The Elastic stack (ELK) powered by Docker and Compose.] (https://github.com/deviantony/docker-elk)
从Github获取
从Github上获取所需的基本文件。
$ git clone https://github.com/deviantony/docker-elk.git
$ cd docker-elk
使用Docker Compose启动容器环境
$ docker compose up -d
$ docker compose ps
NAME COMMAND SERVICE STATUS PORTS
docker-elk-elasticsearch-1 "/bin/tini -- /usr/l…" elasticsearch running 0.0.0.0:9200->9200/tcp, 0.0.0.0:9300->9300/tcp, :::9200->9200/tcp, :::9300->9300/tcp
docker-elk-kibana-1 "/bin/tini -- /usr/l…" kibana running 0.0.0.0:5601->5601/tcp, :::5601->5601/tcp
docker-elk-logstash-1 "/usr/local/bin/dock…" logstash running 0.0.0.0:5000->5000/tcp, 0.0.0.0:5000->5000/udp, 0.0.0.0:5044->5044/tcp, 0.0.0.0:9600->9600/tcp, :::5000->5000/tcp, :::5000->5000/udp, :::5044->5044/tcp, :::9600->9600/tcp
docker-elk-setup-1 "/entrypoint.sh" setup running 9300/tcp
弹性堆栈的登录界面
根据环境的不同,等待几分钟后,您可以从Web浏览器中打开Elastic Stack的登录界面。
Docker主机的IP地址和端口号请设置为Kibana的5601端口。
「http://127.0.0.1:5601」的本地示例。
因為標準帳戶名設定為「elastic」並且密碼設定為「changeme」,所以請先登入並進行操作驗證。
重置密码并创建新密码
重置标准账户的密码并创建新密码。
对使用的三个账户进行操作。
在每次执行命令时,额外记录显示的新密码。
$ docker compose exec elasticsearch bin/elasticsearch-reset-password --batch --user elastic
$ docker compose exec elasticsearch bin/elasticsearch-reset-password --batch --user logstash_internal
$ docker compose exec elasticsearch bin/elasticsearch-reset-password --batch --user kibana_system
设置新密码
将先前创建的新密码修改并更改到环境配置文件「.env」中。
ELASTIC_PASSWORD='elasticの新規パスワード'
LOGSTASH_INTERNAL_PASSWORD='logstashの新規パスワード'
KIBANA_SYSTEM_PASSWORD='kibanaの新規パスワード'
重新启动 Docker Compose
使用Docker Compose重新启动Logstash和Kibana。
$ docker compose up -d logstash kibana
我会使用新密码重新登录Elastic Stack,以确认能够成功登录。
将日本语化
如果要将Elastic Stack的界面更改为日语,需要修改配置文件。
i18n.locale: "ja-JP"
使用Docker Compose重新启动Kibana。
$ docker compose restart kibana