Какой у вас балансировщик нагрузки перед 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
Запрос этих метрик может быть проще, чем анализ файлов журналов приложений и подсчет результатов.
Чтобы запросить эту статистику с помощью aws-sdk для ruby, приведенный ниже код должен помочь вам в большинстве случаев. Вам нужно будет адаптировать его к вашим потребностям и настройкам, поэтому посмотрите документы, которые я связал внизу ответа:
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.
- Перейдите к сервису Cloudwatch на панели инструментов AWS.
- Выберите Метрики слева
- Выберите ELB в разделе пространств имен AWS.
- Выберите по пространству имен, чтобы получить всю информацию о балансировщике нагрузки одновременно, или выберите по балансировщику нагрузки, чтобы сузить отображение метрик.
- Выберите код состояния, который вы хотите визуализировать.
Вот как можно получить количество кодов состояния, и это может стать основой лямбда-функции ruby, которая может выполняться каждые 30 дней. Как отправить это самому себе по электронной почте, может быть целым вопросом, но в Интернете есть множество руководств по отправке электронной почты с помощью Ruby — начните с них.
person
Tom Harvey
schedule
15.06.2020