Opensatck 数据收集服务

遥测数据收集服务概述

遥测数据收集服务提供以下功能:

  • 高效轮询与 OpenStack 服务相关的计量数据。
  • 通过监视从服务发送的通知来收集事件和计量数据。
  • 将收集的数据发布到各种目标,包括数据存储和消息队列。

遥测服务由以下组件组成:

计算代理(云杉计-代理-计算))
在每个计算节点上运行,并轮询资源利用率统计信息。
中央代理(云高仪-代理-中心))
在中央管理服务器上运行,以轮询未绑定到实例或计算节点的资源的资源利用率统计信息。可以启动多个代理以水平扩展服务。
通知代理(云高仪代理通知))
在中央管理服务器上运行,并使用消息队列中的消息来构建事件和计量数据。
收集器(云高仪收集器))
在中央管理服务器上运行,并将收集的遥测数据分派给数据存储或外部使用者,而无需修改。此服务是可选的,因为可以配置云高仪代理通知服务以提供等效功能。

这些服务通过使用 OpenStack 消息传递总线进行通信。云高仪数据旨在发布到各个端点进行存储和分析。

注意!

云高仪之前提供了一个存储和API解决方案。从Newton开始,此功能已被正式弃用和不鼓励。为了高效存储和统计分析云高仪数据。

安装和配置组件---计算节点

  • 安装软件包:
yum install openstack-ceilometer-compute

编辑 /etc/ceilometer/ceilometer.conf  文件并完成以下操作:

  •  [DEFAULT]  部分中,配置 RabbitMQ 消息队列访问:
[DEFAULT]
...
transport_url = rabbit://openstack:RABBIT_PASS@controller

将RABBIT_PASS替换为您在 RabbitMQ 中为 openstack 帐户选择的密码。

  • 在 [默认] 和  [keystone_authtoken] 部分中,配置身份服务访问:
