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在某一時間段內的流量統計結果總和。

 

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