你在EC2前面有什么样的负载均衡器;有的话?
Cloudwatch 已经包含以下负载均衡器指标:
HTTPCode_Target_2XX_Count、HTTPCode_Target_3XX_Count、HTTPCode_Target_4XX_Count、HTTPCode_Target_5XX_Count
见-https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-cloudwatch-metrics.html
请求这些指标可能比解析应用程序日志文件和计算结果更容易。
要使用 ruby 的 aws-sdk 请求这些统计信息,下面的代码应该可以帮助您完成大部分工作。您需要根据自己的需要和设置对其进行调整,因此请参阅我在答案底部链接的文档:
metric = Aws::CloudWatch::Metric.new 'AWS/ApplicationELB', 'HTTPCode_ELB_4XX_Count'
stats = metric.get_statistics({
dimensions: [
{
name: "LoadBalancerName",
value: "'YOUR_ALB_NAME'",
},
],
start_time: Time.now - 3600 * 24 * 30,
end_time: Time.now,
period: 3600 * 24 * 30,
unit: "Seconds", # accepts Seconds, Microseconds, Milliseconds, Bytes, Kilobytes, Megabytes, Gigabytes, Terabytes, Bits, Kilobits, Megabits, Gigabits, Terabits, Percent, Count, Bytes/Second, Kilobytes/Second, Megabytes/Second, Gigabytes/Second, Terabytes/Second, Bits/Second, Kilobits/Second, Megabits/Second, Gigabits/Second, Terabits/Second, Count/Second, None
statistics: ["Average"], # accepts SampleCount, Average, Sum, Minimum, Maximum
})
请参阅https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-cloudwatch-metrics.html 了解有关您可以请求的统计信息的详细信息
和https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/CloudWatch/Metric.html 用于使用 ruby SDK
如果您访问 AWS 控制面板,您还可以控制这些指标,您可能应该从这里开始了解您在 SDK 调用中使用的一些参数。
- 在您的 AWS 控制面板中转到 Cloudwatch 服务
- 从左侧选择指标
- 从 AWS 命名空间部分选择 ELB
- 按命名空间选择以同时获取所有负载均衡器信息,或按负载均衡器选择以缩小您的指标显示范围。
- 选择要显示的状态代码。
这是获取状态码计数的方法,并且可以构成每 30 天运行一次的 ruby lambda 函数的基础。然后如何通过电子邮件将其发送给自己本身可能是一个完整的问题,但是网上有很多关于如何使用 Ruby 发送电子邮件的教程 - 从那里开始。