计量网络服务 - 防火墙即服务

https://blueprints.launchpad.net/ceilometer/+spec/ceilometer-meter-fwaas

问题描述

Ceilometer 目前不支持计量防火墙即服务 (FWaaS)。云服务提供商/运营商需要监控和计量网络服务的各个方面。本规范涉及计量防火墙即服务 (FWaaS)。

提议的变更

计量 FWaaS 所需的测量指标分为提供商级别和业务级别两类。以下是计划包含在 Ceilometer 中的测量指标

  • 提供商级别指标

    • 防火墙类型(iptables、CSR 虚拟防火墙等)- 取决于 neutron 中的 flavor 框架(参见依赖项)

  • 业务级别指标

    • 防火墙规则/策略的存在性

    • 连接数 - 需要对 Neutron FWaaS 进行更改(参见依赖项)

    • 带宽 - 需要对 neutron FWaaS 进行更改(参见依赖项)

  • 指标定义

名称

类型

单位

来源

network.services.fw

g

firewall

p

network.services.fw.policy

g

策略

p

network.services.fw.type

g

firewall

p

network.services.fw.total.connections

g

connections

p

network.services.fw.active.connections

g

connections

p

network.services.fw.incoming.bytes

c

B

p

network.services.fw.outgoing.bytes

c

B

p

g = gauge(瞬时值), c = cumulative(累积值), p = pollster(轮询器)

  • 状态以枚举式值存储在样本 volume 中,而不是资源元数据中,针对每个防火墙。

与这些指标相关的资源作为资源发现的一部分被捕获。Neutron 暴露了 API 以捕获这些数据,这些数据通过 Ceilometer 侧的 pollsters 调用。Neutron 服务侧的通知比较有限。随着我们在 Neutron 侧添加这些通知消息,我们将增强 Ceilometer 侧以通过通知处理程序捕获这些事件。

作为 Neutron 侧的参考实现,将有一个 API 调用来检索诸如连接数和带宽之类的统计信息。后端实现将基于 iptables。Iptables 为我们提供了一种收集平均命中计数以提供这些统计信息的方式。其他基于供应商的实现可以执行相同的操作。

替代方案

数据模型影响

REST API 影响

安全影响

Pipeline 影响

对于共享发现扩展的每个 pollsters 组,需要在 pipeline.yaml 中包含新的来源。以下是一个示例

sources:
  - name: fw_source
    interval: 600
    meters:
      - "network.services.fw"
    discovery:
      - "firewall"
    sinks:
      - network_services_sink

类似地,我们将为防火墙策略、命中计数和带宽提供来源。

其他最终用户影响

最终用户应该能够通过现有的 API 和 CLI 进行交互。

  • 将这些指标暴露在 horizon 仪表板上会很好,但这超出了本规范的范围。

性能/可扩展性影响

此更改不应对性能/可扩展性产生重大影响。

其他部署影响

开发者影响

此功能对开发人员的持续维护应该产生最小的影响

实现

负责人

主要负责人
  • pkilambi

其他贡献者
持续维护者
  • pkilambi

工作项

  • 在 neutron_client.py 中添加 neutron 客户端 API 以查询 FWaaS 调用

  • 添加新的轮询器和通知处理程序

  • 添加单元/集成测试覆盖

  • 更新测量文档

未来生命周期

围绕 FWaaS 和其他网络服务的新的测量指标将是网络 pollsters 和通知的一部分。因此,持续维护将由 Ceilometer 团队(包括我)处理。

依赖项

测试

将添加单元和集成测试,以涵盖必要的 neutron_client 调用、轮询器和通知。

文档影响

需要更新 Measurement 文档,以反映从 FWaaS API 和通知中捕获的新计量器。

参考资料