[英]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.