AWS SitetoSite VPN 自动监控解决方案的设置
作者:Bhuvan Jain Shrikant Davange 和 Narinder Singh Kharbanda 2024年9月20日发表在 进阶 (300),AWS SitetoSite VPN,AWS VPN,学习级别,网络与内容交付永久链接分享: Facebook Twitter LinkedIn Email
在当今相互连接的世界中,各种规模的企业都依赖安全和高效的网络连接,以便在多个地点之间无缝运营。亚马逊网络服务AWSSitetoSite 虚拟专用网络VPN提供了一种可靠的方法,通过公共基础设施例如互联网扩展私有网络,使组织能够安全地连接其办公室、数据中心和亚马逊虚拟私有云Amazon VPC。
在云网络快速发展的背景下,确保快速的整体设置时间、无缝的连接和快速的问题解决对使用SitetoSite VPN的企业至关重要。然而,您传统的方法是在本地防火墙日志中进行审查,并与AWS支持工程师协作分析SitetoSite VPN日志,旨在找出问题的根源并向解决方案努力。此过程通常需要大量的时间和精力用于手动故障排除和解决。在此文中,我们展示了一种实时自动化解决方案,旨在简化故障排除过程。该解决方案具有早期错误检测、快速通知系统,以及包含详细解决步骤的综合指南。
自动化SitetoSite VPN监控的主要好处
认识到快速和更积极的支持需求,我们实施了自动化解决方案,使您的团队免于重复任务。这样,您可以专注于更复杂的问题和战略性举措,提高整体运营效率并优化生产力。您可以实时接收通知,并获得有关SitetoSite VPN隧道状态的详细信息,从而减少未被发现的问题或停机的风险。
使用AWS实施自动化SitetoSite VPN监控
自动化SitetoSite VPN解决方案工作流的实施涉及双重策略。第一,我们使用现有的AWS CloudWatch日志,重点关注隧道选项,以实现IP安全IPsec隧道建立、互联网密钥交换IKE协商和死对等检测DPD协议消息。第二,我们实施了一个自定义监控解决方案,使用订阅过滤器,将CloudWatch日志事件传递给AWS Lambda函数进行进一步处理和分析。Lambda函数在Amazon DynamoDB表中跟踪错误状态和时间戳,并在SitetoSite VPN隧道遇到错误时通过Amazon简单通知服务SNS立即发送通知。
体系结构
以下图显示了该解决方案的架构。
安易加速器安卓图1:解决方案在AWS环境中部署的资源
它是如何工作的
该解决方案通过AWS CloudFormation模板创建,启动组件如下:
DynamoDB表:创建一个DynamoDB表,以存储每个VPN隧道错误最后通知时间的状态。该表能够防止在指定时间框架内重复发送相同错误的通知。IAM角色可选:为Lambda函数执行创建一个AWS身份和访问管理IAM角色,赋予其发布到提供的SNS主题和访问DynamoDB表的权限。只有在CloudFormation模板中的CreateNewLambdaRole参数设置为yes时才创建此角色。Lambda函数:使用Python编写的Lambda函数用于监控CloudWatch日志中VPN隧道错误,向提供的SNS主题发送通知,并更新DynamoDB表中的通知状态。Lambda权限:允许CloudWatch调用Lambda函数。CloudWatch日志订阅过滤器:将Lambda函数订阅到提供的CloudWatch日志组,以针对特定VPN隧道错误模式。一旦在面对SitetoSite VPN连接的CloudWatch日志组上分配了包含错误模式的订阅过滤器,它将匹配的错误转发到Lambda。Lambda处理CloudWatch日志事件,基于预定义模式识别错误,并将详细的故障排除步骤通知发送到提供的SNS主题。它还检查您在之前的给定时间框架内是否已经接收通知。时间能够有效减少再次出现后未处理错误的电子邮件通知。以下是Lambda函数功能的分解:
日志事件处理:该函数解码和处理来自日志订阅过滤器的CloudWatch日志事件。错误识别:该函数将日志消息与预定义错误模式进行匹配。通知处理:如果识别到错误,则函数检查DynamoDB表,以确定在指定时间框架内是否已经发送过通知。如果没有,则向SNS主题发送包含详细故障排除步骤的特定错误通知。DynamoDB更新:函数更新DynamoDB表中的错误通知状态,以避免在指定时间框架内发送重复通知。解决方案部署
以下部分概述了解决方案的部署步骤。
先决条件
在深入CloudFormation模板之前,请确保您具备以下先决条件:
一个现有的SNS主题,以接收通知。一个与您的VPN连接相关联的CloudWatch日志组。可选一个现有的IAM角色,具备发布到SNS主题和访问DynamoDB表的权限,如果您不希望创建新角色。步骤:
从这里下载CloudFormation模板。创建CloudFormation堆栈。指定模板。注意:CloudFormation模板文件是vpntunnelmonitoringyaml。
堆栈详细信息:
在“指定堆栈详细信息”页面上,输入堆栈名称例如,VPNTunnelMonitoring。提供必要的输入参数:SnsTopicARN:输入您希望接收通知的SNS主题的亚马逊资源名称ARN。VpnLogGroup:输入与您的VPN连接相关联的CloudWatch日志组名称。CreateNewLambdaRole:如果您希望CloudFormation为Lambda函数创建一个新IAM角色,请输入yes,如果希望使用现有角色,则输入no。ExistingLambdaRoleARN可选:如果您选择no以不创建新角色,请输入一个现有IAM角色的ARN,该角色具有Lambda函数所需的权限。NotificationFrequency可选:输入您希望接收VPN错误通知的频率以小时为单位,直到错误修复。如果您不解决这些问题,错误可能会在CloudWatch日志组中定期记录。此参数指示您希望在错误修复之前多频繁收到通知。例如,如果您将其设置为2,则如果该错误持续存在并未修复,您每两小时会收到通知一次。图2:解决方案在控制台上显示的CloudFormation模板输入参数。
选择“下一步”。审核和创建:堆栈创建:CloudFormation开始创建堆栈并配置所需的资源。您可以在CloudFormation控制台或通过事件选项卡监控堆栈的创建进度。堆栈创建完成:一旦堆栈创建完成,您应在CloudFormation控制台看到状态为“CREATECOMPLETE”。验证资源是否成功创建。完成这些步骤后,VPN隧道错误监控和通知自动化将在您的AWS账户中设置。然后,Lambda函数开始监控指定的CloudWatch日志组,并在检测到VPN隧道错误时向SNS主题发送通知。
以下是一个示例错误通知邮件:
图3:示例错误通知邮件:“没有找到AWS提议匹配”。
注意事项:
您可以根据自己的用例和业务需求自定义CloudFormation。例如,您可以选择在DynamoDB上启用自定义加密,并选择让Lambda函数在VPC内。由于某些错误可能会以常规频率持续出现直至修复,因此您可能会收到多封电子邮件。NotificationFrequency参数帮助您设置发现错误后所需的通知频率。例如,如果首次发现特定错误,您会收到通知,并在DynamoDB表中存储此通知时间戳。如果在NotificationFrequency内再次出现该特定错误,则您不会收到通知。这样可以为您留出解决错误的时间。这也意味着如果错误修复但由于误配置而再次出现,则在NotificationFrequency时间过后您才会接收通知。该解决方案会在面向您SitetoSite VPN的CloudWatch日志组上创建一个订阅过滤器。因此,如果有多个VPN监控同一日志组,则通过该解决方案监控这些VPN连接。如果您有一个不希望纳入此解决方案的非生产VPN或测试VPN,则可以使用另一CloudWatch日志组。订阅过滤器没有额外费用,您只需为记录的数据和在CloudWatch中的日志摄取付费。您可以在Amazon CloudWatch定价中找到与CloudWatch日志相关的定价信息。有关Lambda和DynamoDB服务定价的详细信息,请参考其各自的定价页面:Lambda定价和DynamoDB定价。清理
您可以在步骤4中创建的CloudFormation堆栈被删除后,删除该解决方案。

