基于Elasticsearch + Fluentd + Kibana(EFK)搭建日志收集管理系统
以下是一个基于Docker的简化版EFK系统的配置示例:
docker-compose.yml
文件:
version: '3'
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:7.10.0
environment:
- discovery.type=single-node
volumes:
- esdata1:/usr/share/elasticsearch/data
ports:
- "9200:9200"
- "9300:9300"
fluentd:
image: fluent/fluentd:latest
volumes:
- ./fluentd/conf:/fluentd/etc
links:
- elasticsearch
depends_on:
- elasticsearch
kibana:
image: docker.elastic.co/kibana/kibana:7.10.0
environment:
- ELASTICSEARCH_URL=http://elasticsearch:9200
ports:
- "5601:5601"
depends_on:
- elasticsearch
volumes:
esdata1:
driver: local
- Fluentd 配置文件
fluentd/conf/fluentd.conf
:
<source>
@type forward
port 24224
</source>
<match *>
@type elasticsearch
host elasticsearch
port 9200
index_name fluentd
type_name access_log
logstash_format true
flush_interval 1s
</match>
这个配置定义了一个使用Fluentd的Elasticsearch插件接收日志数据的Fluentd服务,以及一个Elasticsearch服务和一个Kibana服务。所有服务都运行在Docker容器中,并且数据卷用于持久化Elasticsearch的数据。
要启动EFK系统,只需要在包含这两个文件的目录中运行 docker-compose up
命令。
注意:在生产环境中,你可能需要对Elasticsearch和Fluentd的配置进行更详细的优化,比如调整硬件资源、增加节点、配置集群等。
评论已关闭