DevOps 환경에서 애플리케이션과 인프라의 성능을 모니터링하는 것은 매우 중요합니다. 이를 통해 문제를 조기에 발견하고, 시스템의 가용성을 높일 수 있습니다. 오늘은 Prometheus와 Grafana를 활용한 효율적인 모니터링 솔루션에 대해 알아보겠습니다.

Prometheus란?

Prometheus는 오픈 소스 모니터링 및 경고 툴킷으로, 특히 클라우드 네이티브 애플리케이션을 위한 메트릭 수집에 최적화되어 있습니다. 주요 특징은 다음과 같습니다.

  • 시계열 데이터 저장: Prometheus는 시계열 데이터를 수집하고 저장합니다. 각 데이터는 타임스탬프와 함께 저장되어 시간에 따라 변화하는 메트릭을 시각화할 수 있습니다.
  • 다양한 데이터 수집: HTTP를 통해 메트릭을 수집하며, 다양한 프로그래밍 언어로 exporter를 작성할 수 있습니다.
  • 강력한 쿼리 언어: PromQL(Prometheus Query Language)을 사용하여 복잡한 쿼리를 작성하고 데이터 분석이 가능합니다.
  • Grafana란?

    Grafana는 시각화 도구로, 다양한 데이터 소스에서 데이터를 가져와 대시보드를 생성할 수 있습니다. Prometheus와의 통합을 통해 실시간 데이터를 시각화하는 데에 매우 유용합니다. Grafana의 주요 특징은 다음과 같습니다.

  • 사용자 친화적인 대시보드: 다양한 차트와 그래프를 사용하여 데이터를 시각화할 수 있으며, 직관적인 UI를 제공합니다.
  • 다양한 플러그인 지원: Grafana는 다양한 데이터 소스를 지원하며, 이를 통해 확장성이 뛰어납니다.
  • 경고 기능: Grafana에서 설정한 임계값을 초과하는 경우 알림을 받을 수 있습니다.

Prometheus와 Grafana 설치하기

이제 Prometheus와 Grafana를 설치하고 기본적인 설정을 해보겠습니다.

1. Prometheus 설치

먼저, Prometheus를 설치합니다. 아래는 Ubuntu에서의 설치 방법입니다.

wget https://github.com/prometheus/prometheus/releases/download/v2.31.1/prometheus-2.31.1.linux-amd64.tar.gz

# 압축 해제
tar -xvf prometheus-2.31.1.linux-amd64.tar.gz
cd prometheus-2.31.1.linux-amd64

# Prometheus 실행
./prometheus --config.file=prometheus.yml

이제 Prometheus가 기본 포트 9090에서 실행되고 있습니다.

2. Grafana 설치

다음으로 Grafana를 설치합니다.

# Grafana GPG 키 추가
sudo apt-get install -y software-properties-common
sudo add-apt-repository -y ppa:grafana/stable
sudo apt-get update

# Grafana 설치
sudo apt-get install grafana

# Grafana 서비스 시작
sudo systemctl start grafana-server
sudo systemctl enable grafana-server.service

Grafana는 기본 포트 3000에서 실행됩니다.

3. Prometheus와 Grafana 연동하기

  1. Grafana에 로그인 (기본 사용자명과 비밀번호는 admin/admin).
  2. 왼쪽 메뉴에서 Configuration(구성) > Data Sources(데이터 소스)를 클릭합니다.
  3. Add data source(데이터 소스 추가) 버튼을 클릭합니다.
  4. Prometheus를 선택하고 URL에 http://localhost:9090을 입력한 후, Save & Test(저장 및 테스트)를 클릭하여 연결을 확인합니다.
  5. 이제 Prometheus의 메트릭을 Grafana에서 사용할 수 있습니다.

    대시보드 만들기

    Grafana에서 새로운 대시보드를 만들어 보겠습니다.

  6. 왼쪽 메뉴에서 Dashboards(대시보드) > New Dashboard(새 대시보드)를 클릭합니다.
  7. Add new panel(새 패널 추가)을 클릭합니다.
  8. Query 영역에 PromQL 쿼리를 작성하여 원하는 메트릭을 시각화합니다. 예를 들어, CPU 사용량을 모니터링하고 싶다면 다음과 같은 쿼리를 작성할 수 있습니다.
  9. rate(node_cpu_seconds_total{mode="idle"}[5m])
  10. 패널 설정을 완료하고 Save(저장) 버튼을 클릭하여 대시보드를 저장합니다.

마무리

Prometheus와 Grafana는 강력한 모니터링 솔루션으로, 클라우드 네이티브 애플리케이션의 성능을 효과적으로 관리할 수 있도록 도와줍니다. 설치와 설정이 비교적 간단하며, 다양한 메트릭을 수집하고 시각화하는 데 유용합니다. DevOps 환경에서 이 두 도구를 적극 활용하여 시스템의 가용성과 성능을 한층 더 향상시켜 보세요.