Docker Compose ELK 8.7 简介
ELK 是一个流行的日志管理和分析工具组合,由 Elasticsearch、Logstash 和 Kibana 组成。Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。本文将介绍如何使用 Docker Compose 来部署和管理 ELK 8.7。
准备工作
在开始之前,确保已经安装了 Docker 和 Docker Compose。可以从 Docker 官方网站[ Docker,然后使用以下命令安装 Docker Compose:
$ sudo curl -L " -s)-$(uname -m)" -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose
编写 Docker Compose 文件
在开始之前,让我们先创建一个新的目录,用于存放 Docker Compose 文件和相关配置。在该目录中创建一个名为 docker-compose.yml
的文件,并将以下内容添加到文件中:
version: '3'
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:7.15.0
ports:
- 9200:9200
environment:
- discovery.type=single-node
logstash:
image: docker.elastic.co/logstash/logstash:7.15.0
volumes:
- ./logstash/config:/usr/share/logstash/config
- ./logstash/pipeline:/usr/share/logstash/pipeline
ports:
- 5044:5044
depends_on:
- elasticsearch
kibana:
image: docker.elastic.co/kibana/kibana:7.15.0
ports:
- 5601:5601
depends_on:
- elasticsearch
上述配置文件定义了三个服务:Elasticsearch、Logstash 和 Kibana。其中 Elasticsearch 服务将在本地的 9200 端口上监听,Logstash 服务将在本地的 5044 端口上监听,Kibana 服务将在本地的 5601 端口上监听。
此外,我们还定义了一些挂载卷,用于将 Logstash 的配置文件和管道文件与容器内的相应目录进行映射。
启动 ELK 服务
通过以下命令启动 ELK 服务:
$ docker-compose up -d
命令执行完毕后,ELK 服务将在后台运行。可以使用以下命令来验证服务是否已经正常启动:
$ docker-compose ps
如果一切正常,将会看到类似以下的输出:
Name Command State Ports
-------------------------------------------------------------------------------------------------------------
dockercompose_elasticsearch_1 /tini -- /usr/local/bin/do ... Up 0.0.0.0:9200->9200/tcp, :::9200->9200/tcp
dockercompose_kibana_1 /usr/local/bin/dumb-init - ... Up 0.0.0.0:5601->5601/tcp, :::5601->5601/tcp
dockercompose_logstash_1 /usr/local/bin/docker-entr ... Up 0.0.0.0:5044->5044/tcp, :::5044->5044/tcp
发送日志到 ELK
现在,我们已经成功启动了 ELK 服务,接下来让我们尝试将一些日志发送到 Elasticsearch 中。在 Logstash 配置目录中创建一个名为 logstash.conf
的文件,并将以下内容添加到文件中:
input {
stdin {}
}
output {
elasticsearch {
hosts => ["elasticsearch:9200"]
}
stdout {}
}
上述配置文件定义了一个输入插件,该插件将接收来自标准输入的日志数据。接着,定义了一个输出插件,该插件将日志数据发送到 Elasticsearch,并同时将日志数据打印到标准输出。
现在,我们可以通过以下命令来发送日志数据:
$ echo "Hello ELK" | docker-compose run logstash -f /usr/share/logstash/pipeline/logstash.conf
命令执行完毕后,日志数据将被发送到 Elasticsearch。
访问 Kibana
最后,让我们尝试通过浏览器访问 Kibana,以查看和分析