在AWS上监控http到httpsredirect的最佳方式是什么?

我们通过Beanstalk在AWS上部署了我们的Java Web应用程序。 负载均衡器设置为将EC2上的https(443)转发到端口80,并将http(80)转发到EC2上的端口80。 EC2实例运行的Apache具有重写规则,将httpstream量redirect到https,如下所示:

RewriteEngine On RewriteCond %{HTTP:X-Forwarded-Proto} !https RewriteCond %{REQUEST_URI} !^/healthcheck$ RewriteRule . https://%{SERVER_NAME}%{REQUEST_URI} [L,R] 

这一切都很好。 现在我想设置一些监视来定期validation这个规则是否还在。 (过去这个规则被误删了,我们只是偶然注意到这个)。 做这个的最好方式是什么?

编辑:我们没有设置任何外部系统监视器,我们只是使用云监视。 理想情况下,我想留在AWS内部进行设置,例如使用CloudWatch。

您可以在监控Apache访问日志的Apache实例上设置CloudWatch日志监控 。

然后在cloudwatch中创build一个度量filter ,如下所示:

[host, logName, user, timestamp, request, statusCode=301, size, referer, useragent, ...]

随后,您将在301redirect的CloudWatch中获得一张漂亮的图表,并且您可以创buildCloudWatch警报,以便在每分钟或每小时的请求数低于某个阈值时通知。

另一个解决scheme可能是将您的301错误文档设置为较短的主体,然后创build一个路由53健康状况检查来监视您的redirectURL并search错误文档的正文。 默认情况下,Apache 301错误文档应该包含“301永久移动”,因此您可以创build一个Route53运行状况检查,查找该string。

无论您使用的监控软件已经可以支持。 Nagios,例如,从check_http:

 HTTP OK: HTTP/1.1 302 Redirect - 377 bytes in 0.073 second response time 

你可能可以得到它专门检查302redirect。 ( -f follow开关跟着redirect,但可能不一定是你想要的。)或者写一个自定义的脚本,如EEAA在评论中build议的。