Ubuntu 安装与配置

本节描述了如何在控制器节点上安装和配置遥测告警服务,代号为 aodh。

本节假定您已经拥有一个可用的 OpenStack 环境,并且至少安装了以下组件:计算、镜像服务、身份认证。

先决条件

在安装和配置遥测服务之前,您必须创建数据库、服务凭证和 API 端点。

  1. 要创建数据库,请完成以下步骤

    • 使用数据库访问客户端以 root 用户身份连接到数据库服务器

      $ mysql -u root -p
      
    • 创建 aodh 数据库

      CREATE DATABASE aodh;
      
    • 授予 aodh 数据库适当的访问权限

      GRANT ALL PRIVILEGES ON aodh.* TO 'aodh'@'localhost' \
        IDENTIFIED BY 'AODH_DBPASS';
      GRANT ALL PRIVILEGES ON aodh.* TO 'aodh'@'%' \
        IDENTIFIED BY 'AODH_DBPASS';
      

      AODH_DBPASS 替换为合适的密码。

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

  2. 激活 admin 凭证以访问仅管理员可用的 CLI 命令

    $ . admin-openrc
    
  3. 要创建服务凭证,请完成以下步骤

    • 创建 aodh 用户

      $ openstack user create --domain default \
        --password-prompt aodh
      User Password:
      Repeat User Password:
      +---------------------+----------------------------------+
      | Field               | Value                            |
      +---------------------+----------------------------------+
      | domain_id           | default                          |
      | enabled             | True                             |
      | id                  | b7657c9ea07a4556aef5d34cf70713a3 |
      | name                | aodh                             |
      | options             | {}                               |
      | password_expires_at | None                             |
      +---------------------+----------------------------------+
      
    • admin 角色添加到 aodh 用户

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

      注意

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

    • 创建 aodh 服务实体

      $ openstack service create --name aodh \
        --description "Telemetry" alarming
      +-------------+----------------------------------+
      | Field       | Value                            |
      +-------------+----------------------------------+
      | description | Telemetry                        |
      | enabled     | True                             |
      | id          | 3405453b14da441ebb258edfeba96d83 |
      | name        | aodh                             |
      | type        | alarming                         |
      +-------------+----------------------------------+
      
  4. 创建告警服务 API 端点

    $ openstack endpoint create --region RegionOne \
      alarming public http://controller:8042
      +--------------+----------------------------------+
      | Field        | Value                            |
      +--------------+----------------------------------+
      | enabled      | True                             |
      | id           | 340be3625e9b4239a6415d034e98aace |
      | interface    | public                           |
      | region       | RegionOne                        |
      | region_id    | RegionOne                        |
      | service_id   | 8c2c7f1b9b5049ea9e63757b5533e6d2 |
      | service_name | aodh                             |
      | service_type | alarming                         |
      | url          | http://controller:8042           |
      +--------------+----------------------------------+
    
    $ openstack endpoint create --region RegionOne \
      alarming internal http://controller:8042
      +--------------+----------------------------------+
      | Field        | Value                            |
      +--------------+----------------------------------+
      | enabled      | True                             |
      | id           | 340be3625e9b4239a6415d034e98aace |
      | interface    | internal                         |
      | region       | RegionOne                        |
      | region_id    | RegionOne                        |
      | service_id   | 8c2c7f1b9b5049ea9e63757b5533e6d2 |
      | service_name | aodh                             |
      | service_type | alarming                         |
      | url          | http://controller:8042           |
      +--------------+----------------------------------+
    
    $ openstack endpoint create --region RegionOne \
      alarming admin http://controller:8042
      +--------------+----------------------------------+
      | Field        | Value                            |
      +--------------+----------------------------------+
      | enabled      | True                             |
      | id           | 340be3625e9b4239a6415d034e98aace |
      | interface    | admin                            |
      | region       | RegionOne                        |
      | region_id    | RegionOne                        |
      | service_id   | 8c2c7f1b9b5049ea9e63757b5533e6d2 |
      | service_name | aodh                             |
      | service_type | alarming                         |
      | url          | http://controller:8042           |
      +--------------+----------------------------------+
    

安装和配置组件

注意

默认配置文件因发行版而异。您可能需要添加这些部分和选项,而不是修改现有的部分和选项。此外,配置片段中的省略号 (…) 表示您应该保留的潜在默认配置选项。

  1. 安装软件包

    # apt-get install aodh-api aodh-evaluator aodh-notifier \
      aodh-listener aodh-expirer python-aodhclient
    
  1. 编辑 /etc/aodh/aodh.conf 文件并完成以下操作

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

      [database]
      ...
      connection = mysql+pymysql://aodh:AODH_DBPASS@controller/aodh
      

      AODH_DBPASS 替换为您为遥测告警模块数据库选择的密码。您必须根据 RFC2396 规范转义连接字符串中的特殊字符,例如 :/+@

    • [DEFAULT] 部分中,配置 RabbitMQ 消息队列访问

      [DEFAULT]
      ...
      transport_url = rabbit://openstack:RABBIT_PASS@controller
      

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

    • [DEFAULT][keystone_authtoken] 部分中,配置身份服务访问

      [DEFAULT]
      ...
      auth_strategy = keystone
      
      [keystone_authtoken]
      ...
      www_authenticate_uri = http://controller:5000
      auth_url = http://controller:5000
      memcached_servers = controller:11211
      auth_type = password
      project_domain_id = default
      user_domain_id = default
      project_name = service
      username = aodh
      password = AODH_PASS
      

      AODH_PASS 替换为您为身份认证服务中的 aodh 用户选择的密码。

    • [service_credentials] 部分,配置服务凭证

      [service_credentials]
      ...
      auth_type = password
      auth_url = http://controller:5000/v3
      project_domain_id = default
      user_domain_id = default
      project_name = service
      username = aodh
      password = AODH_PASS
      interface = internalURL
      region_name = RegionOne
      

      AODH_PASS 替换为您为身份认证服务中的 aodh 用户选择的密码。

  2. 为了初始化数据库,请运行 aodh-dbsync 脚本。

完成安装

  1. 重启告警服务

    # service apache2 restart
    # service aodh-evaluator restart
    # service aodh-notifier restart
    # service aodh-listener restart