11、Telemetry服务

11.1、安装和配置(控制节点上安装和配置代号ceilometer的Telemetry服务)

11.1.1、创建创建一个数据库、服务凭证和API端点

11.1.1.1、创建 ceilometer 数据库:

# mongo --host controller --eval '

  db = db.getSiblingDB("ceilometer");

  db.createUser({user: "ceilometer",

  pwd: "P@ssw0rd",

  roles: [ "readWrite", "dbAdmin" ]})'

Openstack Mitaka安装手顺(11)Telemetry服务_ceilometer


说明:下面要为数据库用户修改密码,因为在openstack配置中说密码需要符合RFC2396

Openstack Mitaka安装手顺(11)Telemetry服务_Telemetry_02


且在日志中发现报错:

Openstack Mitaka安装手顺(11)Telemetry服务_Telemetry_03

于是将密码修改为(Passw0rd):

mongo --host controller --eval '

  db = db.getSiblingDB("ceilometer");

  db.changeUserPassword("ceilometer","Passw0rd")'

Openstack Mitaka安装手顺(11)Telemetry服务_Telemetry_04


记得修改配置文件连接串:vi /etc/ceilometer/ceilometer.conf

Openstack Mitaka安装手顺(11)Telemetry服务_Telemetry_05


然后重启服务:

Openstack Mitaka安装手顺(11)Telemetry服务_Telemetry_06


日志报错就没有了,一切顺利

Openstack Mitaka安装手顺(11)Telemetry服务_ceilometer_07

Openstack Mitaka安装手顺(11)Telemetry服务_ceilometer_08


11.1.1.2、获得 admin 凭证来获取只有管理员能执行的命令的访问权限:

$ . admin-openrc


11.1.1.3、要创建服务证书,完成这些步骤:

创建 ceilometer 用户:

$ openstack user create --domain default --password-prompt ceilometer


添加 admin 角色到 ceilometer 用户上。

$ openstack role add --project service --user ceilometer admin

注解:这个命令执行后没有输出。


创建 ceilometer 服务实体:

$ openstack service create --name ceilometer --description "Telemetry" metering


11.1.1.4、创建Telemetry服务API端点

$ openstack endpoint create --region RegionOne metering public http://controller:8777


$ openstack endpoint create --region RegionOne metering internal http://controller:8777


$ openstack endpoint create --region RegionOne metering admin http://controller:8777


控制节点防火墙开放端口:8777

# firewall-cmd --permanent --add-port=8777/tcp

# firewall-cmd --reload


确认端口开放成功

# firewall-cmd --list-all


11.1.2、安全并配置组件

11.1.2.1、安装软件包:

# yum install -y openstack-ceilometer-api \

  openstack-ceilometer-collector openstack-ceilometer-notification \

  openstack-ceilometer-central python-ceilometerclient


11.1.2.2、编辑 vi /etc/ceilometer/ceilometer.conf,同时完成如下动作:

在 [database] 部分,配置数据库访问:

connection = mongodb://ceilometer:P@ssw0rd@controller:27017/ceilometer


在 “[DEFAULT]” ,配置 “RabbitMQ” 消息队列访问:

rpc_backend = rabbit

auth_strategy = keystone


在 [oslo_messaging_rabbit]部分,配置 “RabbitMQ” 消息队列访问:

rabbit_host = controller

rabbit_userid = openstack

rabbit_password = P@ssw0rd


在 [keystone_authtoken] 部分,配置认证服务访问:

auth_uri = http://controller:5000

auth_url = http://controller:35357

memcached_servers = controller:11211

auth_type = password

project_domain_name = default

user_domain_name = default

project_name = service

username = ceilometer

password = P@ssw0rd


在 [service_credentials] 部分,配置服务证书:

auth_type = password

auth_url = http://controller:5000/v3

project_domain_name = default

user_domain_name = default

project_name = service

username = ceilometer

password = P@ssw0rd

interface = internalURL

region_name = RegionOne


11.1.3、完成安装

