어플리케이션

Grafana와 Prometheus 에 대해 알아보겠습니다.

forward error correction Circle 2024. 5. 3. 08:44
반응형

Ⅰ. Grafana 란?

Grafana는 데이터 시각화 및 모니터링 도구로, 다양한 데이터 소스로부터 데이터를 시각적으로 표시하고 이해하기 쉽게 만들어줍니다. 주로 시스템 및 애플리케이션의 성능, 상태 및 트렌드를 모니터링하고 분석하는 데 사용되며, 대규모 시스템 및 애플리케이션의 모니터링, 분석, 문제 해결을 위한 강력한 도구로 사용됩니다. 그 외에도 IoT 디바이스 모니터링, 비즈니스 지표 추적, 서버 및 애플리케이션 로그 분석 등 다양한 분야에서 활용됩니다.

 

Ⅱ. Grafana 특징

  ⅰ. 다양한 데이터 소스 지원: Grafana는 여러 다양한 데이터 소스를 지원합니다. 이에는 Prometheus, InfluxDB, Graphite, Elasticsearch, MySQL, PostgreSQL 등이 포함됩니다.

  ⅱ. 대시보드 작성: 사용자는 Grafana 대시보드를 사용하여 데이터를 시각화하고 대시보드를 만들 수 있습니다. 이 대시보드는 그래프, 게이지, 표, 히트맵 등 다양한 시각화 도구를 사용하여 데이터를 표시할 수 있습니다.

  ⅲ. 경고 및 알림: Grafana는 데이터에 대한 경고를 설정하고, 특정 조건이 충족될 때 경고를 생성하고 이를 이메일, Slack 등으로 알림을 보낼 수 있는 기능을 제공합니다.

 ⅳ. 사용자 정의: Grafana 대시보드 및 시각화는 사용자가 필요에 따라 완전히 사용자 정의할 수 있습니다. 사용자는 그래프 스타일, 색상, 레이아웃 등을 변경하여 데이터를 최적화할 수 있습니다.

 ⅴ. API 및 플러그인: Grafana는 다양한 플러그인과 API를 제공하여 사용자가 기능을 확장하고 사용자 정의할 수 있습니다

 

Ⅲ. Grafana 설치 방법
 ⅰ) Docker Hub 에서 Grafana 이미지 다운로드

 

[root@localhost ~]# docker pull grafana/grafana

  ⅱ) Grafana 컨테이너를 실행합니다.

[root@localhost ~]#  docker run -d -p 3000:3000 --name grafana grafana/grafana

이 명령은 -d 옵션으로 백그라운드에서 실행하고, -p 옵션으로 호스트의 3000 포트를 Grafana 컨테이너의 3000 포트로 매핑합니다. --name 옵션으로 컨테이너의 이름을 grafana로 지정합니다.

  ⅲ) 웹 브라우저에서 http://localhost:3000 를 열고 Grafana 대시보드를 확인합니다.


Default Username: admin

Default Password : admin  / 로그인할 때 새로운 비밀번호를 설정합니다.

 

이제 Grafana가 설치되었으며 실행 중입니다. Grafana 대시보드를 만들고 데이터를 시각화하려면 데이터 소스를 구성해야 합니다.

Grafana에서 지원하는 다양한 데이터 소스 중 하나를 선택하고 데이터 소스 구성을 진행하세요.

참고: 이 명령어는 Grafana 컨테이너의 데이터를 저장하지 않습니다.
컨테이너가 종료되면 모든 데이터가 삭제됩니다.
컨테이너의 데이터를 유지하려면 Docker 볼륨을 사용하여 데이터를 유지하도록 설정해야 합니다.

이어서, grafana 컨테이너와 prometheus 컨테이너 연동하는 방법을 간단하게 정리해보자면요.
Grafana와 Prometheus 컨테이너를 연동하여 Grafana 대시보드에서 Prometheus 지표를 시각화하려면 다음 단계를 따르세요.

 

