监视对于任何实际应用都是关键的。 您必须知道正在发生的事情,并在发生问题时实时得到警报。 AWS拥​​有CloudWatch,可以自动为您提供大量指标。 但是,您必须定义一些自己的东西。 然后,您需要定义适当的警报。

在这里,我将重点介绍小时:

  • 大量应用错误
  • 大量的应用警告
  • 负载均衡器上出现大量5xx错误
  • 负载均衡器上出现大量4xx错误

首先,先决条件:

  • 您需要使用CloudFormation自动执行所有操作。 您可以手动创建所有这些内容,但是自动化是一大优势
  • 如果使用CloudFormation,则最好有一个用于配置警报的子堆栈
  • 您需要使用CloudWatch日志收集日志

如果您不使用CloudWatch日志,请使用以下简单的配置文件和脚本来启用它们:

 { "agent" : { "metrics_collection_interval" : 10, "region" : "eu-west-1" , "logfile" : "/opt/aws/amazon-cloudwatch-agent/logs/amazon-cloudwatch-agent.log" }, "logs" : { "logs_collected" : { "files" : { "collect_list" : [ { "file_path" : "{{logPath}}" , "log_group_name" : "{{logGroupName}}" , "log_stream_name" : "{instance_id}" , "timestamp_format" : "%Y-%m-%d %H:%M:%S" } ] } } }  } 
 # install AWS CloudWatch monitor  mkdir cloud- watch -agent  cd cloud- watch -agent  wget https: //s3 .amazonaws.com /amazoncloudwatch-agent/linux/amd64/latest/AmazonCloudWatchAgent .zip  unzip AmazonCloudWatchAgent.zip  . /install .sh  aws s3 cp s3: // $BUCKET_NAME /cloudwatch-agent-config .json /var/config/cloudwatch-agent-config .json  sed -i -- 's|{{logPath}}|/var/log/application.log|g' /var/config/cloudwatch-agent-config .json  sed -i -- 's|{{logGroupName}}|app_node|g' /var/config/cloudwatch-agent-config .json  sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -c file : /var/config/cloudwatch-agent-config .json -s 

现在,您必须定义两件事:记录指标和警报。 下面的cloudformation代码创建了两个:

 "HighAppErrorsNotification" : { "Type" : "AWS::CloudWatch::Alarm" , "Properties" : { "AlarmActions" : [ { "Ref" : "NotificationTopicId" } ], "InsufficientDataActions" : [ { "Ref" : "NotificationTopicId" } ], "AlarmDescription" : "Notify if there are too many application errors" , "ComparisonOperator" : "GreaterThanOrEqualToThreshold" , "EvaluationPeriods" : "1" , "MetricName" : "ApplicationErrors" , "Namespace" : "LogMetrics" , "Period" : "900" , "Statistic" : "Sum" , "Threshold" : "5" , "TreatMissingData" : "ignore" } }, "ErrorMetricFilter" : { "Type" : "AWS::Logs::MetricFilter" , "Properties" : { "LogGroupName" : "app_node" , "FilterPattern" : "ERROR" , "MetricTransformations" : [ { "DefaultValue" : 0, "MetricValue" : "1" , "MetricNamespace" : "LogMetrics" , "MetricName" : "ApplicationErrors" } ] } }, 

如果需要手动执行此操作,请转到CloudWatch日志主页 ,选择日志组(app_node),然后使用顶部的“创建指标筛选器”按钮。 它允许您指定要查找的模式(在这种情况下为“ ERROR”)。 准备就绪后,可以通过“警报”->“创建警报”在此基础上创建警报。 按名称查找指标并选择它以触发警报(在上面的示例中,如果在900秒内有5个以上的错误,则会触发警报)

然后,您可以为警告创建相同的警报(查找模式:“ WARN”)。 阈值可能会更高,例如10或20。但这取决于您的应用程序日志记录模式。

然后是错误5xx负载均衡器警报。 在CloudFormation中,它看起来像这样:

 "TooMany5xxErrorsWebAppAlarmNotification" : { "Type" : "AWS::CloudWatch::Alarm" , "Properties" : { "AlarmActions" : [ { "Ref" : "NotificationTopicId" } ], "InsufficientDataActions" : [ { "Ref" : "NotificationTopicId" } ], "AlarmDescription" : "Notify if there are too many 5xx errors" , "ComparisonOperator" : "GreaterThanOrEqualToThreshold" , "Dimensions" : [ { "Name" : "LoadBalancer" , "Value" : { "Ref" : "WebAppALBId" } } ], "TreatMissingData" : "notBreaching" , "EvaluationPeriods" : "1" , "MetricName" : "HTTPCode_Target_5XX_Count" , "Namespace" : "AWS/ApplicationELB" , "Period" : "60" , "Statistic" : "Sum" , "Threshold" : "2" } } 

您可以再次手动创建- 在警报的指标选择屏幕中查找HTTPCode_Target_5XX_Count指标。 您在那里有几个选项,最直接的是选择每个AppELB指标。 同样,相同的方法可以用于4xx错误(HTTPCode_Target_5XX_Count)。