启动Telemetry服务并将其配置为随系统启动:

# systemctl enable openstack-ceilometer-api \

  openstack-ceilometer-notification \

  openstack-ceilometer-central \

  openstack-ceilometer-collector

# systemctl start openstack-ceilometer-api \

  openstack-ceilometer-notification \

  openstack-ceilometer-central \

  openstack-ceilometer-collector

# systemctl status openstack-ceilometer-api \

  openstack-ceilometer-notification \

  openstack-ceilometer-central \

  openstack-ceilometer-collector


11.2、启用镜像服务计量

Telemetry使用通知收集镜像服务计量信息。在控制节点上执行这些步骤。

11.2.1、配置镜像服务使用Telemetry

编辑 vi /etc/glance/glance-api.conf 完成下面配置:

在``[DEFAULT]``, ``[oslo_messaging_notifications]``和 ``[oslo_messaging_rabbit]``部分,配置通知和RabbitMQ消息队列访问:

[DEFAULT]

rpc_backend = rabbit


[oslo_messaging_notifications]

driver = messagingv2


[oslo_messaging_rabbit]

rabbit_host = controller

rabbit_userid = openstack

rabbit_password = P@ssw0rd


编辑 vi /etc/glance/glance-registry.conf 完成下面配置:

在``[DEFAULT]``, ``[oslo_messaging_notifications]``和 ``[oslo_messaging_rabbit]``部分,配置通知和RabbitMQ消息队列访问:

[DEFAULT]

rpc_backend = rabbit


[oslo_messaging_notifications]

driver = messagingv2


[oslo_messaging_rabbit]

rabbit_host = controller

rabbit_userid = openstack

rabbit_password = P@ssw0rd


11.2.2、重启镜像服务完成安装:

# systemctl restart openstack-glance-api openstack-glance-registry

# systemctl status openstack-glance-api openstack-glance-registry


11.3、启用计算服务计量(在每个计算节点执行这些步骤)

11.3.1、安装并配置组件

11.3.1.1、安装软件包

# yum install -y openstack-ceilometer-compute python-ceilometerclient python-pecan


11.3.1.2、编辑 vi /etc/ceilometer/ceilometer.conf,同时完成如下动作:

在 [DEFAULT] 部分,配置 “RabbitMQ” 消息队列访问:

rpc_backend = rabbit

auth_strategy = keystone


在[oslo_messaging_rabbit]部分,配置 “RabbitMQ” 消息队列访问:

rabbit_host = controller

rabbit_userid = openstack

rabbit_password = P@ssw0rd


在[keystone_authtoken]”部分,配置认证服务访问:

auth_uri = http://controller:5000

auth_url = http://controller:35357

memcached_servers = controller:11211

auth_type = password

project_domain_name = default

user_domain_name = default

project_name = service

username = ceilometer

password = P@ssw0rd


在 [service_credentials] 部分,配置服务证书:

auth_type = password

auth_url = http://controller:5000/v3

project_domain_name = default

user_domain_name = default

project_name = service

username = ceilometer

password = P@ssw0rd

interface = internalURL

region_name = RegionOne


11.3.2、配置计算使用Telemetry

编辑 vi /etc/nova/nova.conf , 在 [DEFAULT] 配置提醒:

instance_usage_audit = True

instance_usage_audit_period = hour

notify_on_state_change = vm_and_task_state

notification_driver = messagingv2


11.3.3、完成安装

启动代理和配置它随系统一起启动:

# systemctl enable openstack-ceilometer-compute

# systemctl start openstack-ceilometer-compute

重启计算服务:

# systemctl restart openstack-nova-compute

查看状态:

# systemctl status openstack-nova-compute openstack-ceilometer-compute


11.4、启用块存储计量

Telemetry使用通知收集块存储服务计量。在控制节点和块存储节点上执行这些步骤。

注解:您的环境必须包含块存储服务。


11.4.1、配置卷使用Telemetry(在控制节点和块存储节点上同时执行)

