如何将 IIS 日志中的数据发送到 Amazon CloudWatch 日志,以便监控网站的性能。
我试图监控的一件事是我的 Web 请求的平均请求大小。我知道 IIS 日志包含有关 Web 请求大小的数据(BytesRecv,ByteSent),我可以让 CloudWatch 日志读取我的 IIS 日志文件,但我无法弄清楚的是一种告诉 CloudWatch 日志应该处理 BytesRecv、ByteSent 的方法作为2个数据点。
如何将 IIS 日志中的数据发送到 Amazon CloudWatch 日志,以便监控网站的性能。
我试图监控的一件事是我的 Web 请求的平均请求大小。我知道 IIS 日志包含有关 Web 请求大小的数据(BytesRecv,ByteSent),我可以让 CloudWatch 日志读取我的 IIS 日志文件,但我无法弄清楚的是一种告诉 CloudWatch 日志应该处理 BytesRecv、ByteSent 的方法作为2个数据点。
我认为 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
如果您可以在 IIS 日志中获取此信息,则可以将它们共享到 cloudwatch 日志
您可以通过 EC2Config 服务或 SSM 代理发送日志,本文中记录了更多详细信息。
然后,您可以将现有过滤器用于您的日志组或创建自定义过滤器以从日志中提取您想要的字段 -> 因此它是基于日志过滤器的自定义日志指标。例如
[serverip, method, uri, query, port, dash, clientip, useragent, status, zero1, zero2, millis]
或一些特定的过滤器。
因此,您现在可以使用上述过滤器或 Log Insight 查询来创建仪表板。