티스토리 뷰

728x90
반응형

본 포스팅은 OpenStack의 구성요소들을 수동으로 설치하는 방법에 대한 가이드입니다.


오픈스택은 Core 프로젝트 즉 주요 구성요소로 10가지를 채택하고 있습니다. 이들은 각자의 VM으로 구성되며 VM간의 연결을 위해 하이퍼바이저를 사용합니다. 본 포스팅에서는 각 구성요소들을 하나씩 수동으로 구성해 보고 연결과정에 대해 알아보겠습니다.


★Cloud★/OpenStack [OpenStack] Part 1. kestone (아이덴티티 서비스)

★Cloud★/OpenStack [OpenStack] Part 2. glance (이미지 서비스)

★Cloud★/OpenStack [OpenStack] Part 3. nova (컴퓨트)

★Cloud★/OpenStack [OpenStack] Part 4. neutron (네트워크)

★Cloud★/OpenStack [OpenStack] Part 5. horizon (대시보드)

★Cloud★/OpenStack [OpenStack] Part 6. cinder (블록스토리지)

★Cloud★/OpenStack [OpenStack] Part 7. swift (오브젝트스토리지)

★Cloud★/OpenStack [OpenStack] Part 8. heat (오케스트레이션)


아홉번째 시간으로 설치할 구성요소는 텔레메트리 ceilometer입니다.

앞선 포스팅은 위 URL을 참고하세요.

OpenStack 텔레메트리(ceilometer)는 다음과 같은 기능을 수행합니다.

1) OpenStack 서비스와 관련된 측정 데이터를 효과적으로 수집합니다.
2) 서비스로부터 전송되는 알림을 모니터링하여 이벤트 및 측정 데이터를 수집합니다.
3) 수집된 데이터를 데이터 저장소 및 메시지 큐를 비롯한 다양한 대상에게 제공합니다.
4) 수집된 데이터가 정의된 규칙을 위반할 때 경보를 생성합니다.


ceilometer는 다음과 같은 구성 요소가 포함되어 있습니다.


A compute agent (ceilometer-agent-compute)

리소스 활용에 대한 통계를 내기위해 각 계산 노드 및 데티어를 측정합니다.

A central agent (ceilometer-agent-central)

중앙 관리 서버에서 실행되어 인스턴스 또는 컴퓨팅 노드에 연결되지 않은 리소스의 리소스 사용률 통계를 수집합니다. 서비스를 수평으로 확장하기 위해 여러 에이전트를 시작할 수 있습니다.

A notification agent (ceilometer-agent-notification)

중앙 관리 서버에서 실행되고 메시지 대기열의 메시지를 사용하여 이벤트 및 미터링 데이터를 작성합니다.

A collector (ceilometer-collector)

중앙 관리 서버에서 실행되며 수집된 Telemetry 데이터를 수정하지 않고 데이터 저장소 또는 외부 소비자에게 전송합니다.

An alarm evaluator (ceilometer-alarm-evaluator)

하나 이상의 중앙 관리 서버에서 실행되어 sliding time window의 임계값을 넘는 관련 통계 추세로 인해 경보가 발생하는 시기를 결정합니다.

- An alarm notifier (ceilometer-alarm-notifier)

하나 이상의 중앙 관리 서버에서 실행되어 샘플 수집에 대한 임계값 평가를 기반으로 경보를 설정할 수 있습니다.

- An API server (ceilometer-api)

하나 이상의 중앙 관리 서버에서 실행되어 데이터 저장소에서 데이터 액세스를 제공합니다.



OpenStack swift Service Installation

Object Storage Service는 ceilometer라는 프로젝트로 개발되었습니다. OpenStack은 오픈소스로써 이러한 프로젝트들이 핵심프로젝트로 올라가면 이를 실제 OpenStack에 반영하여 사용하고 실제 프로젝트 Name은 Module Name 및 CLI 환경에서 Command로 사용할 수 있습니다.


- 본 테스트는 다음과 같은 환경에서 작성되었습니다.

[nrson@nrsonLinux~$]uname -a
Linux nrsonLinux 4.4.0-31-generic #50-Ubuntu SMP Wed Jul 13 00:07:12 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
[nrson@nrsonLinux~$]

- 본 포스팅에서는 다양한 설치가 이루어짐에 따라 필수로 설치되어야 하는 mysql, rabbitMQ등의 Install과정으 과감히 제거하였습니다. 별도의 포스팅에서 사전에 준비되야 하는 Package의 설치 과정을 설명드리겠습니다.

- 본 포스팅에서 설치되는 패키지들은 apt-get package manager를 통해 수행됩니다.


ceilometer 설치 이전 선행 작업

1. database 생성


root@nrsonLinux:~# mongo --host controller --eval 'db = db.getSiblingDB("ceilometer"); db.createUser({user: "ceilometer", pwd: "CEILOMETER_DBPASS", roles: [ "readWrite", "dbAdmin" ]})'

MongoDB shell version: 2.6.10

connecting to: controller:27017/test

Successfully added user: { "user" : "ceilometer", "roles" : [ "readWrite", "dbAdmin" ] }

root@nrsonLinux:~#


2. admin 권한 부여


root@nrsonLinux:~# source nrsonOpenrc.sh

root@nrsonLinux:~#


3. ceilometer User 생성


root@nrsonLinux:~# openstack user create --domain default --password-prompt ceilometer

User Password:

Repeat User Password:

+-----------+----------------------------------+

