脚本错误和安全警报怎么解决_适用于应用程序错误的AWS警报
腳本錯誤和安全警報怎么解決
監(jiān)視對于任何實際應用都是關鍵的。 您必須知道正在發(fā)生的事情,并在發(fā)生問題時實時得到警報。 AWS為此提供了CloudWatch,并自動為您提供了許多指標。 但是,您必須定義一些自己的東西。 然后,您需要定義適當?shù)木瘓蟆?
在這里,我將重點介紹小時:
- 大量應用錯誤
- 大量的應用警告
- 負載均衡器上出現(xiàn)大量5xx錯誤
- 負載均衡器上出現(xiàn)大量4xx錯誤
首先,先決條件:
- 您需要使用CloudFormation自動執(zhí)行所有操作。 您可以手動創(chuàng)建所有這些內(nèi)容,但是自動化是一大優(yōu)勢
- 如果使用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現(xiàn)在,您必須定義兩件事:記錄指標和警報。 下面的cloudformation代碼創(chuàng)建了兩個:
"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" } ] } },如果您需要手動執(zhí)行此操作,請轉到CloudWatch日志主頁 ,選擇日志組(app_node),然后使用頂部的“創(chuàng)建指標篩選器”按鈕。 它允許您指定要查找的模式(在這種情況下為“ ERROR”)。 準備就緒后,可以通過“警報”->“創(chuàng)建警報”在此基礎上創(chuàng)建警報。 通過名稱查找指標并選擇它以觸發(fā)警報(在上面的示例中,如果在900秒內(nèi)有5個以上的錯誤,它將觸發(fā))
然后,您可以為警告創(chuàng)建相同的警報(查找模式:“ 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" } }您可以再次手動創(chuàng)建- 在警報的指標選擇屏幕中查找HTTPCode_Target_5XX_Count指標。 那里有幾個選項,最直接的是選擇每個AppELB指標。 同樣,相同的方法可以用于4xx錯誤(HTTPCode_Target_5XX_Count)。
使用CloudFormation(甚至手動)運行它并不像看起來那樣簡單。 度量標準名稱,名稱空間和值的正確組合并不明顯,并且相關文檔并不是彈出的第一件事。 因此,我決定分享一些可行的方法,因為在達到該狀態(tài)之前可能需要花費一些時間進行試驗。
但是,即使在CloudFormation或AWS上下文之外,也必須在大量應用程序錯誤,警告和HTTP錯誤的情況下進行監(jiān)視和警報。 推薦自動創(chuàng)建這些警報。
翻譯自: https://www.javacodegeeks.com/2020/04/aws-alarms-for-application-errors.html
腳本錯誤和安全警報怎么解決
總結
以上是生活随笔為你收集整理的脚本错误和安全警报怎么解决_适用于应用程序错误的AWS警报的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 对于电脑基础软件的安装对于电脑基础软件的
- 下一篇: 古巴比伦乘法_古巴:为生产做准备