[英]Alerts based on Application error logs from AWS Cloudwatch log groups
我有一个 Ruby on Rails 应用程序在 AWS EC2 内运行,它将所有应用程序日志推送到 cloudwatchlog 组。 现在的任务是每天从 cloudwatch 日志中获取警报,报告一天产生了多少错误代码。
例子:
如果我的应用程序给出 10 个“500 内部服务器错误”、5 个“403 禁止错误”。 我应该从 AWS 服务获得一个 email,“您的应用程序生成了 10 - 500 个错误代码 5 - 403 个错误代码。”
I think we can achieve this with a lambda function and AWS SNS service, but dont know how to code my lambda function to work in this manner.
I need a lambda function code to store the error code counts , After capturing the data i can run lambda function daily at a specific time to send an email.
请帮助。
提前致谢:)
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.ZFC35FDC70D5C796
请求这些指标可能比解析应用程序日志文件和计算结果更容易。
要使用 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
and https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/CloudWatch/Metric.html for use of the ruby SDK
如果您将 go 连接到 AWS 控制面板,您还可以控制这些指标,您可能应该从这个开始,以了解您在 SDK 调用中使用的一些参数。
这是获取状态码计数的方法,并且可以构成每 30 天运行一次的 ruby lambda function 的基础。 然后如何 email 这对你自己来说可能是一个完整的问题,但是网上有很多关于如何发送 email 和 Ruby 的教程 - 从那里开始。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.