ELK(Elasticsearch+Logstash+Kibana)传统日志采集架构与ELFKK(Elasticsearch+Logstash+Kibana+Filebeat+Kafka)对比

传统ELK与增加Filebeat和Kafka后的架构对比表格
本文讲传统日志采集架构ELK(Elasticsearch+Logstash+Kibana)与ELK集成FileBeat、Kafka后的ELFKK 对比,并以表格的形式进行输出:
| 对比维度 | 传统ELK架构 | ELFKK架构 |
| 架构组成 | Elasticsearch + Logstash + Kibana | Elasticsearch + Logstash + Filebeat + Kafka + Kibana |
| 日志采集方式 | Logstash直接采集日志 | Filebeat采集日志后发送至Kafka |
| 中间缓冲机制 | 无缓冲机制 | 使用Kafka作为消息队列缓冲 |
| 系统资源占用 | Logstash资源占用较高 | Filebeat资源占用低,Logstash负载减轻 |
| 扩展性 | 扩展性有限,Logstash易成为瓶颈 | 支持水平扩展,Kafka提供高吞吐能力 |
| 容错性 | Logstash故障可能导致数据丢失 | Kafka提供持久化,数据不会丢失 |
| 部署复杂度 | 相对简单 | 需要额外部署Kafka,复杂度增加 |
| 适用场景 | 日志量小、系统简单 | 日志量大、高并发、分布式系统 |
附件一:Filebeat采集日志步骤
在配置Filebeat以采集日志时,你需要遵循以下几个步骤来确保它能够正常工作
1. 安装Filebeat
首先,确保你的系统上已经安装了Filebeat。你可以从Elastic官网下载对应操作系统的安装包,或者使用包管理器(如apt, yum等)进行安装。
例如,在Ubuntu上,你可以使用以下命令安装Filebeat:
wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.10.1-amd64.deb sudo dpkg -i filebeat-7.10.1-amd64.deb 2. 配置Filebeat
Filebeat的配置文件通常位于/etc/filebeat/filebeat.yml。你需要编辑这个文件来指定日志文件的位置、输出目标(例如Elasticsearch)等。
示例配置
filebeat.inputs: - type: log enabled: true paths: - /var/log/*.log # 指定要监控的日志文件路径 fields: log_type: app_logs # 自定义字段,用于在Elasticsearch中区分日志类型 output.elasticsearch: hosts: ["localhost:9200"] # Elasticsearch服务地址 username: "elastic" # 如果你设置了Elasticsearch的用户认证,需要填写用户名和密码 password: "changeme" # 密码 3. 启动Filebeat
配置完成后,你可以通过以下命令启动Filebeat:
sudo systemctl enable filebeat # 设置Filebeat开机启动 sudo systemctl start filebeat # 启动Filebeat服务 4. 检查Filebeat状态
确保Filebeat正在运行并且没有错误:
sudo systemctl status filebeat 5. 验证日志数据是否被正确发送到Elasticsearch
登录到Elasticsearch,检查索引中是否包含了Filebeat发送的日志数据。你可以使用Kibana来查看这些数据,或者使用curl命令直接查询:
curl -XGET 'localhost:9200/_search?q=log_type:app_logs' # 使用自定义字段查询日志类型为app_logs的日志 6. 调整和优化(可选)
根据需要调整Filebeat的配置,例如增加更多的输入、修改输出设置、增加过滤器等。Filebeat的配置非常灵活,可以根据具体需求进行调整。
常见问题解决
- 确保Elasticsearch运行正常:Filebeat依赖于Elasticsearch作为其输出目标。如果Elasticsearch服务未运行,Filebeat将无法发送数据。
- 检查权限问题:确保Filebeat有权限读取指定的日志文件。可能需要调整文件或目录的权限。
- 查看日志:如果Filebeat启动失败或行为异常,查看
/var/log/filebeat/filebeat中的日志文件可能会提供一些线索。
通过以上步骤,你应该能够成功配置并使用Filebeat来采集日志数据。