问题描述
我试图理解Kinesis数据流,但对术语和全局外观却几乎不感到困惑。 因此,我正在服务器EKS群集上运行服务,并希望将日志发送到ElasticSearch。当前的设置是我正在EKS节点上使用fluentD收集日志并将其发送到kinesis流,然后将其报告给ElasticSeach,在这里可以使用kibana对其进行分析。
但是
我不确定运动能流正在发生什么。当fluentD发送日志数据时,根据https://aws.amazon.com/kinesis/data-streams/faqs/,将有一个分区键和与数据blob相关的序列号。现在,我无法理解一些事情:
- 生产者方面,谁在创建分区键,以及如何?
- 索引的作用是什么?索引是否像该日期的数据和碎片这样的日志数据?
- 由于存在基于分区键的排序相关联,因此我们如何依次查看kibana中的日志?这意味着分区键在某种程度上也是顺序的。
解决方法
我认为您正在做的是ELK堆栈,我认为您的流程缺少Logstash导致缺少堆栈的某些功能。
“数据记录是存储在Kinesis数据流中的数据单位。数据记录由序列号,分区键和数据blob(字节的不可变序列)组成。KinesisData Streams不以任何方式检查,解释或更改Blob中的数据。数据Blob最多可为1 MB。”因此,它们由Kinesis自动生成以将您的日志排入队列,从而避免Elasticsearch实例崩溃。
-
我也对此感到困惑。但您可以想象,这就像您要推送到Cloudwatch的日志的名称一样。您需要Logstash将日志分隔为多个索引,以便您知道要查找的内容。
-
Kibana默认情况下按时间戳列出索引中的日志。
我正在做ELK Stack 1周,所以我不能确保我在这里说的是完全正确的。如果我错了请纠正我