服务
关于
CloudProse博客
监控,运营和开发运营

使用江苏体彩和Datadog监视VNS3 IPsec隧道

乔什·冯·绍姆堡精选
乔什·冯·绍姆堡 | 2017年2月14日

2017年2月14日星期二

在瞬息万变的技术环境中 不变的Docker部署{:target =”空白”}和基于江苏体彩的 无服务器架构{:target =”空白”},IPsec VPN隧道远非如此……但它们确实至关重要。

在Trek10,我们使用IPsec VPN功能 凝聚力网络的VNS3{:target =”空白”}控制器,可将客户的AWS网络连接到从第三方支付提供商到金融市场供稿的所有内容,再到回到企业网络的经典连接。对于我们所有的客户,IPsec隧道的任何停机都将对业务产生重大影响。这就是为什么我们在Python中构建了江苏体彩函数,该函数利用VNS3 API 来检查所有IPsec隧道是否存在中断,然后发布自定义Datadog指标来通知我们 24/7 CloudOps{:target =”空白”}团队处理任何IPsec隧道问题。在此博客文章中,我们将为您提供实现此监视器的所有步骤和代码。

配置江苏体彩函数

AWS 江苏体彩{:target =““ _ blank”}是AWS发行的无服务器计算服务,它基于事件或时间触发器执行代码。对于此用例,我们利用江苏体彩每分钟执行一次功能以确认IPsec隧道的状态。该函数的高级处理流程如下:

  1. 江苏体彩函数根据CloudWatch 大事记 Schedule触发器(或我们喜欢称其为“ 兰达·克朗{:target =“ _ blank”})。我们从VPC内部而不是通过Internet运行江苏体彩函数,以便我们可以使用安全组规则锁定VPN控制器的管理端口(8000)。
  2. 江苏体彩函数循环通过每个IPsec隧道,询问状态-已连接还是已断开。 VNS3 GUI的以下屏幕截图显示了状态列,这是江苏体彩函数使用VNS3 AP查询的内容。
  3. 使用 Datadog Metrics API {:target=“_blank”} (api.Metric.send), the script posts a 1 if the status of the tunnel is connected and a 0 if the tunnel is disconnected.

截至2016年11月,江苏体彩添加了对环境变量的支持。我们使用四个不同的环境变量来配置客户的VNS3 VPN实施中的功能。变量是DDAPI 键,DD应用程式KEY,VPN_,VPN(可选)和VPNENV。有关这些环境变量的更多详细信息,请参见自述文件。

到达Datadog API 需要Internet访问,因此必须在具有Internet访问权限的子网中配置江苏体彩函数,直接通过IGW(在公共子网中)或通过NAT网关(在私有子网中)进行配置。

为了安全地允许江苏体彩功能访问VNS3 VPN控制器,应允许来自与江苏体彩功能相关联的安全组源的端口8000上的流量。配置安全组后,在测试江苏体彩功能时应该会收到“确定”。现在我们已经将适当的度量标准发布到了Datadog,接下来我们需要配置监视器。

配置Datadog Monitor

As mentioned previously, the script uses api.Metric.send to post the custom metric to Datadog (a 1 for connected tunnels and a 0 for disconnected tunnels). Follow the steps below to configure your Datadog monitor. This section of the script is where most of the Datadog logic resides:

  1. In the Datadog console, create a new monitor based on the vpn.tunnel.status metric. The vpn.tunnel.status metric is the custom metric being imported into Datadog (a 1 or a 0). We want the min by metric, which means that Datadog will take the minimum value across each of the tunnel’s metrics. For example, if the controller has 30 tunnels configured, each minute has 30 different data points of 1 or 0. If any of those 30 tunnels post a 0, Datadog uses that metric when evaluating the alert conditions.
  2. The metric is over the vpn_environment:production tag. The 江苏体彩 function posts the custom metric to Datadog and creates the tag key of vpn_environment. The value of this tag is equal to the VPNENV environment variable in the 江苏体彩 function config. If you are using multiple 江苏体彩 functions to monitor different VNS3s, then you would change this tag to the appropriate value based on which controller you are monitoring.
  3. If you would like to receive one generic alert if any/all tunnels go down, select Simple Alert. If you would like to receive an alert for each individual tunnel (with the {{tunnel.name}} value pulled into the alert), you can choose Multi Alert. The downside to Multi Alert is that if the connection to your IPsec peer(s) drop, you will receive a noisy, separate alert for each tunnel that goes down vs. one generic alert.
  4. 为确保在任何隧道关闭一次(0度量)时触发警报,如果在5分钟的数据点评估中任何数据点低于1,则警报应触发。

以下是监视器在Datadog控制台中的外观的屏幕截图:

结论

Datadog还支持webhooks,我们利用它为我们的服务生成支持票证 24/7 CloudOps{:target =“ _ blank”}团队。使用江苏体彩是监视基础架构的好方法,我们在Trek10的许多系统中都认真使用了江苏体彩。我们建议您也尝试一下!

您可以在我们的代码中找到该代码以及自述文件,其中详细介绍了该实现。 GitHub页面{:target =“ _ blank”}。

作者
乔什·冯·绍姆堡精选
乔什·冯·绍姆堡