跳转到: 导航, 搜索

Ceilometer/blueprints/monitoring-network

监控网络

总结

此功能通过 SDN 控制器的北向 API 收集网络信息(设备、连接状态和统计信息)。

  • 支持多种 SDN 控制器类型。
  • 允许并行从多个控制器进行计量。
  • 允许源 SDN 控制器并行使用多种控制器类型。

这是将在 Ceilometer agent central 中实现的 pollster(轮询器)。

用户故事

  • 用于资源位置优化(例如 VM)。
  • 用于测试虚拟网络的路由。

设计

  • pollster 不直接调用 REST API,而是使用传递的计量器名称的驱动程序。
  • 驱动程序通过 REST API 收集统计信息,并将一个 volume、一个资源 ID 和一个 metadata 返回给 pollster。
  • pollster 生成 sample(样本)。参数如下:
参数名称
name 计量器名称
type 为每个计量器确定
单位 为每个计量器确定
volume 从驱动程序返回
user_id
project_id
resource_id 从驱动程序返回
resource_metadata 从驱动程序返回
timestamp 运行 pollster 时的 timestamp(时间戳)
  • 驱动程序名称在 "setup.cfg" 的 "network.statistics.drivers" 命名空间中指定。
  • SDN 控制器的端点在 "pipline.yaml" 的 resources 中指定。

例如:

-
  name: meter_pipeline
  interval: 600
  meters:
    - "*"
  resources:
    - opendaylight://10.3.3.3:8080/controller/nb/v2/
    - trema://10.3.3.4?foo=bar
  transformers:
  publishers:
    - rpc://

实现

模块

ceilometer
 - network
  - statistics
   - module for each SDN controller
  • ceilometer.network.statistics
    此模块包含以下内容:
    • 驱动程序的抽象类
    • pollster 类的基类。
    • 模拟驱动程序
  • ceilometer.network.statistics.switch
  • ceilometer.network.statistics.port
  • ceilometer.network.statistics.table
  • ceilometer.network.statistics.flow
    这些模块包含 pollster 类。
  • 用于 SDN 控制器的模块(例如 ceilometer.network.statistics.opendaylight)
    此模块包含以下内容:
    • 驱动程序
    • 驱动程序的实用工具。

计量

这些计量器主要来自 OpenFlow Switch Specification 1.0.2。

交换机
资源 交换机 ID
来源 pollster
metadata {"controller": SDN 控制器名称, "switch.meta": 交换机详情}


计量器 单位 类型 注意
switch switch Gauge(计量表) 交换机持续时间
交换机端口
资源 交换机 ID
来源 pollster
metadata {"controller": SDN 控制器名称, "port": 端口号}


计量器 单位 类型 注意
switch.port port Gauge(计量表) 端口持续时间

端口和连接到该端口的端口的详细信息在资源 metadata 中。例如,链路状态、连接节点 ID 等。
如果包含连接节点的 MAC 地址和端口号,则可以使用资源 metadata 查看拓扑信息。

switch.port.receive.packets 数据包 累积 接收到的数据包
switch.port.transmit.packets 数据包 累积 发送的数据包
switch.port.receive.bytes B 累积 接收到的字节
switch.port.transmit.bytes B 累积 发送的字节
switch.port.receive.drops 数据包 累积 接收丢弃
switch.port.transmit.drops 数据包 累积 发送丢弃
switch.port.receive.errors 数据包 累积 接收错误
switch.port.transmit.errors 数据包 累积 发送错误
switch.port.receive.frame_error 数据包 累积 接收帧对齐错误
switch.port.receive.overrun_error 数据包 累积 接收溢出错误
switch.port.receive.crc_error 数据包 累积 接收 CRC 错误
switch.port.collision.count count 累积 冲突
交换机表
资源 交换机 ID
来源 pollster
metadata {"controller": SDN 控制器名称, "table.id": 表 ID}


计量器 单位 类型 注意
switch.table table Gauge(计量表) 表持续时间
switch.table.active.entries 条目 Gauge(计量表) 活动条目
switch.table.lookup.packets 数据包 Gauge(计量表) 数据包查找
switch.table.matched.packets 数据包 Gauge(计量表) 匹配的数据包
交换机流
资源 交换机 ID
来源 pollster
metadata {"controller": SDN 控制器名称, "table.id": 表 ID, "flow.id": 流 ID}


计量器 单位 类型 注意
switch.flow flow Gauge(计量表) 流持续时间。* 流的详细信息在资源 metadata 中。
switch.flow.duration.seconds Gauge(计量表) 持续时间(秒)
switch.flow.duration.nanoseconds 纳秒 Gauge(计量表) 持续时间(纳秒)
switch.flow.packets 数据包 累积 接收到的数据包
switch.flow.bytes B 累积 接收到的字节