gpt4 book ai didi

amazon-web-services - ELK堆栈(Elasticsearch,Logstash,Kibana)-logstash是必需的组件吗?

转载 作者:行者123 更新时间:2023-12-03 00:49:37 25 4
gpt4 key购买 nike

我们目前正在使用AWS lambda处理每日移动应用程序日志数据,并将其发布到redshift中。 Lambda构成数据,但本质上是原始数据。下一步是将日志数据实际处理为 session 等,以进行报告。最后一步是做一些特征工程,然后将数据用于模型训练。

步骤是

  • 构建用于存储的原始数据
  • session 化数据以报告
  • 用于建模
  • 的特征工程

    对于步骤2,我正在考虑使用Quicksight和/或Kibana创建报告仪表板。但是据我了解,典型的堆栈是使用logstash进行日志处理,然后将其传递给elasticsreach,最后传递给Kibana / Quicksight。由于我们已经通过lambda处理了初始日志处理,是否可以跳过此步骤并将其直接传递给elasticsearch?如果是这样,在lambda函数中还是将其存储在表中后从redshift发生在哪里?还是可以从我将要提取的数据发布到redshift表的同一s3中读取elasticsearch?

    最佳答案

    Elasticsearch使用JSON执行所有操作。例如,要将文档添加到索引,请使用PUT操作(从docs复制):

    PUT twitter/_doc/1
    {
    "user" : "kimchy",
    "post_date" : "2009-11-15T14:12:12",
    "message" : "trying out Elasticsearch"
    }

    Logstash的存在是为了收集日志消息,将其转换为JSON并发出这些PUT请求。但是,任何能够生成格式正确的JSON并可以执行HTTP PUT的东西都可以使用。如果您已经调用Lambdas来转换S3内容,那么您应该能够使它们适应将JSON写入Elasticsearch。我将为Redshift和Elasticsearch使用单独的Lambda,只是为了提高可管理性。

    性能提示:您可能一次要处理许多记录,在这种情况下, bulk API将比单个PUT更有效。但是,请求的大小有限制,因此您需要分批输入。

    另外:您不会说您使用的是AWS Elasticsearch集群还是自我管理的集群。如果是前者,则还必须处理经过身份验证的请求,或者在群集上使用基于IP的访问策略。您没有说Lambda使用哪种语言编写,但如果是Python,则可以使用 aws-requests-auth库发出经过身份验证的请求。

    关于amazon-web-services - ELK堆栈(Elasticsearch,Logstash,Kibana)-logstash是必需的组件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55736820/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com