编辑 vi /etc/cinder/cinder.conf,同时完成如下动作:

在 [oslo_messaging_notifications] 部分,配置提醒:

driver = messagingv2

控制节点:

Openstack Mitaka安装手顺(11)Telemetry服务_Telemetry_09


计算节点:

Openstack Mitaka安装手顺(11)Telemetry服务_Telemetry_10


11.4.2、完成安装

11.4.2.1、重启控制节点上的块设备存储服务:

# systemctl restart openstack-cinder-api openstack-cinder-scheduler

# systemctl status openstack-cinder-api openstack-cinder-scheduler


11.4.2.2、重启存储节点上的块设备存储服务:

# systemctl restart openstack-cinder-volume

# systemctl status openstack-cinder-volume


11.4.2.3、在块存储节点上使用``cinder-volume-usage-audit``命令按需检索度量值。 

更多信息,请查看`管理员指南 <http://docs.openstack.org/admin-guide/ telemetry-data-collection.html#block-storage-audit-script-setup-to-get- notifications>`__。

20200309暂时未执行第三步,弄清楚后在执行。


11.5、启用对象计量

Telemetry结合使用代理和通知收集对象存储计量。

注解:您的环境必须包含对象存储服务。


11.5.1、先决条件(Telemetry 服务要求用 ResellerAdmin 的角色来访问对象存储服务)

在控制节点实施这些步骤

11.5.1.1、获得 admin 凭证来获取只有管理员能执行的命令的访问权限。

$ . admin-openrc


11.5.1.2、创建 ResellerAdmin 角色:

$ openstack role create ResellerAdmin

Openstack Mitaka安装手顺(11)Telemetry服务_Telemetry_11


11.5.1.3、给``ceilometer``用户添加``ResellerAdmin``角色:

$ openstack role add --project service --user ceilometer ResellerAdmin

注解:这个命令执行后没有输出。


11.5.2、安装组件

11.5.2.1、安装软件包

# yum install -y python-ceilometermiddleware


11.5.2.2、配置对象存储使用Telemetry

在控制节点上执行这些步骤,在其他节点上运行对象存储的代理服务。

编辑文件 vi /etc/swift/proxy-server.conf 并完成如下动作:

在 [filter:keystoneauth] 部分, 添加 ResellerAdmin 角色:

[filter:keystoneauth]

...

operator_roles = admin, user, ResellerAdmin

Openstack Mitaka安装手顺(11)Telemetry服务_Telemetry_12

注解:ResellerAdmin是新增的配置


在 [pipeline:main] 部分,添加 ceilometer:

[pipeline:main]

pipeline = ceilometer healthcheck proxy-logging cache authtoken keystoneauth proxy-logging proxy-server

Openstack Mitaka安装手顺(11)Telemetry服务_Telemetry_13

注解:ceilometer为新增配置,社区官方文档配置项很多,但是我这里只配置这些模块


在 [filter:ceilometer] 部分,配置提醒:

[filter:ceilometer]

paste.filter_factory = ceilometermiddleware.swift:filter_factory

control_exchange = swift

url = rabbit://openstack:P@ssw0rd@controller:5672/

driver = messagingv2

topic = notifications

log_level = WARN

Openstack Mitaka安装手顺(11)Telemetry服务_ceilometer_14

注解:上面配置为全新增加配置,整个部分连标题部分都没有。


11.5.3、完成安装

重启对象存储的代理服务:

# systemctl restart openstack-swift-proxy

# systemctl status openstack-swift-proxy


11.6、警告服务(在控制节点执行)

11.6.1、先决条件(创建一个数据库,服务凭证和API端点)

11.6.1.1、完成下面的步骤以创建数据库:

用数据库连接客户端以 root 用户连接到数据库服务器:

$ mysql -u root -p

CREATE DATABASE aodh;

GRANT ALL PRIVILEGES ON aodh.* TO 'aodh'@'localhost' IDENTIFIED BY 'P@ssw0rd';

