설치와 설정

설치와 설정

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

선행조건

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

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

    # mongo --host controller --eval '
      db = db.getSiblingDB("ceilometer");
      db.addUser({user: "ceilometer",
      pwd: "CEILOMETER_DBPASS",
      roles: [ "readWrite", "dbAdmin" ]})'
    
    MongoDB shell version: 2.4.x
    connecting to: controller:27017/test
    {
     "user" : "ceilometer",
     "pwd" : "72f25aeee7ad4be52437d7cd3fc60f6f",
     "roles" : [
      "readWrite",
      "dbAdmin"
     ],
     "_id" : ObjectId("5489c22270d7fad1ba631dc3")
    }
    

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

  1. admin credential에 대한 접근 권한을 얻기위해 관리자용 CLI 명령어 source 입력합니다:

    $ source admin-openrc.sh
    
  2. 서비스 credential을 생성하기 위해 다음 작업을 완료합니다:

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

      $ openstack user create --domain default --password-prompt ceilometer
      User Password:
      Repeat User Password:
      +-----------+----------------------------------+
      | Field     | Value                            |
      +-----------+----------------------------------+
      | domain_id | default                          |
      | 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                         |
      +-------------+----------------------------------+
      
  1. 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. 패키지를 설치하십시오:

    # zypper install openstack-ceilometer-api \
      openstack-ceilometer-collector \
      openstack-ceilometer-agent-notification \
      openstack-ceilometer-agent-central python-ceilometerclient \
      openstack-ceilometer-alarm-evaluator \
      openstack-ceilometer-alarm-notifier
    
  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
      auth_plugin = password
      project_domain_id = default
      user_domain_id = default
      project_name = service
      username = ceilometer
      password = CEILOMETER_PASS
      

      CEILOMETER_PASS 를 Identity 서비스에서 ceilometer 사용자 암호로 변경합니다.

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

      [service_credentials]
      ...
      os_auth_url = http://controller:5000/v2.0
      os_username = ceilometer
      os_tenant_name = service
      os_password = CEILOMETER_PASS
      os_endpoint_type = internalURL
      os_region_name = RegionOne
      

      CEILOMETER_PASS 를 Identity 서비스에서 ceilometer 사용자 암호로 변경합니다.

    • [collector] 섹션에서 배치를 구성합니다:

      [collector]
      ...
      dispatcher = database
      
    • (옵션) 트러블 슈팅을 지원하기 위해, [DEFAULT] 섹션에서 verbose 로깅을 활성화합니다:

      [DEFAULT]
      ...
      verbose = True
      

설치 마무리

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

    # systemctl enable openstack-ceilometer-api.service \
      openstack-ceilometer-agent-notification.service \
      openstack-ceilometer-agent-central.service \
      openstack-ceilometer-collector.service \
      openstack-ceilometer-alarm-evaluator.service \
      openstack-ceilometer-alarm-notifier.service
    # systemctl start openstack-ceilometer-api.service \
      openstack-ceilometer-agent-notification.service \
      openstack-ceilometer-agent-central.service \
      openstack-ceilometer-collector.service \
      openstack-ceilometer-alarm-evaluator.service \
      openstack-ceilometer-alarm-notifier.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.

Search