본문 바로가기
프로그래밍/JAVA

프로메테우스 그라파나 자바 어플리케이션 (3) 모니터링 화면

by 애플 로그 2021. 11. 1.
반응형

프로메테우스 그라파나 자바 어플리케이션 (3) 모니터링 화면

 

(1). Tomcat 서버를 설치 

 

 

프로메테우스 그라파나 자바 어플리케이션 모니터링 (1) tomcat 설치

프로메테우스 그라파나 자바 어플리케이션 모니터링 (1) tomcat 설치 그래서 뭐할건데? ? 나는 10년차 실전 파이터로써, 실전 중심의 예제로 정리를 해보려한다.  1. Tomcat 서버를 설치  2.

www.appletong.com

 

(2). jmx_exporter 설치 - metrics 데이터를 추출 

 

 

프로메테우스 그라파나 자바 어플리케이션 모니터링 (2) jmx_exporter

프로메테우스 그라파나 자바 어플리케이션 모니터링 (2) jmx_exporter 모니터링을 하려면 뭔가 스레드,JMV 메모리, CPU 등등에 관련한 데이터가 있어야 할것인데, JMX_exporter를 설치하면, 프로메테우스

www.appletong.com

 

 

다음 단계인 프로메테우스와 그라파나를 설치해서 모니터링 화면을 확인 할때이다.

 

1. 프로 메테우스 ( prometheus )

https://prometheus.io/download/

 

Download | Prometheus

An open-source monitoring system with a dimensional data model, flexible query language, efficient time series database and modern alerting approach.

prometheus.io

 

나의 경우는 2.30.3을 다운로드 받았다.

 

 

 

prometheus.yml 수정

 

static_configs 

# my global config
global:
  scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
  evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
  # scrape_timeout is set to the global default (10s).

# Alertmanager configuration
alerting:
  alertmanagers:
    - static_configs:
        - targets:
          # - alertmanager:9093

# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
  # - "first_rules.yml"
  # - "second_rules.yml"

# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.


  - job_name: "prometheus"

    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.

    static_configs:
      - targets: ["127.0.0.1:7890"]

 

job_name을 기본 prometheus 로 놔두었지만,

서버 명칭에 따라 변경하길 권고한다.

 

 

prometheus.exe 를 실행한다.

 

 

서비스가 정상 실행되었다면, 

프로메테우스 설정 화면인

http://127.0.0.1:9090 으로 화면 접속

 

  [ 프로메테우스 JVM-export와 연동 정상 확인 ] 

  -  매뉴 status - Targets 

  -  State 가 UP 상태 확인

 

여기까지 진행 되었다면, 이제 그라파나로 넘어 갈수 있다.

 

2. 그라파나로 모니터링 화면 확인 - 최종 ( Grafana )

 

그라파나는 무엇일까?


Grafana를 사용하면 저장된 위치에 상관없이 메트릭 을 쿼리, 시각화, 경고 및 이해할 수 있습니다. 팀과 대시 보드를 생성, 탐색 및 공유하고 데이터 중심의 시각화를 제공합니다.

Grafana 프로젝트는 2014 년 Torkel Ödegaard에 의해 시작되었으며 지난 2 년 동안 GitHub에서 가장 인기있는 오픈 소스 프로젝트 중 하나가되었습니다. 저장된 위치에 상관없이 메트릭 및 로그를 쿼리, 시각화 및 경고 할 수 있습니다.

Grafana는 플러그 가능한 데이터 소스 모델을 가지고 있으며 Graphite, Prometheus, Elasticsearch, OpenTSDB 및 InfluxDB와 같은 가장 널리 사용되는 시계열 데이터베이스를 풍부하게 지원합니다. 또한 Google Stackdriver, Amazon Cloudwatch, Microsoft Azure 및 MySQL 및 Postgres와 같은 SQL 데이터베이스와 같은 클라우드 모니터링 공급 업체를 기본적으로 지원합니다. Grafana는 많은 장소의 데이터를 단일 대시 보드로 결합 할 수있는 유일한 도구입니다.

 

 1) 그라파나 다운로드

 

https://grafana.com/grafana/download

 

Download Grafana

Overview of how to download and install different versions of Grafana on different operating systems.

grafana.com

 

2) 다운 받은 그라파나를 설치  

 

 

 

윈도우 서비스에 Grafana 서비스가 등록 됩니다.

 

3) 그라파타 UI 화면 접속

 

초기 비밀번호   ( id : admin / password : admin  ) 

 

로그인 화면

 

처음부터 모니터링 대쉬보드를 만들기는 상당히 어려움이 있다.

 

Gafana에서는 대쉬보드 import / export  기능을 제공한다.

 

공식홈페이지에서도 잘만들어진 템플릿을 제공하니 참고 하도록 하자.

 

https://grafana.com/grafana/dashboards/

 

Dashboards

 

grafana.com

 

 

아래 첨부된 grafana.json 파일을 import 한다.

 

grafana.json
0.04MB

대쉬 보드를 확인하면, 아래와 같은 대쉬보드 화면을 만날수 있다.

 

최종적으로 그라파나에 Tomcat 서버를 모니터링 할수 있는 화면이 표시되었다.

자세히 다룰 예정은 없지만,  그라파나는 생각보다도 간단한 설정으로 강력한 알림 기능을 제공 한다.

알람 받을 채널은 이메일, 라인, 텔레그램, 디스코드, 슬랙 등등 매우 다양하다.

24시간 모니터링 화면을 보고 있을것은 아니기떄문에 알람 기능 자체는 필수 기능 이라고 생각한다.

 

 

상당 시간이 걸렸지만, 정리하고 나니 상당히 뿌듯하다.

보시는 분들이에게 조금이나마 도움이 되었길 바란다.

댓글