Overview
오늘은 OpenStack Ceilometer에 대해 공부하고, 개념과 구조, 기능에 대해 정리하려고 한다.
📅 관련 글
2022.05.11 - [Openstack] - Openstack이란?
2022.07.29 - [Openstack] - Openstack Nova란?
2022.08.08 - [Openstack] - Openstack Neutron이란? (network)
2022.08.08 - [Openstack] - Openstack 배치 서비스 Placement란?
2022.08.08 - [Openstack] - Openstack Glance란? (image)
2022.08.08 - [Openstack] - Openstack Keystone이란? (identity)
2022.08.08 - [Openstack] - Openstack horizon이란? (dashboard)
2022.08.09 - [Openstack] - Openstack Cinder/Swift란? (block storage/object storage)
2025.02.27 - [Openstack] - OpenStack Heat란? (Orchestration)
Ceilometer란?
Ceilometer는 OpenStack 환경에서 모니터링 및 측정(Telemetry & Monitoring) 기능을 제공하는 서비스이다. OpenStack 내부에서 리소스 사용량을 측정하고 데이터를 수집하여 비용 청구(Billing) 및 성능 모니터링에 활용할 수 있도록 한다.
Ceilometer는 OpenStack 환경의 각종 서비스(Nova, Cinder, Neutron 등)와 통합되어 동작하며, 이벤트를 감지하고 메트릭 데이터를 수집하여 다양한 분석 및 관리 기능을 지원한다.
Ceilometer의 주요 역할
리소스 사용량 모니터링
- OpenStack의 다양한 서비스(Nova, Cinder, Neutron, Glance 등)에서 발생하는 리소스 사용량을 수집 및 기록.
- 예: 가상 머신(CPU, RAM), 네트워크 트래픽, 볼륨 사용량, 이미지 사용량 등.
이벤트 기반 데이터 수집
- 특정 이벤트(인스턴스 생성, 삭제, 스토리지 증가 등)가 발생하면 자동으로 해당 이벤트를 기록 및 분석.
알람 및 트리거
- 특정 임계값을 초과하는 경우 알람을 생성하여 관리자가 적절한 조치를 취할 수 있도록 지원.
- 예: CPU 사용량이 80% 이상인 경우 경고 메시지 전송.
과금(Billing) 시스템 연계
- OpenStack에서 사용한 자원에 대해 비용을 부과하는 과금 시스템과 연동하여 사용량 기반 청구를 가능하게 함.
다양한 데이터 저장소 연동
- MongoDB, Gnocchi 등의 데이터베이스와 연동하여 수집된 데이터를 저장 및 관리.
Ceilometer의 주요 구성 요소
✔ Agent
- Compute Agent: Nova 인스턴스 관련 메트릭을 수집.
- Central Agent: 다양한 OpenStack 서비스(Cinder, Glance, Neutron 등)에서 메트릭을 수집.
- Notification Agent: 이벤트 기반의 데이터 수집 담당.
- Collector: 모든 에이전트에서 수집한 데이터를 데이터베이스에 저장.
✔ Polling Mechanism
- 정해진 시간 간격으로 OpenStack API를 호출하여 메트릭을 수집.
✔ Publisher
- 수집된 데이터를 메시지 큐(RabbitMQ) 또는 데이터 저장소(MongoDB, Gnocchi)로 전송.
✔Alarming (Aodh와 연동)
- Aodh 서비스와 함께 사용하여 특정 임계값을 초과하면 알람을 발생.
Ceilometer와 Gnocchi의 차이
Ceilometer는 원래 데이터 수집 및 저장까지 담당했지만, OpenStack Mitaka 버전 이후 Gnocchi가 메트릭 저장소 역할을 담당하게 되었다.
기능 | Ceilometer | Gnocchi |
데이터 수집 | OpenStack API를 통해 메트릭 및 이벤트 수집 | X |
데이터 저장 | MongoDB, Gnocchi와 연동 | 시간 기반의 메트릭 데이터 저장 |
알람 기능 | Aodh와 연계하여 알람 기능 제공 | X |
Ceilometer 데이터 흐름
- Metric 생성: OpenStack의 각 서비스에서 메트릭 데이터 생성 (예: Nova에서 CPU 사용량 데이터 제공).
- Agent 수집: Ceilometer의 Agent가 API를 호출하여 메트릭 데이터를 수집.
- Collector 저장: 수집된 데이터를 RabbitMQ 또는 Gnocchi 같은 데이터 저장소로 전송.
- 알람 트리거: Aodh와 연계하여 특정 임계값을 초과하는 경우 알람 발생.
- 사용량 분석 및 과금 연계: Panko 및 CloudKitty 같은 서비스와 연계하여 분석 및 과금 적용.
Ceilometer와 함께 사용하는 서비스
- Aodh: 알람 서비스 (임계값 초과 시 경고 및 액션 수행).
- Gnocchi: 메트릭 스토리지 서비스 (시간 기반 데이터 저장 및 분석).
- Panko: 이벤트 기록 및 저장.
- CloudKitty: OpenStack에서 과금(Billing) 기능을 제공.
Ceilometer 설치 및 설정 (기본 예제)
1. Ceilometer 설치
sudo apt update
sudo apt install ceilometer-api ceilometer-collector ceilometer-agent-compute ceilometer-agent-central ceilometer-agent-notification ceilometer-alarm-evaluator ceilometer-alarm-notifier
2. Ceilometer 서비스 시작
sudo systemctl enable --now ceilometer-api ceilometer-collector ceilometer-agent-compute ceilometer-agent-central ceilometer-agent-notification
3. Ceilometer 데이터 조회
- 현재 실행 중인 인스턴스의 CPU 사용량 조회
openstack metric list
- 특정 메트릭 조회
openstack metric show cpu_util
결론
- Ceilometer는 OpenStack 환경에서 리소스 사용량을 모니터링하고 데이터를 수집하는 중요한 서비스이다.
- Aodh, Gnocchi, Panko 등의 서비스와 연계하여 보다 정밀한 리소스 관리와 과금 시스템을 구축할 수 있다.
- Ceilometer를 효과적으로 활용하면 OpenStack 환경의 가시성을 높이고, 최적의 성능을 유지할 수 있다.
Reference
https://docs.openstack.org/ceilometer/latest/
https://github.com/openstack/ceilometer
https://wiki.openstack.org/wiki/Ceilometer/Graduation
https://wiki.openstack.org/wiki/Ceilometer/blueprints/support-standard-audit-formats
'Openstack' 카테고리의 다른 글
OpenStack Magnum이란? (Container Orchestration) (0) | 2025.03.27 |
---|---|
OpenStack Mistral이란? (Workflow Service) (0) | 2025.03.14 |
OpenStack Heat란? (Orchestration) (0) | 2025.02.27 |
Openstack Cinder/Swift란? (block storage/object storage) (0) | 2022.08.09 |
Openstack horizon이란? (dashboard) (0) | 2022.08.08 |