[DEFAULT]
...
auth_strategy = keystone
[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 = CEILOMETER_PASS

将CEILOMETER_PASS替换为为遥测服务数据库选择的密码。

  • [service_credentials] 部分中,配置服务凭据:
[service_credentials]
...
auth_url = http://controller:5000
project_domain_id = default
user_domain_id = default
auth_type = password
username = ceilometer
project_name = service
password = CEILOMETER_PASS
interface = internalURL
region_name = RegionOne
  • 编辑 /etc/nova/nova.conf  文件,并在 [DEFAULT]  部分中配置通知:
[DEFAULT]
...
instance_usage_audit = True
instance_usage_audit_period = hour
notify_on_state_change = vm_and_task_state
[oslo_messaging_notifications]
...
driver = messagingv2

完成安装

systemctl enable openstack-ceilometer-compute.service

systemctl start openstack-ceilometer-compute.service
  • 重新启动计算服务:
systemctl restart openstack-nova-compute.service

Ceilometer--云高仪--控制节点

来源admin用于访问仅限管理员的 CLI 命令的凭据:

. admin_pass

要创建服务凭证,请完成以下步骤:

  • 创建ceilometer用户:
openstack user create --domain default --password CEILOMETER_PASS ceilometer
  • 添加admin的作用ceilometer用户。
openstack role add --project service --user ceilometer admin
注意!
此命令不提供输出
  • 创建ceilometer服务实体:
openstack service create --name ceilometer \
--description "Telemetry" metering

在 Keystone 中注册 Gnocchi 服务:

  • 创建gnocchi用户:
openstack user create --domain default --password GNOCCHI_PASS gnocchi

+-----------+----------------------------------+
| Field     | Value                            |
+-----------+----------------------------------+
| domain_id | e0353a670a9e496da891347c589539e9 |
| enabled   | True                             |
| id        | 8bacd064f6434ef2b6bbfbedb79b0318 |
| name      | gnocchi                          |
+-----------+----------------------------------+
  • 创建gnocchi服务实体:
openstack service create --name gnocchi \
--description "Metric Service" metric

+-------------+----------------------------------+
| Field       | Value                            |
+-------------+----------------------------------+
| description | Metric Service                   |
| enabled     | True                             |
| id          | 205978b411674e5a9990428f81d69384 |
| name        | gnocchi                          |
| type        | metric                           |
+-------------+----------------------------------+
  • 创建 Metric 服务 API 端点:
openstack endpoint create --region RegionOne \
metric public http://controller:8041

+--------------+----------------------------------+
| Field        | Value                            |
+--------------+----------------------------------+
| enabled      | True                             |
| id           | b808b67b848d443e9eaaa5e5d796970c |
| interface    | public                           |
| region       | RegionOne                        |
| region_id    | RegionOne                        |
| service_id   | 205978b411674e5a9990428f81d69384 |
| service_name | gnocchi                          |
| service_type | metric                           |
| url          | http://controller:8041           |
+--------------+----------------------------------+
openstack endpoint create --region RegionOne \
metric internal http://controller:8041

+--------------+----------------------------------+
| Field        | Value                            |
+--------------+----------------------------------+
| enabled      | True                             |
| id           | c7009b1c2ee54b71b771fa3d0ae4f948 |
| interface    | internal                         |
| region       | RegionOne                        |
| region_id    | RegionOne                        |
| service_id   | 205978b411674e5a9990428f81d69384 |
| service_name | gnocchi                          |
| service_type | metric                           |
| url          | http://controller:8041           |
+--------------+----------------------------------+
openstack endpoint create --region RegionOne \
metric admin http://controller:8041

+--------------+----------------------------------+
| Field        | Value                            |
+--------------+----------------------------------+
| enabled      | True                             |
| id           | b2c00566d0604551b5fe1540c699db3d |
| interface    | admin                            |
| region       | RegionOne                        |
| region_id    | RegionOne                        |
| service_id   | 205978b411674e5a9990428f81d69384 |
| service_name | gnocchi                          |
| service_type | metric                           |
| url          | http://controller:8041           |
+--------------+----------------------------------+
  • 安装软件包。或者,可以使用 pip 安装:
yum install openstack-gnocchi-api openstack-gnocchi-metricd \
python-gnocchiclient

 

注意!
根据您的环境大小,请考虑单独安装Gnocchi,因为它广泛使用cpu。

为 Gnocchi 的索引器创建数据库:

  • 使用数据库访问客户端以 root 用户身份连接到数据库服务器:
mysql
  • 创建数据库:
CREATE DATABASE gnocchi;
  • 授予对数据库的正确访问权限:
GRANT ALL PRIVILEGES ON gnocchi.* TO 'gnocchi'@'localhost' \
IDENTIFIED BY 'GNOCCHI_DBPASS';

GRANT ALL PRIVILEGES ON gnocchi.* TO 'gnocchi'@'%' \
IDENTIFIED BY 'GNOCCHI_DBPASS';

GNOCCHI_DBPASS替换为合适的密码。

  • 退出数据库访问客户端。

编辑 /etc/gnocchi/gnocchi.conf  文件并添加 Keystone 选项:

  • 部分中,将面疙瘩配置为使用 keystone:
[api]
auth_mode = keystone
  • [keystone_authtoken]  部分中,配置键点身份验证:
[keystone_authtoken]
...
auth_type = password
auth_url = http://controller:5000/v3
project_domain_name = Default
user_domain_name = Default
project_name = service
username = gnocchi
password = GNOCCHI_PASS
interface = internalURL
region_name = RegionOne

将GNOCCHI_PASS替换为您在身份服务中为面疙瘩用户选择的密码。

  • 在 [索引器] 部分中,配置数据库访问:
[indexer]
url = mysql+pymysql://gnocchi:GNOCCHI_DBPASS@controller/gnocchi

将GNOCCHI_DBPASS替换为您为 Gnocchi 的索引器数据库选择的密码。

  •  [存储] 部分中,配置存储指标数据的位置。在这种情况下,我们会将其存储到本地文件系统中。请参阅 Gnocchi 文档,了解更耐用、性能更高的驱动程序列表:
[storage]
coordination_url = redis://controller:6379
file_basepath = /var/lib/gnocchi
driver = file
  • 初始化数据库
gnocchi-upgrade

启动服务,并将它们配置为在系统引导时启动:

systemctl enable openstack-gnocchi-api.service \
openstack-gnocchi-metricd.service

systemctl start openstack-gnocchi-api.service \
openstack-gnocchi-metricd.service
  • 安装云高仪套件:
yum install openstack-ceilometer-collector openstack-ceilometer-notification \
openstack-ceilometer-central -y

编辑 /etc/ceilometer/ceilometer.conf  文件并完成以下操作:

  • 配置服务连接:
[DEFAULT]
...
meter_dispatchers=gnocchi
event_dispatchers=gnocchi

[dispatcher_gnocchi]
# filter out Gnocchi-related activity meters (Swift driver)
filter_service_activity = False
# default metric storage archival policy
archive_policy = low
注意!
可以通过修改 pipeline.yaml 以使用 gnocchi:// 发布者而不是 notifier:// 来放弃收集器服务。这样做将最大限度地减少资源需求。在这种情况下,不需要将调度程序添加到 conf 文件中。
  • [DEFAULT] 部分中,配置 RabbitMQ 消息队列访问:
[DEFAULT]
...
transport_url = rabbit://openstack:RABBIT_PASS@controller

将RABBIT_PASS替换为您在 RabbitMQ 中为 openstack 帐户选择的密码。

  • [service_credentials] 部分中,配置服务凭据:
[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 = CEILOMETER_PASS
interface = internalURL
region_name = RegionOne

CEILOMETER_PASS替换为您在标识服务中为云高仪用户选择的密码

  • 在意大利面疙瘩中创建云高仪资源。面疙瘩应该在这个阶段运行:
ceilometer-upgrade --skip-metering-database
  • 启动遥测服务,并将其配置为在系统引导时启动:
systemctl enable openstack-ceilometer-notification.service \
openstack-ceilometer-central.service \
openstack-ceilometer-collector.service

systemctl start openstack-ceilometer-notification.service \
openstack-ceilometer-central.service \
openstack-ceilometer-collector.service

将 Cinder 配置为使用遥测---控制节点

编辑 /etc/cinder/cinder.conf  文件并完成以下操作:

[oslo_messaging_notifications]  部分中,配置通知:

[oslo_messaging_notifications]
...
driver = messagingv2

启用与块存储相关的定期使用情况统计信息。若要使用它,必须按以下格式运行此命令:

cinder-volume-usage-audit  --start_time='YYYY-MM-DD HH:MM:SS' \
--end_time='YYYY-MM-DD HH:MM:SS' --send_actions

此脚本输出在给定时间段内创建、删除或存在的卷或快照,以及有关这些卷或快照的一些信息。

通过 cron 使用此脚本,您可以定期收到通知,例如,每 5 分钟一次:

*/5 * * * * /path/to/cinder-volume-usage-audit --send_actions

重新启动控制器节点上的块存储服务:

systemctl restart openstack-cinder-api.service openstack-cinder-scheduler.service

将 Cinder 配置为使用遥测---存储节点

编辑 /etc/cinder/cinder.conf  文件并完成以下操作:

[oslo_messaging_notifications]  部分中,配置通知:

[oslo_messaging_notifications]
...
driver = messagingv2

启用与块存储相关的定期使用情况统计信息。若要使用它,必须按以下格式运行此命令:

cinder-volume-usage-audit  --start_time='YYYY-MM-DD HH:MM:SS' \
--end_time='YYYY-MM-DD HH:MM:SS' --send_actions

此脚本输出在给定时间段内创建、删除或存在的卷或快照,以及有关这些卷或快照的一些信息。

通过 cron 使用此脚本,您可以定期收到通知,例如,每 5 分钟一次:

*/5 * * * * /path/to/cinder-volume-usage-audit --send_actions

在存储节点上重新启动块存储服务:

systemctl restart openstack-cinder-volume.service

将影像服务配置为使用遥测---控制节点

编辑/etc/glance/glance-api.conf 和 /etc/glance/glance-registry.conf 文件并完成以下操作:

  • [DEFAULT] [oslo_messaging_notifications] 部分中,配置通知和 RabbitMQ 消息代理访问:
[DEFAULT]
...
transport_url = rabbit://openstack:RABBIT_PASS@controller

[oslo_messaging_notifications]
...
driver = messagingv2

将RABBIT_PASS替换为您在 RabbitMQ 中为 openstack 帐户选择的密码。

  • 重新启动映像服务:
systemctl restart openstack-glance-api.service openstack-glance-registry.service

将业务流程服务配置为使用遥测---控制节点

编辑 /etc/heat/heat.conf  并完成以下操作:

  • [oslo_messaging_notifications]部分中,启用通知:
[oslo_messaging_notifications]
...
driver = messagingv2
  • 重新启动业务流程服务:
systemctl restart openstack-heat-api.service \
openstack-heat-api-cfn.service openstack-heat-engine.service

将网络服务配置为使用遥测---控制节点

编辑/etc/neutron/neutron.conf并完成以下操作:

  • [oslo_messaging_notifications]  部分中,启用通知:
[oslo_messaging_notifications]
...
driver = messagingv2
  • 重新启动网络服务:
systemctl restart neutron-server.service

遥测使用轮询和通知的组合来收集对象存储计量---控制节点

  • 创建经销商管理员角色:
openstack role create ResellerAdmin
  • 经销商管理员角色添加到云高仪用户:
openstack role add --project service --user ceilometer ResellerAdmin
注意!
此命令不提供输出。
  • 安装软件包:
yum install python-ceilometermiddleware
  • 将对象存储配置为使用遥测:

编辑 /etc/swift/proxy-server.conf  文件并完成以下操作:

  • [filter:keystoneauth]  部分中,添加 ResellerAdmin 角色:
[filter:keystoneauth]
...
operator_roles = admin, user, ResellerAdmin
  • [管道:主]部分中,添加云高仪
[pipeline:main]
pipeline = catch_errors gatekeeper healthcheck proxy-logging cache container_sync bulk ratelimit authtoken keystoneauth container-quotas account-quotas slo dlo versioned_writes proxy-logging ceilometer proxy-server
  • 在 [过滤器:云高仪] 部分中,配置通知:
[filter:ceilometer]
paste.filter_factory = ceilometermiddleware.swift:filter_factory
...
control_exchange = swift
url = rabbit://openstack:RABBIT_PASS@controller:5672/
driver = messagingv2
topic = notifications
log_level = WARN

将RABBIT_PASS替换为您在 RabbitMQ 中为 openstack 帐户选择的密码。

  • 重新启动对象存储代理服务:
systemctl restart openstack-swift-proxy.service

验证操作---控制节点

注意!
以下内容使用面疙瘩来验证数据。或者,可以通过添加 meter_dispatchers=file 或 file:// 发布者将数据临时发布到文件后端。
  • 列出可用资源及其指标:
gnocchi resource list  --type image
gnocchi resource a6b387e1-4276-43db-b17a-e10f649d85a3
  • 从映像服务下载 CirrOS 映像:
IMAGE_ID=$(glance image-list | grep 'cirros' | awk '{ print $2 }')
glance image-download $IMAGE_ID > /tmp/cirros.img
  • 再次列出可用仪表以验证图像下载的检测:
gnocchi measures show 839afa02-1668-4922-a33e-6b6ea7780715

删除以前下载的图像文件 /tmp/cirros.img 

 

rm /tmp/cirros.img

版权声明:
作者:小李
链接:https://xianshengli.cc/opensatck-%e8%ae%a1%e8%b4%b9%e6%9c%8d%e5%8a%a1/
来源:先生不吃香菜
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
打赏
海报
Opensatck 数据收集服务
遥测数据收集服务概述 遥测数据收集服务提供以下功能: 高效轮询与 OpenStack 服务相关的计量数据。 通过监视从服务发送的通知来收集事件和计量数据。 将收集……
文章目录
关闭
目 录