为 Red Hat Enterprise Linux 和 CentOS 启用对象存储计量

Telemetry 使用轮询和通知的组合来收集对象存储计量。

注意

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

先决条件

Telemetry 服务需要使用 ResellerAdmin 角色访问对象存储服务。在控制器节点上执行以下步骤。

  1. 获取 admin 凭证以访问仅管理员可用的 CLI 命令。

    $ . admin-openrc
    
  2. 创建 ResellerAdmin 角色

    $ openstack role create ResellerAdmin
    +-----------+----------------------------------+
    | Field     | Value                            |
    +-----------+----------------------------------+
    | domain_id | None                             |
    | id        | 462fa46c13fd4798a95a3bfbe27b5e54 |
    | name      | ResellerAdmin                    |
    +-----------+----------------------------------+
    
  3. ResellerAdmin 角色添加到 ceilometer 用户

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

    注意

    此命令不会产生任何输出。

安装组件

  • 安装软件包

    # dnf install python3-ceilometermiddleware
    

配置对象存储以使用 Telemetry

在控制器节点和运行对象存储代理服务的任何其他节点上执行以下步骤。

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

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

      [filter:keystoneauth]
      ...
      operator_roles = admin, user, ResellerAdmin
      
    • [pipeline:main] 部分,添加 ceilometer

      [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] 部分,配置通知

      [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