Elastic:运用 Docker 安装 Elastic Stack 并采集日志文件
Posted Elastic 中国社区官方博客
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Elastic:运用 Docker 安装 Elastic Stack 并采集日志文件相关的知识,希望对你有一定的参考价值。
尽管在之前的文章中,我好些文章讲述如何使用 Docker 来安装 Elastic Stack。在今天的文章中,我想使用 Docker 来安装所有的需要用到的 Elastic Stack 元件:
- Filebeat
- Logstash
- Elasticsearch
- Kibana
我们使用的架构是:
为了方便大家学习,你可以在 github 下载仓库:
git clone https://github.com/liu-xiao-guo/elasticstack-lab
整个项目的文件如下:
$ pwd
/Users/liuxg/data/elasticstack-lab
$ ls -al
total 48
drwxr-xr-x 11 liuxg staff 352 Jan 18 16:53 .
drwxr-xr-x 149 liuxg staff 4768 Jan 18 16:44 ..
-rw-r--r--@ 1 liuxg staff 6148 Jan 18 16:44 .DS_Store
-rw-r--r-- 1 liuxg staff 29 Jan 18 16:39 .env
drwxr-xr-x 14 liuxg staff 448 Jan 18 17:11 .git
-rw-r--r-- 1 liuxg staff 1617 Jan 18 16:52 README.md
-rw-r--r-- 1 liuxg staff 1160 Jan 18 16:59 docker-compose.yml
drwxr-xr-x 3 liuxg staff 96 Jan 18 16:26 filebeat
-rw-r--r-- 1 liuxg staff 232 Jan 18 17:03 filebeat.Dockerfile
drwxr-xr-x 3 liuxg staff 96 Jan 18 17:26 logs
drwxr-xr-x 4 liuxg staff 128 Jan 18 16:45 logstash
$ tree -L 3
.
├── README.md
├── docker-compose.yml
├── filebeat
│ └── filebeat.yml
├── filebeat.Dockerfile
├── logs
│ └── sample.log
└── logstash
├── logstash.conf
└── logstash.yml
在上面:
- docker-compose.yml 是启动各个 Elastic Stack 容器的
- filebeat.yml 是 Filebeat 的配置文件
- filebeat.Dockerfile 是用来编译 Filebeat 的镜像的
- sample.log 是我们需要采集的日志文件
- logstash.conf 及 logstash.yml 是 Logstash 的配置文件
我们可以参考 README.md 文件来进行操作。在默认的情况下,我们使用最新的 7.16.2 版本来进行练习。如果你想使用其它的版本,请修改 .env 里的版本,同时需要修改在 filebeat.Dockerfile 里的 Filebeat 的版本以保持一致。
在下载完整个仓库后,我们可以使用如下的命令来启动 Elastic Stack:
docker-compose up
当然前提是我们必须启动 Docker。
启动过后,我们可以看到如上所示的画面。
我们在浏览器中,打开地址 http://localhost:5601/ 进入到 Kibana。我们在 DevTools 里打入如下的命令:
GET _cat/indices
我们可以看到一个叫做 sample-2022.01.18 的索引。而它里面文档的内容是:
GET sample-2022.01.18/_search
这个和我们之前的 sample.log 的内容进行比较:
通过这个练习,我们了解如何使用 Docker 来部署 Elastic Stack,并使用 Pipeline:Filebeat => Logstash => Elasticsearch。针对我们实际的使用,我们需要根据自己的情况修改 Logstash 及 Filebeat 的配置文件。
以上是关于Elastic:运用 Docker 安装 Elastic Stack 并采集日志文件的主要内容,如果未能解决你的问题,请参考以下文章
Elasticsearch:使用 Docker compose 来一键部署 Elastic Stack 8.x
Elastic:Fluentd 在 Elastic Stack 中的运用