6. 모니터링 설정
1. 모니터링
CI/CD의 목표는 코드를 신속하고 안정적으로 배포하는 것입니다. 하지만 배포가 성공했다고 해서 모든 과정이 끝나는 것은 아닙니다. 새로운 코드에 의해 시스템 성능이 저하되거나 오류가 발생할 수 있습니다.
CI/CD 파이프라인에서 모니터링 단계는 이러한 문제를 실시간으로 감지하고 시스템의 건강 상태와 성능을 지속적으로 확인하는 핵심 과정입니다. 이 단계를 통해 배포된 애플리케이션의 문제를 조기에 발견하고, 안정적인 서비스를 유지할 수 있습니다.
2. 프로메테우스 & 그라파나

프로메테우스
CI/CD에서 대표적으로 사용되는 모니터링 도구로, 주기적으로 어플리케이션 및 인프라의 메트릭(CPU, 메모리 사용량 및 요청 수)을 가져와서 보관합니다.
프로메테우스는 자체 쿼리 언어(PromQL)를 사용하여 데이터를 분석하고, 경고를 보낼 수 있습니다.
그라파나
프로메테우스에 저장된 데이터를 시각화하여 표현하는 대시보드 툴입니다. 사용자가 데이터를 쉽게 분석할 수 있도록 다양한 그래프와 시각화 요소를 제공합니다.
1) 프로메테우스 & 그라파나 서버 설치
테라폼 스크립트 코드 예시
2) 프로메테우스 플러그인 설치
Prometheus metrics

3) 프로메테우스 서버 접속
aws-public-ip:9090

4) 프로메테우스 명령어
이번장에서 프로메테우스의 promQL에 대해서는 자세히 다루지 않습니다.
up→ exporter가 정상 동작하는지 (1=정상, 0=비정상)node_cpu_seconds_total→ CPU 사용량 (Node Exporter)node_memory_MemAvailable_bytes→ 사용 가능한 메모리mysql_global_status_connections→ 현재 DB 연결 수 (MySQLd Exporter)mysql_global_status_queries→ 초당 쿼리 실행 횟수rate(node_cpu_seconds_total{mode="user", job="mysql-db-node"}[5m])초당 user 모드 CPU 사용량
1 - (node_memory_MemAvailable_bytes{job="mysql-db-node"} / node_memory_MemTotal_bytes{job="mysql-db-node"})메모리 사용률
(node_filesystem_size_bytes{fstype!="tmpfs",job="mysql-db-node"}-node_filesystem_free_bytes{fstype!="tmpfs",job="mysql-db-node"}) / node_filesystem_size_bytes{fstype!="tmpfs",job="mysql-db-node"}디스크 사용률
5) 그라파나 서버 접속
aws-public-ip:3000
admin/admin

6) 프로메테우스 연동
connections - data sources - Prometheus 선택


7) 대쉬보드 추가
dashboards - import - ID선택 - 1860 / 7362 입력
각 어플리케이션의 NodeExporter를 통해 데이터를 수집
select data source - 프로메테우스 선택


8) 대쉬보드 확인
job의 mysql-db-node와 production-node를 변경해가면서 서버의 상태를 모니터링한다.

cpu 사용률, 디스크 용량등을 모니터링하여 문제가 발생하기 전 조기에 대응한다.
9) 알림설정
Last updated