Ceilometer/blueprints/monitoring-network
< Ceilometer | blueprints
目录
监控网络
总结
此功能通过 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 等。 |
| 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 | 累积 | 接收到的字节 |