openstack neutron网络模块分析(六)--- 利用neutron-metering-agent 监控l3层流量

##利用neutron-metering-agent 监控l3层流量
环境:ocata版本
openstack的信息监控都是通过ceilometer来获取,而在基本的组件中没有将l3层流量的数据push到message中,需要额外安装openstack-neutron-metering-agent来完成这个功能
然后 ceilometer-agent-notification 通过监听消息队列来收取bandwidth信息。
neutron-metering-agent使用的是iptables来监控流量,这里有一些相关的资料可以参考一下
openstack neutron网络模块分析(六)--- 利用neutron-metering-agent 监控l3层流量_第1张图片


一、安装配置openstack-neutron-metering-agent
安装

yum install openstack-neutron-metering-agent

配置meter_agent.ini

安装了OVS:

interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver

安装了LinuxBridge:

interface_driver = neutron.agent.linux.interface.BridgeInterfaceDriver

同样设置

debug=true
use_namespace=True  
driver=neutron.services.metering.drivers.iptables.iptables_driver.IptablesMeteringDriver

measure_interval = 1 #采集间隔 单位 s
report_interval = 1 #push到message的间隔 单位 s

注意:这里只是上报的间隔频率,并不是最终存储的间隔,如果采用gnocchi存储,需要ceilometer.conf里[dispatcher_gnocchi]的archive_policy=

配置neutron.conf

 service_plugins = neutron.services.metering.metering_plugin.MeteringPlugin

如果service_plugins已有配置值 则在后面加上面的内容,例如service_plugins = router
service_plugins = router , neutron.services.metering.metering_plugin.MeteringPlugin

重启neutron-server

 systemctl restart neutron-server

查看neutron 状态是否正常

systemctl status neutron-server

启动neutron-metering-ag

systemctl enable neutron-metering-agent
systemctl start neutron-metering-agent

二、 创建bandwidth
使用命令 openstack network meter 或neutron meter-label-create
建议先看看metering官网
这里以监控摸个子网的流入流出流量为例
创建bandwidth
创建子网流入的bandwidth

openstack network meter create name1-in
创建name1-in的规则
openstack network meter rule create --ingress --remote-ip-prefix 0.0.0.0/24 name1-in

创建子网流出的bandwidth
openstack network meter create name1-out

创建name1-out的规则
openstack network meter rule create --egress --remote-ip-prefix 0.0.0.0/24 name1-out

查看创建情况
openstack network meter list

三、iptables 规则查看
说明:
由于neutron-metering-agent统计子网流量的原理是使用iptables
所以可以用iptables -L -nvx 查看规则
注意:上面使用了namespace
所以需要指定namespace

(查看流量统计情况,qrouter 与neutron-meter-l可以通过在/var/log/neutron/metering-agent.log中查看到,前提是前面的debug=true
也可以用ip netns list 命令查看namespace,但是无法得知具体是哪个

查看filter的规则

ip netns exec qrouter-6d798340-df16-419d-a56b-35b998b3b763 iptables-save -t filter

结合ip netns 相关命令查看规则统计的流量

ip netns exec qrouter-6d798340-df16-419d-a56b-35b998b3b763  iptables -t filter -L neutron-meter-l-44500b94-112 -v -n -x

四、 查看数据
完成上面的部分,此时就能在ceilometer中看到bandwidth这个meter项了
ceilometer查看

ceilometer meter-list | grep bandwidth

这里的resource-id 和上面的用openstack network meter list查看到的ID是一致的(第四项)
ceilometer sample-list #查看采集的数据

如果使用了ceilometer+gnocchi 则只能用gnocchi相关的命令查看

gnocchi metric list | grep bandwidth

查看数据

gnocchi measures show

示例

gnocchi measures show --resource-id 3a705237-c0e2-4589-a877-431ddb21eaca bandwidth

建议:用命令查看数据是先用-h查看用法

参考:
openstack 官方文档:https://docs.openstack.org/python-openstackclient/3.12.0/cli/command-objects/network-meter.html#network-meter-list
Redhat文档:https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux_OpenStack_Platform/5/html/Cloud_Administrator_Guide/ch_networking.html
neutron-meter相关:http://www.cinlk.com/2015/09/02/neutronmetering/index.html
https://blog.csdn.net/s1234567_89/article/details/51890919

你可能感兴趣的:(openstack,neutron)