EFK docker
时间: 2024-12-26 16:17:54 浏览: 5
### 如何在 Docker 中部署 EFK Stack
#### 使用 Docker 和 Docker Compose 部署 EFK 组件
为了简化配置过程并确保组件之间的协调工作,可以利用 `docker-compose.yml` 文件来定义和运行多容器应用。下面是一个基本的 `docker-compose.yml` 文件示例,用于启动 Elasticsearch、Fluentd 和 Kibana 的服务实例。
```yaml
version: '3'
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:7.10.1
container_name: es01
environment:
- discovery.type=single-node
ports:
- "9200:9200"
- "9300:9300"
fluentd:
image: fluent/fluentd:v1.12-debian-1
container_name: td-agent
volumes:
- ./fluent.conf:/fluentd/etc/fluent.conf
depends_on:
- "24224:24224"
kibana:
image: docker.elastic.co/kibana/kibana:7.10.1
container_name: kb01
ports:
- "5601:5601"
environment:
ELASTICSEARCH_HOSTS: http://elasticsearch:9200
depends_on:
- elasticsearch
```
此文件中的每一项都指定了所需的服务及其特定参数[^1]。
#### Fluentd 配置文件 (`fluent.conf`) 设置
为了让 Fluentd 正确处理来自其他 Docker 容器的日志数据并向 Elasticsearch 发送这些记录,在主机上创建一个名为 `fluent.conf` 的配置文件:
```xml
<source>
@type forward
port 24224
bind 0.0.0.0
</source>
<match **>
@type copy
<store>
@type elasticsearch
host elasticsearch
port 9200
logstash_format true
flush_interval 10s
</store>
<store>
@type stdout
</store>
</match>
```
这段 XML 片段描述了输入源以及输出目的地;它会监听端口 24224 上的数据流并将接收到的信息转发给 Elasticsearch 实例同时打印到标准输出以便调试[^2]。
完成上述步骤之后,只需在一个终端窗口中导航至包含这两个文件(即 `docker-compose.yml` 和 `fluent.conf`)的工作目录下执行命令 `docker-compose up -d` 即可让整个栈自动构建起来并在后台持续运行。
阅读全文