Metering简介

1 metering功能

L3 metering是在路由器(DVR)层面上进行流量带宽统计。操作者配置IPranges,并分配标签(meter-label),每个标签会测量一组IP范围内的流量,并把带宽测量结果发送到oslo notificationsystem,并被Ceilometer收集。 

通过设置每个L3namespace(qrouter-XXX)上的IPtables rules来实现流量统计功能,方法如下:

1,在每个路由器的FORWARD链添加metering规则

2,向metering链添加要统计的流量规则

3,这些规则将会指向一个统计流量的(数据包,bytes)链

4,增加一个agent,该代理从IPtables链获取带宽信息作为delta,然后push到oslo-messaging,ceilometer-agent-notification通过监听消息队列来收取bandwidth信息。

L3metering流量统计,以流经路由器的外部网关qg口为标准,因此,只有设置了外部网关以后,流量统计规则才会生效。

2 metering操作

2.1 metering 接口

Metering向用户提供了命令行接口:meter-labelmeter-label-rule,通过创建这些接口,可以实现流量统计功能。下面列举了这些接口的数据结构。一个label可以包含多条rulerule中指定了流量统计的目标。label是全局共享的,即在租户内的所有路由器上均会进行流量统计。

meter-label

+-------------+--------------------------------------+

| Field       | Value                   |

+-------------+--------------------------------------+

| description|                          |

| id          |                        |

| name        |                       |

| shared      |                        |

| tenant_id   |                        |

meter-label-rule

+-------------------+--------------------------------------+

| Field             | Value                |

+-------------------+--------------------------------------+

| direction         |                       |

| excluded          |                      |

| id                |                      |

|metering_label_id |                       |

|remote_ip_prefix  |                       |

+-------------------+--------------------------------------+

Meter-label支持增删改查,字段含义介绍如下。

Id: meter标签的唯一标识

Tenant_id:与标签关联的租户ID

Name: 标签的名字

Shared:设置label是否共享

Description:对标签的描述

Meter-label-rule支持增删改查,字段含义介绍如下。

Metering_label_id:关联的label IDname

Id: 唯一标识

Remote_ip_prefix流量统计的IP地址段

Direction:流量统计的应用方向,分为入方向和出方向{ingress,egress},默认为ingress。

Ø  当方向为ingress , remote_ip_prefix地址表示源地址,统计从源地址流向qg口地址的流量。

Ø  当方向为egress, remote_ip_prefix 地址表示目的地址,统计从qg口流向到目的地址的流量。

Excluded是否将IP地址段排出在流量统计之外,默认为不排除

2.2 metering统计结果查看命令

l  通过iptables命令查看,所创建meter-label-rules的统计结果。

      当租户创建路由器并设置外部网关后,执行命令ip netns,能够看到相应的l3 namespace: qrouter-<router-id>。当创建了neutron meter-label,meter-label-rule,执行ip netns exec qrouter-<router-id>  iptables –nL ,可查看到meter-label-chain,rule-chain。

通过执行如下命令,即可查看到流量统计结果。

 # ip netns exec qrouter-<router-id>  iptables -t filter -L neutron-meter-r-<label-id>  -n -v -x

 

如,# neutron meter-label-rule-create label1 172.24.4.0/24

# sudo ip netns exec qrouter-4a9431ff-a7d9-48cf-9127-92840eb4dae2 iptables -t filter -L  neutron-meter-r-e67f353b-f9e -n -v –x

 

Chain neutron-meter-r-e67f353b-f9e (1 references)

    pkts      bytes target     prot opt in     out     source               destination        

       0        0 neutron-meter-l-e67f353b-f9e  all  --  qg-4a7edbf3-a8 *       172.24.4.0/24        0.0.0.0/0    

 

l  通过ceilometer命令查看

# ceilometer sample-list -m bandwidth [-q <QUERY>]

sample-list命令将返回meter的所有采样点,采样点之间时间戳的间隔为 measure_interval 与 report_interval 之和。这两个值在/etc/metering_agent.ini中进行配置。

采样点之间具有相同的meter属性(名称name、类型type、单位unit),其统计值volume(value)、时间戳timestamp不同。resource id即为label id。

一条返回值示例:

+--------------------------------------+-----------+-------+--------+------+----------------------------+
| ResourceID                         | Name      | Type  | Volume | Unit |Timestamp                 |
+--------------------------------------+-----------+-------+--------+------+----------------------------+
| eb864f60-daff-494e-9c37-cb8e80d0681a | bandwidth | delta | 8568.0 |B    | 2015-06-12T06:16:42.822400 |
+--------------------------------------+-----------+-------+--------+------+----------------------------+

注意,sample-list命令将以行的方式显示大量返回值。可以通过可选参数-q对结果进行筛选。可以只显示某个label的采样值或某一时间段内的采样值。

ceilometersample-list -m bandwidth -q 'resource_id=RESOURCE_ID;timestamp>START_TIME;timestamp<STOP_TIME'

q字符串参数的格式为:

-q'<field1><operator1><value1>;...;<field_n><operator_n><value_n>'

其中,操作符为 <, <=, =,!=, >= ,>中之一。

 

# ceilometer statistics -m bandwidth  [-q <QUERY>]

statistics命令只返回一条统计结果。它是在某个时间段内的一组采样点的集合。返回结果中包含所设置的时间段内的在样本集合上执行的5个函数,分别为,最大采样值Max,最小采样值Min,平均采样值Avg,所有样本值之和Sum和样本数量Count。

+--------+----------------------------+----------------------------+--------+-----+--------+--------+-------+---
| Period | Period Start | Period End | Max  | Min | Avg | Sum |Count | Duration | DurationStart             |Duration End              |
+--------+----------------------------+----------------------------+--------+-----+--------+--------+-------+----------+----------------------------+----------------------------+
| 0      | 2015-06-12T06:16:42.822400 |2015-06-12T06:16:42.838430 | 8568.0 | 0.0 | 4284.0 | 8568.0 | 2    | 0.01603  | 2015-06-12T06:16:42.822400 | 2015-06-12T06:16:42.838430 |
+--------+----------------------------+----------------------------+--------+-----+--------+--------+-------+----------+----------------------------+----------------------------+

-q用法同上。因此使用statistics命令可以灵活的查看label在某一时间段内的流量统计结果总和。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章