使用CloudFormation(甚至手动)运行它并不像看起来那样简单。 度量标准名称,名称空间和值的正确组合并不明显,并且相关文档并不是弹出的第一件事。 因此,我决定分享一些可行的方法,因为在达到该状态之前可能需要花费一些时间进行试验。

但是,即使在CloudFormation或AWS上下文之外,也必须在大量应用程序错误,警告和HTTP错误的情况下进行监视和警报。 推荐自动创建这些警报。

翻译自: https://www.javacodegeeks.com/2020/04/aws-alarms-for-application-errors.html

适用于应用程序错误的AWS警报相关推荐

  1. 脚本错误和安全警报怎么解决_适用于应用程序错误的AWS警报

    脚本错误和安全警报怎么解决 监视对于任何实际应用都是关键的. 您必须知道正在发生的事情,并在发生问题时实时得到警报. AWS为此提供了CloudWatch,并自动为您提供了许多指标. 但是,您必须定义 ...

  2. 对程序错误的处理——Windows核心编程学习手札之一

    对程序错误的处理 --Windows核心编程学习手札之一 函数被调用执行时,先检验传递给它的各个参数的有效性,后执行任务.函数执行中若因参数无效或因某种原因导致无法正常完成函数任务,那么操作系统会返回 ...

  3. 64位操作系统下IIS报“试图加载格式不正确的程序”错误

    缘由:在64位操作系统下IIS发布32位的项目,报"项目依赖的dll无法读取,试图加载格式不正确的程序"错误. 原因:程序集之间的通讯要么全是64位环境下的,要么全是32位环境下的 ...

  4. ssms应用程序错误_来自应用程序的查询计划与SSMS不同时的性能故障排除

    ssms应用程序错误 Troubleshooting performance issues in a database is one of the main jobs of DBAs and by n ...

  5. 解决方案~Microsoft Security Client OOBE 程序错误

    Microsoft Security Client OOBE 程序错误 适用于: Windows Windows 7 系统错误日志如下:会话"Microsoft Security Clien ...

  6. 彻底禁止Microsoft Security Client OOBE 程序错误解决办法 (关闭Windows Defender)

    照着之前的方法试了几次,事件检视簿 内 检视看看~ Microsoft Security Client OOBE 程序错误 适用于: Windows Windows 7 系统错误日志如下:会话&quo ...

  7. Microsoft Security Client OOBE 程序错误解决办法

     事件检视簿 内 检视看看~ Microsoft Security Client OOBE 程序错误 适用于: Windows Windows 7 系统错误日志如下:会话"Microso ...

  8. office应用程序错误_富Office客户端应用程序

    office应用程序错误 在过去的几年中,谈论" RIA"的创建和使用已成为一种时尚," RIA"是" Rich Internet Applicati ...

  9. vue.js部署_如何将安全Vue.js应用程序部署到AWS

    vue.js部署 本文最初发布在Okta开发人员博客上 . 感谢您支持使SitePoint成为可能的合作伙伴. 编写Vue应用程序直观,直接,快捷. Vue具有较低的进入门槛,基于组件的方法以及诸如热 ...

最新文章

  1. UWP 负载包含两个或多个具有相同目标的路径 'xxx'
  2. Ubuntu14.04安装nvidia-docker2
  3. “笨方法”学习Python笔记(1)-Windows下的准备
  4. kvm之三:本地安装虚拟机
  5. 码农与程序员的惊人差别
  6. python selenium_Python+selenium自动化测试
  7. java开发工作找不到要放弃吗,年薪50W
  8. MySQL高级 —— 高性能索引
  9. 搜索推荐广告中的Position Bias:美团DPIN
  10. Unix domain socket IPC
  11. 一个Linux中用于监控的简易shell脚本
  12. 傻瓜方法求集合的全部子集问题(java版)
  13. nftables入门文档
  14. flink知识点总结
  15. c语言低通滤波参数调节,低通滤波器的参数设置
  16. 台达PLC实现远程下载程序
  17. 费雪分离定理的证明与评价
  18. 安川机器人程序还原_安川机器人使用说明书.pdf
  19. 详记Android打开相机拍照流程
  20. 了解escape、unescape

热门文章

  1. 2018NOIP普及组初赛解析
  2. js object 常用方法总结
  3. MySQL 5.7 聚合(GROUP BY)功能描述
  4. win10操作技巧介绍,很实用!
  5. 某同学正为自己安装不上sqlserver数据库而愁眉苦脸,使用朋友给的方法顿时喜笑颜开,那么朋友到底出了个什么样的方法呢?...
  6. ssh(Spring+Spring mvc+hibernate)——applicationContext-servlet.xml
  7. 2015蓝桥杯省赛---java---B---7(牌型种数)
  8. 链接(了解)---Linux
  9. Spring Boot进阶之Web进阶 代码推送的github上面去
  10. Android Bitmap OutOfMemory 解决办法