【问题标题】:How to send data in IIS logs to CloudWatch logs如何将 IIS 日志中的数据发送到 CloudWatch 日志
【发布时间】:2022-01-15 17:49:04
【问题描述】:

如何将 IIS 日志中的数据发送到 Amazon CloudWatch 日志,以便监控网站的性能。

我试图监控的一件事是我的网络请求的平均请求大小。我知道 IIS 日志包含有关 Web 请求大小的数据(BytesRecv,ByteSent),我可以让 CloudWatch 日志读取我的 IIS 日志文件,但我无法弄清楚的是一种告诉 CloudWatch 日志应该处理 BytesRecv、ByteSent 的方法作为 2 个数据点。

【问题讨论】:

    标签: amazon-cloudwatch cloudwatch


    【解决方案1】:

    我认为 CloudWatch Logs 服务不具备这种能力。当它摄取像 IIS 这样的日志时,您可以创建简单的过滤器来匹配某些内容,例如 404 错误,然后您可以根据给定时间段内这些错误的数量创建数据点。但是,我还没有找到直接在 CloudWatch 中从日志中提取数据的方法。

    我相信解决此问题的方法是使用 Amazon Kinesis 从 CloudWatch 中获取日志文件,然后使用 EMR 对其进行处理以获取这些数据点,然后将这些信息放入 S3。说起来容易做起来难,我知道。我认为其中最困难的部分是编写您的 EMR 逻辑,然后将该数据放入某种合并格式以写入 S3。我建议在该区域寻求帮助。

    另一种选择是让 Amazon Kinesis 在 S3 中删除日志文件,然后在上传这些日志文件时触发 Amazon Lambda 操作。然后,Lambda 函数可以解析这些日志文件,提取您需要的信息,将其放入某种 json、xml 等格式并将其写入 S3。这里最难的部分是编写 lambda 函数。此链接描述了如何使用 lambda 解析写入 S3 的 CloudTrail 日志,因此您可能可以遵循很多逻辑来执行此操作。

    http://docs.aws.amazon.com/lambda/latest/dg/wt-cloudtrail-events-adminuser.html

    【讨论】:

      【解决方案2】:

      如果您可以在 IIS 日志中获取此信息,则可以将它们共享到 cloudwatch 日志

      您可以通过 EC2Config 服务或 SSM 代理发送日志,更多详细信息记录在 this Post 中。

      然后您可以将现有过滤器用于您的日志组或创建自定义过滤器以从日志中提取您想要的字段 -> 因此它是基于 log filters 的自定义日志指标。例如

      [serverip, method, uri, query, port, dash, clientip, useragent, status, zero1, zero2, millis]
      

      或一些特定的过滤器。

      因此,您现在可以使用上述过滤器或 Log Insight 查询来创建仪表板。

      【讨论】:

        猜你喜欢
        • 2018-03-10
        • 2020-02-27
        • 2020-01-25
        • 2019-12-01
        • 1970-01-01
        • 1970-01-01
        • 2018-06-27
        • 1970-01-01
        • 2020-06-29
        相关资源
        最近更新 更多