繁体   English   中英

监控AWS EC2实例端口

[英]monitoring aws ec2 instance ports

我有一个在EC2中运行的应用程序,该应用程序侦听许多端口,一些外部设备连接到这些端口以将数据发送到我的应用程序。 很好,但是我的客户要求我必须监视这些端口,并且如果其中一个端口停止监听,则必须终止该实例并启动一个新端口。

我正在阅读有关canwatch的文章,但没有找到可以像这样自定义(对端口进行请求)的警报。 是否可以使用cloudwatch进行此操作? 我正在寻找使用内部AWS服务或开发新解决方案(也许是脚本)来创建此监视的方向。

谢谢!

我不知道任何AWS提供的用于自定义检查的EC2运行状况检查监视系统。

您可以编写一个AWS lambda函数,该函数将请求发送到所需的EC2实例上的端口。 然后您可以将lambda安排为以Cloudwatch Events所需的频率定期运行。 lambda函数可以其作为度量标准发布到cloudwatch,这将使您有可能在警报中使用它,从而在您认为合理的阈值启动新替换实例时采取措施。

基本上,AWS的一部分确实具有您要内置的东西,那就是ECS。 您将拥有一个可以定义运行状况检查的Docker实例(在EC2实例或Fargate上运行),而不是EC2实例。

有许多方法可以满足您的要求。

  • 最简单的解决方案:我将编写一个boto3 / shell脚本来监视端口并调用TerminateInstance API或使用AWS CLI终止当前实例。 不用说,您需要传递AWS凭证或使用足够的特权附加实例配置文件以终止实例。
  • 使用Cloudwatch:拥有一个脚本来检查端口状态,并将1或0(维度:计数)发送到Cloudwatch。 如果存在连续的0或NoData,请在Cloudwatch中设置一个阈值,然后终止实例。 或者如果端口不可用并且Cloudwatch中的NoData可以触发TerminateInstance,则不要将任何数据发送到Cloudwatch。 请参阅: Cloudwatch-AddingTerminateActions

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM