##利用neutron-metering-agent 监控l3层流量
环境:ocata版本
openstack的信息监控都是通过ceilometer来获取,而在基本的组件中没有将l3层流量的数据push到message中,需要额外安装openstack-neutron-metering-agent来完成这个功能
然后 ceilometer-agent-notification 通过监听消息队列来收取bandwidth信息。
neutron-metering-agent使用的是iptables来监控流量,这里有一些相关的资料可以参考一下
一、安装配置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