이 섹션에서는 ceilometer 코드 이름에 해당하는 Telemetry 서비스를 설치와 구성하는 방법을 설명합니다. Telemetry 서비스는 대부분의 OpenStack 서비스로부터 측정된 데이터를 수집하며, 옵션으로 알람을 작동시킵니다.
Telemetry 서비스를 설치 및 구성하기 전에, 데이터베이스, 서비스 credential, 그리고 API 엔드포인트를 생성해야 합니다. 그러나 다른 서비스와 같이 Telemetry 서비스는 NoSQL 데이터베이스를 사용합니다. NoSQL 데이터베이스 를 참고하여 계속 진행하기 전에 MongoDB를 설치 및 구성합니다.
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 를 적절한 암호로 변경합니다.
admin credential을 소스로 사용하여 관리자 전용 CLI 명령어에 대한 액세스를 갖습니다:
$ . admin-openrc
서비스 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 |
+-------------+----------------------------------+
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 |
+--------------+----------------------------------+
패키지를 설치하십시오:
# yum install openstack-ceilometer-api \
openstack-ceilometer-collector openstack-ceilometer-notification \
openstack-ceilometer-central python-ceilometerclient
/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_PASS 를 RabbitMQ 에서 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
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.