| Field     | Value                            |

+-----------+----------------------------------+

| domain_id | default                          |

| enabled   | True                             |

| id        | f90e071f713c4fb59572f5a6e5cc20fe |

| name      | ceilometer                       |

+-----------+----------------------------------+

root@nrsonLinux:~#


4. ceilometer Role 부여


root@nrsonLinux:~# openstack role add --project service --user ceilometer admin

root@nrsonLinux:~#


5. ceilometer 서비스 엔티티 생성


root@nrsonLinux:~# openstack service create --name ceilometer --description "Telemetry" metering

+-------------+----------------------------------+

| Field       | Value                            |

+-------------+----------------------------------+

| description | Telemetry                        |

| enabled     | True                             |

| id          | a2d901b8a6df4615bc395f2c0a6f64a1 |

| name        | ceilometer                       |

| type        | metering                         |

+-------------+----------------------------------+

root@nrsonLinux:~#


6. telemetry Service API 엔드포인트 생성


root@nrsonLinux:~# openstack endpoint create --region RegionOne metering public http://controller:8777

+--------------+----------------------------------+

| Field        | Value                            |

+--------------+----------------------------------+

| enabled      | True                             |

| id           | 3ee2d7b9d7fc4c1cb653da189f5e8194 |

| interface    | public                           |

| region       | RegionOne                        |

| region_id    | RegionOne                        |

| service_id   | a2d901b8a6df4615bc395f2c0a6f64a1 |

| service_name | ceilometer                       |

| service_type | metering                         |

| url          | http://controller:8777           |

+--------------+----------------------------------+

root@nrsonLinux:~# openstack endpoint create --region RegionOne metering internal http://controller:8777

+--------------+----------------------------------+

| Field        | Value                            |

+--------------+----------------------------------+

| enabled      | True                             |

| id           | 425c3c941d524c77aa8435b44b6c79c3 |

| interface    | internal                         |

| region       | RegionOne                        |

| region_id    | RegionOne                        |

| service_id   | a2d901b8a6df4615bc395f2c0a6f64a1 |

| service_name | ceilometer                       |

| service_type | metering                         |

| url          | http://controller:8777           |

+--------------+----------------------------------+

root@nrsonLinux:~# openstack endpoint create --region RegionOne metering admin http://controller:8777

+--------------+----------------------------------+

| Field        | Value                            |

+--------------+----------------------------------+

| enabled      | True                             |

| id           | deca2415635a4f9ca1089e5568f61fb0 |

| interface    | admin                            |

| region       | RegionOne                        |

| region_id    | RegionOne                        |

| service_id   | a2d901b8a6df4615bc395f2c0a6f64a1 |

| service_name | ceilometer                       |

| service_type | metering                         |

| url          | http://controller:8777           |

+--------------+----------------------------------+

root@nrsonLinux:~#


ceilometer 구성요소 설치와 구성

1. 구성요소 설치


root@nrsonLinux:~# apt-get install ceilometer-api ceilometer-collector ceilometer-agent-central ceilometer-agent-notification python-ceilometerclient

패키지 목록을 읽는 중입니다... 완료

의존성 트리를 만드는 중입니다

상태 정보를 읽는 중입니다... 완료

...

...

python-ceilometerclient is the newest version (2.4.0-2).

ceilometer-agent-central is the newest version (1:6.1.5-0ubuntu1).

ceilometer-api is the newest version (1:6.1.5-0ubuntu1).

ceilometer-collector is the newest version (1:6.1.5-0ubuntu1).

ceilometer-agent-notification is the newest version (1:6.1.5-0ubuntu1).

root@nrsonLinux:~#


2. /etc/ceilometer/ceilometer.conf 구성


[DEFAULT]

...

# RabbitMQ 메시지 큐 접근 구성

rpc_backend = rabbit

...

# Identity 서비스 접근 구성

auth_strategy = keystone

...

[database]

...

# database 액세스 구성

# connection = <None>

connection = mongodb://ceilometer:ceilometer@172.21.70.22:27017/ceilometer

...

[oslo_messaging_rabbit]

...

# RabbitMQ 메시지 큐 접근 구성

rabbit_host = 172.21.70.22

rabbit_userid = openstack

rabbit_password = openstack

...

[keystone_authtoken]

...

# Identity 서비스 접근 구성

auth_uri = http://172.21.70.22:5000

auth_url = http://172.21.70.22:35357

auth_plugin = password

project_domain_id = default

user_domain_id = default

project_name = service

username = ceilometer

password = ceilometer

...

[service_credentials]

...

# 서비스 credential 구성

os_auth_url = http://172.21.70.22:5000/v2.0

os_username = ceilometer

os_tenant_name = service

os_password = CEILOMETER_PASS

os_endpoint_type = internalURL

os_region_name = RegionOne

...


3. 서비스 재기동


root@nrsonLinux:~# service ceilometer-agent-central restart

root@nrsonLinux:~# service ceilometer-agent-notification restart

root@nrsonLinux:~# service ceilometer-api restart

root@nrsonLinux:~# service ceilometer-collector restart

root@nrsonLinux:~# 



ceilometer의 경우 각각 이미지 서비스(glance), compute(nova), 블록 스토리지(cinder), 오브젝트 스토리지(swift)의 측정을 활성화하고 검증하는 과정이 필요합니다.

이는 [OpenStack] Part 9-2. Ceilometer (텔레메트리)에서 추가로 다루도록 하겠습니다.

728x90
반응형