防火墙性能报警之后

背景

混合云,应用在云上,数据库在机房,中间通过防火墙进行隔离和访问控制(DNAT+ACL)。

问题

  • IAAS组收到报警:防火墙报警cpu负载较高
  • PaaS组收到报警:整体应用重启频繁
  • 业务开发收到报警:应用不稳定重启
  • DBA收到报警:云到IDC的数据库连接有丢包

定位与解决

  • SRE收到各方反馈,IAAS网络组检查防火墙负载高的原因为session数量突增,追踪到主要流量的IP。SRE检查应用告警中数量最多的,最先发生的(基于邮件告警记录、日志分析排序)应用。其IP和防火墙高session的来源IP一致(同属一个业务k8s集群网段)。
  • 定位到具体应用,查看到报警前其有上线记录,且规模较大,再加上新实例启动失败后会一直自动尝试重启(crashbackoff),导致过多新建连接到数据库。
  • 联系应用开发的TL,其告知最近有活动,流量大,且该应用连接后端mongodb近期存在较大压力,正着手解决。
  • 防火墙负载持续升高
  • 停止发布故障应用(回滚),建议业务方下调流量,降低防火墙压力
  • 防火墙负载恢复,其他受影响业务恢复。

原因

  • 云到IDC流量逐渐增大,防火墙负载压力高
  • 防火墙上有较多策略和DNAT,加大压力。
  • 多实例应用滚动升级时申请的最高值较高,一旦存在bug启动失败将不断重试,增大防火墙压力。
  • 业务方做活动未提前通知。