Ⅳ. Prometheus 란?

시스템 및 서비스를 모니터링하기 위한 오픈 소스 시스템입니다. Prometheus는 실시간으로 시계열 데이터를 수집하고 저장하며, 이를 기반으로 시스템의 상태를 모니터링하는 역할을 합니다.

 

Ⅴ. Prometheus 특징

  ⅰ. 시계열 데이터베이스
Prometheus는 시계열 데이터베이스로서 동작합니다. 이는 시간에 따라 변화하는 데이터를 저장하고 쿼리할 수 있는 데이터베이스 형식입니다. Prometheus는 모든 샘플을 원시 형식으로 저장하고 압축하여 효율적으로 저장하며, 데이터를 효율적으로 검색할 수 있습니다.
  ⅱ. 다차원 데이터 모델
Prometheus는 다차원 데이터 모델을 사용하여 각 데이터 샘플을 다양한 차원으로 분류합니다. 이를 통해 데이터를 쉽게 필터링하고 집계할 수 있으며, 각 데이터 샘플의 맥락을 보다 잘 이해할 수 있습니다.
  ⅲ. PromQL 쿼리 언어
Prometheus는 PromQL이라는 강력한 쿼리 언어를 제공합니다. PromQL을 사용하여 시계열 데이터를 쿼리하고 필터링하며, 이를 기반으로 경고를 생성하거나 그래프를 그릴 수 있습니다.
  ⅳ. 탄력적인 설계
Prometheus는 클라우드 네이티브 환경에 적합한 탄력적인 설계를 가지고 있습니다. 여러 Prometheus 서버를 조직하고 서비스 디스커버리 및 타깃 관리를 지원합니다.
  ⅴ. 알람과 경고
Prometheus는 시스템의 상태를 모니터링하고 정의된 규칙에 따라 알람을 생성합니다. 이를 통해 시스템의 이상 상태를 신속하게 감지하고 조치를 취할 수 있습니다.
   ⅵ. Exporter 및 인티그레이션
Prometheus는 다양한 서비스와 시스템에 대한 Exporter를 제공하고 있으며, 이를 통해 다양한 유형의 데이터를 수집할 수 있습니다. 또한 Grafana와 함께 사용하여 데이터를 시각화하고 대시보드를 구성할 수 있습니다.

 

Ⅵ. Grafana 와 Prometheus 연동

 ⅰ. Prometheus 컨테이너를 실행

$ docker run -d -p 9090:9090 --name prometheus prom/prometheus


이 명령은 -d 옵션으로 백그라운드에서 실행하고, -p 옵션으로 호스트의 9090 포트를 Prometheus 컨테이너의 9090 포트로 매핑합니다. --name 옵션으로 컨테이너의 이름을 prometheus로 지정합니다.

ⅱ. Grafana에 Prometheus 데이터 소스를 추가합니다. Grafana 대시보드에서 "Data Sources"를 선택합니다.   

    선택 후 "Prometheus"를 선택합니다.



ⅲ. "HTTP" 섹션에서 "URL" 필드에 http://<prometheus-container-ip>:9090 를 입력하고, "Save & Test"를 클릭하여 연결을 확인합니다. 이때 <prometheus-container-ip>는 Prometheus 컨테이너의 IP 주소입니다. 일반적으로 Docker의 내장 DNS 서버를 사용하여 컨테이너 이름으로도 접근할 수 있습니다.


 ⅳ. 이제 데이터 소스가 추가되었으므로, "Create" 메뉴를 선택하고 "Dashboard"를 선택하여 새로운 대시보드를 만들 수 있습니다. 대시보드에서 "Add panel"을 선택하고 "Visualization"을 선택합니다. 그리고 "Query" 탭에서 Prometheus 데이터 소스를 선택합니다. 이제 Prometheus에서 데이터를 쿼리할 수 있습니다.

반응형