使用kinesisstream登录到ElasticsSearch

问题描述

我试图理解Kinesis数据流,但对术语和全局外观却几乎不感到困惑。 因此,我正在服务器EKS群集上运行服务,并希望将日志发送到ElasticSearch。当前的设置是我正在EKS节点上使用fluentD收集日志并将其发送到kinesis流,然后将其报告给ElasticSeach,在这里可以使用kibana对其进行分析。

但是

我不确定运动能流正在发生什么。当fluentD发送日志数据时,根据https://aws.amazon.com/kinesis/data-streams/faqs/,将有一个分区键和与数据blob相关的序列号。现在,我无法理解一些事情:

  1. 生产者方面,谁在创建分区键,以及如何?
  2. 索引的作用是什么?索引是否像该日期的数据和碎片这样的日志数据?
  3. 由于存在基于分区键的排序相关联,因此我们如何依次查看kibana中的日志?这意味着分区键在某种程度上也是顺序的。

解决方法

我认为您正在做的是ELK堆栈,我认为您的流程缺少Logstash导致缺少堆栈的某些功能。

  1. https://docs.aws.amazon.com/streams/latest/dev/key-concepts.html中:

“数据记录是存储在Kinesis数据流中的数据单位。数据记录由序列号,分区键和数据blob(字节的不可变序列)组成。KinesisData Streams不以任何方式检查,解释或更改Blob中的数据。数据Blob最多可为1 MB。”因此,它们由Kinesis自动生成以将您的日志排入队列,从而避免Elasticsearch实例崩溃。

  1. 我也对此感到困惑。但您可以想象,这就像您要推送到Cloudwatch的日志的名称一样。您需要Logstash将日志分隔为多个索引,以便您知道要查找的内容。

  2. Kibana默认情况下按时间戳列出索引中的日志。

我正在做ELK Stack 1周,所以我不能确保我在这里说的是完全正确的。如果我错了请纠正我

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...