Kafka用于日内可视化,监控和命令处理

时间:2018-06-02 17:54:46

标签: apache-kafka broker

我有20个左右的进程在各自的服务器上生成日志(每个大约500MB),到目前为止,我已经将这些日志复制到中央服务器并编写GUI并直接监视这些复制的日志文件。

我设置Kafka并使用fluent-bit成功地将日志复制到每个服务器的分区,这看起来效果非常好。

我在客户端有点困惑,因为我只关心每天的数据(我的每个源日志文件都有文件名中的日期)。

通常最好在一天结束时删除我的所有kafka主题吗?我知道kafka内置了每个客户端偏移跟踪,但我不想承担任何风险,而且,我从一开始就看不到引导程序的重点。< / p>

另一种方法可能是将日期添加到主题名称?所以我基本上每天要创建20个新主题。我认为这样做的好处是它几乎可以保证我的数据仅适用于那一天。前几天也是&#39;数据也可用,我可以在一周或一个月后删除这些主题。

我的客户流程包括:

  1. 每天从日志中绘制数据;每个服务器进程1个图表(总共20个)
  2. 将从日志中提取的某些数据插入数据库
  3. 监视日志文件以查找问题(对字符串进行grepping等)并通过自定义GUI提醒用户
  4. 对数据运行一些统计/分析并生成结束日报告
  5. 配置GUI,将通过kafka发送配置更改到服务器进程。服务器进程回显更改,以便用户获得确认。这将在日志的单独主题上运行。当进程名称被添加到json消息时,主题可以在服务器进程之间共享(因此消费者知道它们是否适用于它们)。
  6. 或许卡夫卡可能不是最好的解决方案?

1 个答案:

答案 0 :(得分:0)

为什么不使用Elasticsearch和Kibana? (可选择Filebeat而不是Fluentd)

Kafka Connect实时转储数据,您从Kibana切片数据以按天或其他方式进行搜索。创建可以每天实时或几次更新的Kibana仪表板

除非您在fluent-bit中设置一些基于动态时间的路由,否则不要删除Kafka主题。默认情况下,Kafka有一周的保留数据,但您可以设置主题以保留24小时的数据

但是,卡夫卡在这里甚至不需要。查找“EFK堆栈”,Elastic,Fluentd,Kibana,或者如果使用Beats,您可以删除对Fluentd的需求

另外,使用最近的Elastic XPack开放版本,您可以设置搜索警报并在数据中进行异常检测