def update_floatingip(self, context, id, floatingip):
# TODO create metering label project_A_in_10.200.43.6/24_PORTID
project_id = context.tenant_id
port_id = floatingip['floatingip']['port_id']
LOG.info("############TENANT_ID: %s ", project_id)
LOG.info("############ID: %s ", id)
LOG.info("############FLOATINGIP: %s ", floatingip)
LOG.info("############PORTID: %s ", port_id)
old_floatingip, floatingip = self._update_floatingip(
context, id, floatingip)
if port_id is not None:
LOG.info("############NewFLOATINGIP: %s ", floatingip)
floating_ip_address = floatingip['floating_ip_address']
floating_ip_cidr = str(floating_ip_address) + '/32'
meter_in_label_name = 'project_' + str(project_id) + '_in_' + \
floating_ip_cidr + '_' + str(port_id)
meter_out_label_name = 'project_' + str(project_id) + '_out_' + \
floating_ip_cidr + '_' + str(port_id)
LOG.info("########meter_in_label_name: %s ", meter_in_label_name)
description = ""
in_metering_label = {'metering_label': {
'name': meter_in_label_name,
'tenant_id': project_id,
'shared': False,
'description': description}}
metering_labels = self.meteringplugin.get_metering_labels()
LOG.info("######metering_labels: %s ", str(metering_labels))
self.meteringplugin.create_metering_label(
context, in_metering_label)
LOG.info("######meter_out_label_name: %s ", meter_out_label_name)
self._notify_floating_ip_change(context, old_floatingip)
if (floatingip['router_id'] != old_floatingip['router_id'] or
floatingip['port_id'] != old_floatingip['port_id'] or
floatingip['qos_policy_id'] !=
old_floatingip['qos_policy_id']):
self._notify_floating_ip_change(context, floatingip)
return floatingip
ssh root@10.200.43.219 "mkdir -p /etc/kolla/neutron-metering-agent"
scp /root/deploy-i-stack/lib/neutron-metering-agent/* root@10.200.43.219:/etc/kolla/neutron-metering-agent/
ssh root@10.200.43.219 "sh /etc/kolla/neutron-metering-agent/edit_neutron_config.sh"
ssh root@10.200.43.219 "cp /etc/kolla/neutron-server/neutron.conf /etc/kolla/neutron-metering-agent/"
ssh root@10.200.43.219 "sh /etc/kolla/neutron-metering-agent/neutron_metering_agent.sh 125.215.36.164:4000"
修改所有控制节点的ceilometer.conf配置文件,可在末尾添加配置。
[root@contrl01 ~]# vi /etc/kolla/ceilometer-notification/ceilometer.conf
[dispatcher_gnocchi]
# The archive policy to use when the dispatcher create a new metric. (string
# value)
archive_policy = medium
同样的方法修改如下配置
[root@contrl01 ~]# vi /etc/kolla/ceilometer-api/ceilometer.conf
[root@contrl01 ~]# vi /etc/kolla/ceilometer-central/ceilometer.conf
[root@contrl01 ~]# docker ps -a |grep ceilometer | awk '{print $1}' |xargs docker restart
配置meter_agent.ini
#push到message的间隔 单位 s
report_interval = 60
docker exec -u root neutron_server cp /var/lib/kolla/venv/lib/python2.7/site-packages/neutron/services/metering/drivers/iptables/iptables_driver.py /var/lib/kolla/venv/lib/python2.7/site-packages/neutron/services/metering/drivers/iptables/iptables_driver.py_bak
docker cp /opt/iptables_driver.py neutron_server:/var/lib/kolla/venv/lib/python2.7/site-packages/neutron/services/metering/drivers/iptables/iptables_driver.py
docker restart neutron_server