结论:提升VPN监控体验
在这篇文章中,我们讨论了一个SitetoSite VPN的实时监控解决方案,该方案使用现有的AWS VPN CloudWatch日志,并设置了一个自定义解决方案来监控可用性,并提供有关SitetoSite VPN隧道状态和问题的详细信息。此外,我们演示了如何使用AWS Lambda、Amazon DynamoDB和Amazon SNS服务配置这个自动化解决方案的步骤。
借助实时快速通知、详细错误消息和解决步骤,企业能够加速对故障的响应,最小化停机时间,提高运营效率,并保持分布式环境中的无缝连接。
如您对这篇文章有任何反馈,请在评论区提交意见。如果您有关于该文章的问题,请在此联系AWS支持。
关于作者
Narinder Singh Kharbanda
Narinder Singh是亚马逊网络服务公司的高级支持工程师和网络专家。他与客户合作,设计、故障排除和实施基于云的架构。他热衷于与客户合作,拥有乔治梅森大学计算机系统网络和电信的硕士学位,专攻计算机网络。
Bhuvan Jain
Bhuvan是AWS的一名技术客户经理,支持独立软件供应商ISV客户。他热衷于帮助客户在AWS上构建良好架构的解决方案,专注于企业级网络。作为SitetoSite VPN的主题专家,Bhuvan提供关于设计高可用、弹性及具有成本效益的VPN网络架构的指导。他持有伊利诺伊大学芝加哥分校UIC电气与计算机工程硕士学位。闲暇时,他喜欢打篮球和排球,以及观看电影和电视剧。
Shrikant Davange
Shrikant是AWS的一名高级云支持工程师,专注于网络监控和扩展。他与客户合作,排查复杂技术问题,识别性能提升、成本优化和弹性机会,设计现代云架构及其自动化。业余时间,他热爱羽毛球、游泳和阅读。
发表评论