GRANT ALL PRIVILEGES ON aodh.* TO 'aodh'@'%' IDENTIFIED BY 'P@ssw0rd';

11.6.1.2、获得 admin 凭证来获取只有管理员能执行的命令的访问权限:

$ . admin-openrc


11.6.1.3、要创建服务证书,完成这些步骤:

创建 ``aodh``用户:

$ openstack user create --domain default --password-prompt aodh


添加``admin`` 角色到 aodh 用户:

$ openstack role add --project service --user aodh admin

注解:这个命令执行后没有输出


创建 aodh 服务实体:

$ openstack service create --name aodh --description "Telemetry" alarming


11.6.1.4、创建警告服务API端点:

$ openstack endpoint create --region RegionOne alarming public http://controller:8042


$ openstack endpoint create --region RegionOne alarming internal http://controller:8042


$ openstack endpoint create --region RegionOne alarming admin http://controller:8042


控制节点防火墙开放端口:8042

# firewall-cmd --permanent --add-port=8042/tcp

# firewall-cmd --reload


确认端口开放成功

# firewall-cmd --list-all


11.6.2、安全并配置组件

11.6.2.1、安装软件包

# yum install -y openstack-aodh-api \

  openstack-aodh-evaluator openstack-aodh-notifier \

  openstack-aodh-listener openstack-aodh-expirer \

  python-ceilometerclient


11.6.2.2、编辑 vi /etc/aodh/aodh.conf 文件并完成以下操作:

在 [database] 部分,配置数据库访问:

connection = mysql+pymysql://aodh:P@sswrd@controller/aodh


在 [DEFAULT] 部分,配置:

rpc_backend = rabbit

auth_strategy = keystone


在 [oslo_messaging_rabbit]部分,配置 “RabbitMQ” 消息队列访问:

rabbit_host = controller

rabbit_userid = openstack

rabbit_password = RABBIT_PASS


在 [keystone_authtoken] 部分,配置认证服务访问:

auth_uri = http://controller:5000

auth_url = http://controller:35357

memcached_servers = controller:11211

auth_type = password

project_domain_name = default

user_domain_name = default

project_name = service

username = aodh

password = P@ssw0rd


在 “[service_credentials]” 部分,配置服务证书:

auth_type = password

auth_url = http://controller:5000/v3

project_domain_name = default

user_domain_name = default

project_name = service

username = aodh

password = P@ssw0rd

interface = internalURL

region_name = RegionOne


11.6.2.3、初始化告警数据库:

# su -s /bin/sh -c "aodh-dbsync" aodh

Openstack Mitaka安装手顺(11)Telemetry服务_ceilometer_15


11.6.3、完成安装,启动Alarming服务并将其配置为随系统启动:

# systemctl enable openstack-aodh-api openstack-aodh-evaluator \

  openstack-aodh-notifier openstack-aodh-listener

# systemctl start openstack-aodh-api openstack-aodh-evaluator \

  openstack-aodh-notifier openstack-aodh-listener

# systemctl status openstack-aodh-api openstack-aodh-evaluator \

  openstack-aodh-notifier openstack-aodh-listener



11.7、验证操作(在控制节点上执行这些步骤)

11.7.1、获得 admin 凭证来获取只有管理员能执行的命令的访问权限:

$ . admin-openrc


11.7.2、列出可用的 meters:

$ ceilometer meter-list

Openstack Mitaka安装手顺(11)Telemetry服务_Telemetry_16


11.7.3、从镜像服务下载CirrOS镜像:

$ IMAGE_ID=$(glance image-list | grep 'cirros' | awk '{ print $2 }')

$ glance image-download $IMAGE_ID > /tmp/cirros.img


11.7.4、再次列出可用的 meters 以验证镜像下载的检查:

$ ceilometer meter-list

11.7.5、从 image.download 表读取使用量统计值。

$ ceilometer statistics -m image.download -p 60


11.7.6、删除之前下载的镜像文件 /tmp/cirros.img:

$ rm /tmp/cirros.img