文章      动态     相关文章     最新文章     手机版动态     相关动态     |   首页|会员中心|保存桌面|手机浏览

zyktsh

http://sjzytwl.xhstdz.com/comzyktsh/

相关列表
文章列表
  • 暂无文章
推荐文章
Filebeat+Kafka+Logstash+Elasticsearch+Kibana 构建日志分析系统
发布时间:2024-11-08        浏览次数:24        返回列表

随着时间的积累,日志数据会越来越多,当你需要查看并分析庞杂的日志数据时,可通过 Filebeat+Kafka+Logstash+Elasticsearch 采集日志数据到Elasticsearch(简称ES)中,并通过 Kibana 进行可视化展示与分析。

Filebeat+Kafka+Logstash+Elasticsearch+Kibana 构建日志分析系统

本文介绍具体的实现方法。

Kafka 是一种分布式、高吞吐、可扩展的消息队列服务,广泛用于日志收集、监控数据聚合、流式数据处理、在线和离线分析等大数据领域,已成为大数据生态中不可或缺的部分。在实际应用场景中,为了满足大数据实时检索的需求,一般可以使用 Filebeat 采集日志数据,将 Kafka 作为 Filebeat 的输出端。Kafka 实时接收到 Filebeat 采集的数据后,以 Logstash 作为输出端输出。输出到 Logstash 中的数据在格式或内容上可能不能满足你的需求,此时可以通过 Logstash 的 filter 插件过滤数据。最后将满足需求的数据输出到 ES 中进行分布式检索,并通过 Kibana 进行数据分析与展示。

简单处理流程如下:

CenterOS 7.6 版本,推荐 8G 以上内存。

1、Docker 环境

执行命令如下:

验证下 docker info:

2、Docker Compose 环境

❝Docker Compose是一个用于定义和运行多个 docker 容器应用的工具。使用 Compose 你可以用 YAML 文件来配置你的应用服务,然后使用一个命令,你就可以部署你配置的所有服务了。 ❞

3、版本准备

4、环境初始化

执行命令如下:

5、服务安装

docker-compose.yml 文件内容为:

将该文件上传的 linux 服务器上,执行 docker-compose up 命令即可启动所有服务。

filebeat 客户端安装方式:

6、服务设置

当所有依赖服务启动完成后,需要对以下服务进行一些设置。

修改 filebeat.yml 文件内容

参数说明:

「注意:」客户端 hosts 添加 kafka 对应 server 的 ip 地址 以及 filebeat 配置建议使用 ansible。

「更多配置请参见:」

修改 logstash.conf 内容:

input 参数说明:

output 参数说明:

「注意:」logstash 中最为关键的地方在于 filter,为了调试 filter 的配置。

「更多配置请参见:」

操作命令如下:

字段解释:

从上面的信息可以看出,topic 为 logs 总共消费了 107335 条信息, 未消费的条数为 0。也就是说,消费数据没有积压的情况.

通过 elasticsearch-head 插件查看 ES 中是否收到了由 logstash 发送过来的日志

1、创建 index-pattern

打开 es,进入首页后,点击“connect to your Elasticsearch index”

填入 es 中的索引名,支持正则匹配,输入 Index pattern(本文使用 logs-*),单击 Next step。

选择“@timestamp”作为时间过滤字段,然后点击“create index pattern”:

创建完成后:

2、查看日志

在左侧导航栏,单击 Discover。

从页面左侧的下拉列表中,选择已创建的索引模式(logs-*)。在页面右上角,选择一段时间,查看对应时间段内的 Filebeat 采集的日志数据。

在企业实际项目中,elk 是比较成熟且广泛使用的技术方案。logstash 性能稍弱于 filebeat,一般不直接运行于采集点,推荐使用filebeat。在日志进入elk前,从经验性角度,前置 kafka,一方面作为队列和缓冲,另一方面提供了统一的入口渠道。