以下是一个简化的例子,展示如何使用ELK (Elasticsearch, Logstash, Kibana)、Filebeat和Kafka搭建一个分布式日志管理平台。
- 安装Elasticsearch、Logstash、Kibana和Filebeat。
- 安装Kafka。
- 配置Filebeat以将日志发送到Kafka。
- 配置Logstash以从Kafka读取日志并将其发送到Elasticsearch。
Filebeat配置 (filebeat.yml
):
filebeat.inputs:
- type: log
paths:
- /var/log/*.log
output.kafka:
hosts: ["kafka-broker:9092"]
topic: "logs_topic"
Logstash配置 (logstash.conf
):
input {
kafka {
bootstrap_servers => "kafka-broker:9092"
topics => ["logs_topic"]
group_id => "logstash_group"
}
}
filter {
# 添加过滤器规则,如解析JSON
}
output {
elasticsearch {
hosts => ["elasticsearch-host:9200"]
index => "logs-%{+YYYY.MM.dd}"
}
}
确保替换配置中的kafka-broker
, elasticsearch-host
, logs_topic
和日志文件路径/var/log/*.log
为实际的服务器地址和路径。
启动顺序:
- 启动Zookeeper和Kafka。
- 启动Elasticsearch。
- 启动Logstash(加载配置文件)。
- 在各个服务器上启动Filebeat。
访问Kibana,创建索引模式,并开始搜索和可视化您的日志数据。