Telemetry service 서비스는 일종의 모니터링 하는 서비스이며 코드명은 ceilometer이다.
설치는 우선 controller 노드부터한다.
다른 서비스와 마찬가지로 DB부터 설치하는데 다른 서비스와는 다르게 NoSQL인 mongoDB를 사용한다.
ceilometer database를 만든다. CEILOMETER_DBPASS는 사용할 패스워드로 적절하게 변경한다.
db = db.getSiblingDB("ceilometer");
db.createUser({user: "ceilometer",
pwd: "CEILOMETER_DBPASS",
roles: [ "readWrite", "dbAdmin" ]})'
MongoDB shell version: 2.6.11
connecting to: controller:27017/test
Successfully added user: { "user" : "ceilometer", "roles" : [ "readWrite", "dbAdmin" ] }
[root@controller ~]#
ceilometer 유저를 만들고 admin 롤을 부여한다.
User Password:
Repeat User Password:
+-----------+----------------------------------+
| Field | Value |
+-----------+----------------------------------+
| domain_id | default |
| enabled | True |
| id | 594e06a2424b46fa848273811be23de2 |
| name | ceilometer |
+-----------+----------------------------------+
[root@controller ~]# openstack role add --project service --user ceilometer admin
[root@controller ~]#
ceilometer 서비스를 만든다.
[root@controller ~]# openstack service create --name ceilometer \
--description "Telemetry" metering
+-------------+----------------------------------+
| Field | Value |
+-------------+----------------------------------+
| description | Telemetry |
| enabled | True |
| id | 2ff3fef644e0427187b6d0799490c193 |
| name | ceilometer |
| type | metering |
+-------------+----------------------------------+
ceilometer 서비스 api endpoint를 만든다.
[root@controller ~]# openstack endpoint create --region RegionOne metering public http://controller:8777
+--------------+----------------------------------+
| Field | Value |
+--------------+----------------------------------+
| enabled | True |
| id | 9ae278fb7ff74faf989cc8388cb0b827 |
| interface | public |
| region | RegionOne |
| region_id | RegionOne |
| service_id | 2ff3fef644e0427187b6d0799490c193 |
| service_name | ceilometer |
| service_type | metering |
| url | http://controller:8777 |
+--------------+----------------------------------+
[root@controller ~]# openstack endpoint create --region RegionOne metering internal http://controller:8777
+--------------+----------------------------------+
| Field | Value |
+--------------+----------------------------------+
| enabled | True |
| id | 2ed1d6a7dfa44580bb4738578cb12862 |
| interface | internal |
| region | RegionOne |
| region_id | RegionOne |
| service_id | 2ff3fef644e0427187b6d0799490c193 |
| service_name | ceilometer |
| service_type | metering |
| url | http://controller:8777 |
+--------------+----------------------------------+
[root@controller ~]# openstack endpoint create --region RegionOne metering admin http://controller:8777
+--------------+----------------------------------+
| Field | Value |
+--------------+----------------------------------+
| enabled | True |
| id | 22b448eeb52241dab95199b97e274e58 |
| interface | admin |
| region | RegionOne |
| region_id | RegionOne |
| service_id | 2ff3fef644e0427187b6d0799490c193 |
| service_name | ceilometer |
| service_type | metering |
| url | http://controller:8777 |
+--------------+----------------------------------+
패키지를 설치한다.
openstack-ceilometer-collector openstack-ceilometer-notification \
openstack-ceilometer-central openstack-ceilometer-alarm \
python-ceilometerclient
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: centos.mirror.cdnetworks.com
* extras: centos.mirror.cdnetworks.com
* updates: www.ftp.ne.jp
Package python-ceilometerclient-1.5.0-1.el7.noarch already installed and latest version
Resolving Dependencies
--> Running transaction check
---> Package openstack-ceilometer-alarm.noarch 1:5.0.2-1.el7 will be installed
...(중략)..
unbound-libs.x86_64 0:1.4.20-26.el7
yajl.x86_64 0:2.0.4-4.el7
Complete!
[root@controller ~]#
/etc/ceilometer/ceilometer.conf 파일을 아래와 같이 수정한다.
[database] 섹션에서 DB 접근설정을 한다. CEILOMETER_DBPASS는 설정한 패스워드로 변경한다.
[DEFAULT] 와 [oslo_messaging_rabbit] 섹션에서 RabbitMQ 설정을 한다. RABBIT_PASS는 설정한 패스워드로 변경한다.
[DEFAULT] 와 [keystone_authtoken] 섹션에서 인증서비스 접근 설정을 한다. CEILOMETER_PASS는 설정한 패스워드로 변경한다.
[service_credentials] 섹션에서 서비스 작업증명 설정을 한다. CEILOMETER_PASS는 설정한 패스워드로 변경한다.
(옵션)[DEFAULT] 섹션에서 트러블슈팅시 도움이 될수 있게 verbose를 활성화한다.
[DEFAULT]
...
rpc_backend = rabbit
...
auth_strategy = keystone
...
[database]
...
connection = mongodb://ceilometer:CEILOMETER_DBPASS@controller:27017/ceilometer
...
[oslo_messaging_rabbit]
...
rabbit_host = controller
rabbit_userid = openstack
rabbit_password = RABBIT_PASS
...
[DEFAULT]
[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
...
[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
서비스를 등록 및 시작한다.
openstack-ceilometer-notification.service \
openstack-ceilometer-central.service \
openstack-ceilometer-collector.service \
openstack-ceilometer-alarm-evaluator.service \
openstack-ceilometer-alarm-notifier.service
Created symlink from /etc/systemd/system/multi-user.target.wants/openstack-ceilometer-api.service to /usr/lib/systemd/system/openstack-ceilometer-api.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/openstack-ceilometer-notification.service to /usr/lib/systemd/system/openstack-ceilometer-notification.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/openstack-ceilometer-central.service to /usr/lib/systemd/system/openstack-ceilometer-central.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/openstack-ceilometer-collector.service to /usr/lib/systemd/system/openstack-ceilometer-collector.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/openstack-ceilometer-alarm-evaluator.service to /usr/lib/systemd/system/openstack-ceilometer-alarm-evaluator.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/openstack-ceilometer-alarm-notifier.service to /usr/lib/systemd/system/openstack-ceilometer-alarm-notifier.service.
[root@controller ~]# systemctl start openstack-ceilometer-api.service \
openstack-ceilometer-notification.service \
openstack-ceilometer-central.service \
openstack-ceilometer-collector.service \
openstack-ceilometer-alarm-evaluator.service \
openstack-ceilometer-alarm-notifier.service
이미지 서비스와의 연동을 위해 glance설정파일도 수정한다.
/etc/glance/glance-api.conf 와 /etc/glance/glance-registry.conf 파일을 아래와 같이 수정한다.
[DEFAULT] 와 [oslo_messaging_rabbit] 섹션에서 notifications and RabbitMQ 설정을 한다. RABBIT_PASS는 설정한 password로 변경한다.
[DEFAULT]
...
notification_driver = messagingv2
rpc_backend = rabbit
[oslo_messaging_rabbit]
...
rabbit_host = controller
rabbit_userid = openstack
rabbit_password = RABBIT_PASS
2개의 파일을 모두 위와 같은 설정을 한후 이미지 서비스를 재시작한다.
다음으로 컴퓨트 서비스와 연동을 위해
각각의 컴퓨트 노트로 이동한다.
우선 패키지부터 설치한다.
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: centos.mirror.cdnetworks.com
* extras: centos.mirror.cdnetworks.com
* updates: centos.mirror.cdnetworks.com
Package python2-pecan-1.0.2-2.el7.noarch already installed and latest version
Resolving Dependencies
--> Running transaction check
---> Package openstack-ceilometer-compute.noarch 1:5.0.2-1.el7 will be installed
...(중략)...
python-tooz.noarch 0:1.24.0-1.el7
python-werkzeug.noarch 0:0.9.1-2.el7
python2-jsonpath-rw-ext.noarch 0:0.1.7-1.1.el7
Complete!
[root@compute1 ~]#
/etc/ceilometer/ceilometer.conf 파일을 아래와 같이 수정한다.
[DEFAULT] 와 [oslo_messaging_rabbit] 섹션에 RabbitMQ 접근 설정을 한다. RABBIT_PASS는 설정된 패스워드로 변경한다.
[DEFAULT] 와 [keystone_authtoken] 섹션에 인증서비스 접근 설정을 한다. CEILOMETER_PASS는 설정된 패스워드로 변경한다.
[service_credentials] 섹션에 서비스 자격정보를 설정한다. CEILOMETER_PASS는 설정된 패스워드로 변경한다.
(옵션)[DEFAULT] 섹션에서 트러블슈팅시 도움이 될수 있게 verbose를 활성화한다.
[DEFAULT]
...
rpc_backend = rabbit
...
auth_strategy = keystone
...
verbose = True
...
[oslo_messaging_rabbit]
...
rabbit_host = controller
rabbit_userid = openstack
rabbit_password = RABBIT_PASS
...
[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
...
[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
/etc/nova/nova.conf 파일의 [DEFAULT]섹션을 아래와 같이 수정한다.
[DEFAULT]
...
instance_usage_audit = True
instance_usage_audit_period = hour
notify_on_state_change = vm_and_task_state
notification_driver = messagingv2
ceilometer 서비스 등록 및 시작, compute 서비스 역시 변경사항이 있으니 재시작 해준다.
Created symlink from /etc/systemd/system/multi-user.target.wants/openstack-ceilometer-compute.service to /usr/lib/systemd/system/openstack-ceilometer-compute.service.
[root@compute1 ~]# systemctl start openstack-ceilometer-compute.service
[root@compute1 ~]# systemctl restart openstack-nova-compute.service
다음으로 block storage 서비스와 연동을 위해
각각의 block1 노드로 이동한다.
우선 설정 파일을 수정한다.
/etc/cinder/cinder.conf 파일의 [DEFAULT]섹션에 아래와 같이 notification를 설정한다.
[root@block1 ~]# vi /etc/cinder/cinder.conf
[DEFAULT]
...
notification_driver = messagingv2
서비스 재시작을 위해 컨트롤러 및 block1노드의 서비스들을 각각 재시작 해준다.
다음으로 block storage 서비스와 연동을 설정한다.
Telemetry service 서비스는 Object Storage service 에 접근하는데 ResellerAdmin 롤을 사용한다.
우선 컨트롤로 노드에서 ResellerAdmin 롤을 만들고 ResellerAdmin 롤에 ceilometer 유저를 추가한다.
+-------+----------------------------------+
| Field | Value |
+-------+----------------------------------+
| id | d77ca941e0324c6c98d69724e8bffbaf |
| name | ResellerAdmin |
+-------+----------------------------------+
[root@controller ~]# openstack role add --project service --user ceilometer ResellerAdmin
다음으로 설치는 컨트롤러 노드 또는 오브젝트 proxy서비스가 실행되는 서버에 진행한다.
/etc/swift/proxy-server.conf파일을 아래와 같이 수정한다.
[filter:keystoneauth] 섹션에 ResellerAdmin 롤을 추가한다.
[pipeline:main] 섹션에 ceilometer를 추가한다.
[filter:ceilometer] 섹션에 notifications 설정을 한다. RABBIT_PASS는 설정한 패스워드로 변경한다.
[filter:keystoneauth]
...
operator_roles = admin, user, ResellerAdmin
...
[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]
paste.filter_factory = ceilometermiddleware.swift:filter_factory
...
control_exchange = swift
url = rabbit://openstack:RABBIT_PASS@controller:5672/
driver = messagingv2
topic = notifications
log_level = WARN
스위프트 프록시 서비스를 재시작한다.
설치가 잘되었는지 확인한다.
+-------------+-------+-------+--------------------------------------+---------+----------------------------------+
| Name | Type | Unit | Resource ID | User ID | Project ID |
+-------------+-------+-------+--------------------------------------+---------+----------------------------------+
| image | gauge | image | 49338c63-033c-40a3-abdd-d6410799de24 | None | 94f9c25aaa4246b0915afacca2d65c22 |
| image.size | gauge | B | 49338c63-033c-40a3-abdd-d6410799de24 | None | 94f9c25aaa4246b0915afacca2d65c22 |
+-------------+-------+-----------+----------------------------------+---------+----------------------------------+
Image service에서 CirrOS를 다운 받고 meter list를 다시 확인하여 다운되는 것을 모니터링이 잘되는지 확인한다.
[root@controller ~]# glance image-download $IMAGE_ID > /tmp/cirros.img
[root@controller ~]# ceilometer meter-list
+----------------+-------+-------+--------------------------------------+----------------------------------+----------------------------------+
| Name | Type | Unit | Resource ID | User ID | Project ID |
+----------------+-------+-------+--------------------------------------+----------------------------------+----------------------------------+
| image | gauge | image | 49338c63-033c-40a3-abdd-d6410799de24 | 2238ec4daed3436b8cc97491518bd6cf | 94f9c25aaa4246b0915afacca2d65c22 |
| image.download | delta | B | 49338c63-033c-40a3-abdd-d6410799de24 | 2238ec4daed3436b8cc97491518bd6cf | 94f9c25aaa4246b0915afacca2d65c22 |
| image.serve | delta | B | 49338c63-033c-40a3-abdd-d6410799de24 | 2238ec4daed3436b8cc97491518bd6cf | 94f9c25aaa4246b0915afacca2d65c22 |
| image.size | gauge | B | 49338c63-033c-40a3-abdd-d6410799de24 | 2238ec4daed3436b8cc97491518bd6cf | 94f9c25aaa4246b0915afacca2d65c22 |
+----------------+-------+-------+--------------------------------------+----------------------------------+----------------------------------+
image.download 미터에서 사용 통계를 검색한다.
+--------+----------------------------+----------------------------+------------+------------+------------+------------+-------+----------+----------------------------+----------------------------+
| Period | Period Start | Period End | Max | Min | Avg | Sum | Count | Duration | Duration Start | Duration End |
+--------+----------------------------+----------------------------+------------+------------+------------+------------+-------+----------+----------------------------+----------------------------+
| 60 | 2016-03-12T06:01:39.451000 | 2016-03-12T06:02:39.451000 | 13287936.0 | 13287936.0 | 13287936.0 | 13287936.0 | 1 | 0.0 | 2016-03-12T06:01:59.874000 | 2016-03-12T06:01:59.874000 |
+--------+----------------------------+----------------------------+------------+------------+------------+------------+-------+----------+----------------------------+----------------------------+
임시로 다운 받은 cirros 이미지를 삭제한다.
'cluod' 카테고리의 다른 글
openstack liberty 설치 정리11 - Orchestration service (0) | 2016.03.10 |
---|---|
openstack liberty 설치 정리10 - Object Storage Service (0) | 2016.03.07 |
openstack liberty 설치 정리9 - Block Storage Service (0) | 2016.03.06 |
openstack liberty 설치 정리8 - dashboard (0) | 2016.03.05 |
openstack liberty 설치 정리7 - networking service (0) | 2016.03.04 |