설치와 설정

설치와 설정

이 섹션에서는 ceilometer 코드 이름에 해당하는 Telemetry 서비스를 설치와 구성하는 방법을 설명합니다. Telemetry 서비스는 대부분의 OpenStack 서비스로부터 측정된 데이터를 수집하며, 옵션으로 알람을 작동시킵니다.

선행조건

Telemetry 서비스를 설치 및 구성하기 전에, 데이터베이스, 서비스 credential, 그리고 API 엔드포인트를 생성해야 합니다. 그러나 다른 서비스와 같이 Telemetry 서비스는 NoSQL 데이터베이스를 사용합니다. NoSQL 데이터베이스 를 참고하여 계속 진행하기 전에 MongoDB를 설치 및 구성합니다.

  1. ceilometer 데이터베이스를 생성합니다:

    # mongo --host controller --eval '
      db = db.getSiblingDB("ceilometer");
      db.createUser({user: "ceilometer",
      pwd: "CEILOMETER_DBPASS",
      roles: [ "readWrite", "dbAdmin" ]})'
    
    MongoDB shell version: 2.6.x
    connecting to: controller:27017/test
    Successfully added user: { "user" : "ceilometer", "roles" : [ "readWrite", "dbAdmin" ] }
    

    CEILOMETER_DBPASS 를 적절한 암호로 변경합니다.

  1. admin credential을 소스로 사용하여 관리자 전용 CLI 명령어에 대한 액세스를 갖습니다:

    $ . admin-openrc
    
  2. 서비스 credential을 생성하기 위해, 다음 스텝들을 완료합니다:

    • ceilometer 사용자를 생성합니다:

      $ openstack user create --domain default --password-prompt ceilometer
      User Password:
      Repeat User Password:
      +-----------+----------------------------------+
      | Field     | Value                            |
      +-----------+----------------------------------+
      | domain_id | e0353a670a9e496da891347c589539e9 |
      | enabled   | True                             |
      | id        | c859c96f57bd4989a8ea1a0b1d8ff7cd |
      | name      | ceilometer                       |
      +-----------+----------------------------------+
      
    • admin 역할을 ceilometer 사용자에 추가합니다.

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

      주석

      이 명령어는 출력이 없습니다.

    • ceilometer 서비스 개체를 생성합니다:

      $ openstack service create --name ceilometer \
        --description "Telemetry" metering
      +-------------+----------------------------------+
      | Field       | Value                            |
      +-------------+----------------------------------+
      | description | Telemetry                        |
      | enabled     | True                             |
      | id          | 5fb7fd1bb2954fddb378d4031c28c0e4 |
      | name        | ceilometer                       |
      | type        | metering                         |
      +-------------+----------------------------------+
      
  3. Telemetry 서비스 API endpoint 생성:

    $ openstack endpoint create --region RegionOne \
      metering public http://controller:8777
    +--------------+----------------------------------+
    | Field        | Value                            |
    +--------------+----------------------------------+
    | enabled      | True                             |
    | id           | b808b67b848d443e9eaaa5e5d796970c |
    | interface    | public                           |
    | region       | RegionOne                        |
    | region_id    | RegionOne                        |
    | service_id   | 5fb7fd1bb2954fddb378d4031c28c0e4 |
    | service_name | ceilometer                       |
    | service_type | metering                         |
    | url          | http://controller:8777           |
    +--------------+----------------------------------+
    
    $ openstack endpoint create --region RegionOne \
      metering internal http://controller:8777
    +--------------+----------------------------------+
    | Field        | Value                            |
    +--------------+----------------------------------+
    | enabled      | True                             |
    | id           | c7009b1c2ee54b71b771fa3d0ae4f948 |
    | interface    | internal                         |
    | region       | RegionOne                        |
    | region_id    | RegionOne                        |
    | service_id   | 5fb7fd1bb2954fddb378d4031c28c0e4 |
    | service_name | ceilometer                       |
    | service_type | metering                         |
    | url          | http://controller:8777           |
    +--------------+----------------------------------+
    
    $ openstack endpoint create --region RegionOne \
      metering admin http://controller:8777
    +--------------+----------------------------------+
    | Field        | Value                            |
    +--------------+----------------------------------+
    | enabled      | True                             |
    | id           | b2c00566d0604551b5fe1540c699db3d |
    | interface    | admin                            |
    | region       | RegionOne                        |
    | region_id    | RegionOne                        |
    | service_id   | 5fb7fd1bb2954fddb378d4031c28c0e4 |
    | service_name | ceilometer                       |
    | service_type | metering                         |
    | url          | http://controller:8777           |
    +--------------+----------------------------------+
    

구성요소 설치 및 구성

  1. 패키지를 설치하십시오:

    # yum install openstack-ceilometer-api \
      openstack-ceilometer-collector openstack-ceilometer-notification \
      openstack-ceilometer-central python-ceilometerclient
    
  1. /etc/ceilometer/ceilometer.conf 파일을 편집하여 다음 작업을 완료합니다:

    • [database] 섹션에서, 데이터베이스 액세스를 구성합니다:

      [database]
      ...
      connection = mongodb://ceilometer:CEILOMETER_DBPASS@controller:27017/ceilometer
      

      CEILOMETER_DBPASS 를 Telemetry 서비스 데이터베이스를 위해 선택한 암호로 변경합니다. RFC2396 에 따라 연결 문자열 내에 ‘:’, ‘/’, ‘+’, 그리고 ‘@’ 와 같은 특수 문자에 대해 escape 문자를 덧붙여야 합니다.

    • [DEFAULT][oslo_messaging_rabbit] 섹션에서, RabbitMQ 메시지 큐 액세스를 구성합니다:

      [DEFAULT]
      ...
      rpc_backend = rabbit
      
      [oslo_messaging_rabbit]
      ...
      rabbit_host = controller
      rabbit_userid = openstack
      rabbit_password = RABBIT_PASS
      

      RABBIT_PASSRabbitMQ 에서 openstack 계정에 대해 선택한 암호로 변경합니다.

    • [DEFAULT][keystone_authtoken] 섹션에서는, Identity 서비스 액세스를 구성합니다:

      [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 를 Identity 서비스에서 ceilometer 사용자에 대해 선택한 암호로 변경합니다.

    • [service_credentials] 섹션에서는, 서비스 credential을 구성합니다:

      [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 를 Identity 서비스에서 ceilometer 사용자에 대해 선택한 암호로 변경합니다.

설치 마무리

  • Telemetry 서비스를 시작하고 시스템 부팅시 시작하도록 설정합니다:

    # systemctl enable openstack-ceilometer-api.service \
      openstack-ceilometer-notification.service \
      openstack-ceilometer-central.service \
      openstack-ceilometer-collector.service
    # systemctl start openstack-ceilometer-api.service \
      openstack-ceilometer-notification.service \
      openstack-ceilometer-central.service \
      openstack-ceilometer-collector.service
    
Creative Commons Attribution 3.0 License

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.