SpringBoot 를 배워보자

스프링 부트 액추에이터 가 모니터 툴 맞아? json만 리턴되는데.. 그래픽은? 뭘더 설치해야되?

_Blue_Sky_ 2024. 11. 16. 16:33
728x90
728x90

Spring Boot Actuator 자체는 모니터링 데이터를 제공하는 툴로, JSON 형식으로 애플리케이션 상태 및 메트릭 데이터를 노출합니다. 하지만 그래픽 대시보드는 Actuator 자체에 포함되어 있지 않습니다. 이를 해결하려면 Actuator 데이터를 시각화할 수 있는 외부 도구와 통합해야 합니다.

Actuator 데이터를 시각화하기 위한 추가 도구

Actuator와 통합하여 그래픽 대시보드를 제공하는 몇 가지 옵션은 다음과 같습니다:

728x90

1. Prometheus + Grafana

  • Prometheus: Actuator의 메트릭 데이터를 수집하는 모니터링 시스템.
  • Grafana: Prometheus 데이터를 기반으로 대시보드를 생성.

설정 방법:

  1. Actuator에 Prometheus Endpoint 추가
    • application.yml에 Prometheus 엔드포인트를 활성화:
      management:
        endpoints:
          web:
            exposure:
              include: health, metrics, prometheus
      • Actuator가 /actuator/prometheus 엔드포인트에서 Prometheus 형식의 데이터를 제공.
  2. Prometheus 설정
    • Prometheus 서버를 설치한 후, prometheus.yml에 Actuator 데이터를 수집하도록 설정:
      scrape_configs:
        - job_name: 'spring-boot-app'
          metrics_path: '/actuator/prometheus'
          static_configs:
            - targets: ['localhost:8080'] # Spring Boot 애플리케이션 주소
  3. Grafana 연결
    • Grafana에서 Prometheus를 데이터 소스로 추가.
    • Spring Boot용 대시보드 템플릿을 가져와 시각화.

2. Spring Boot Admin

  • Spring Boot Admin: Spring Boot 애플리케이션의 상태를 중앙에서 관리하고 시각화할 수 있는 오픈소스 도구.

설정 방법:

  1. Spring Boot Admin 서버 설치
    • 새로운 프로젝트로 Spring Boot Admin Server 설정:
      <dependency>
        <groupId>de.codecentric</groupId>
        <artifactId>spring-boot-admin-starter-server</artifactId>
        <version>2.x.x</version>
      </dependency>
      • @EnableAdminServer 애노테이션 추가.
  2. Spring Boot 애플리케이션 등록
    • Actuator가 설치된 애플리케이션에 Spring Boot Admin 클라이언트 추가:
      <dependency>
        <groupId>de.codecentric</groupId>
        <artifactId>spring-boot-admin-starter-client</artifactId>
        <version>2.x.x</version>
      </dependency>
      • application.yml에 Admin Server 주소 설정:
        spring:
          boot:
            admin:
              client:
                url: http://localhost:8080 # Admin Server 주소
        management:
          endpoints:
            web:
              exposure:
                include: '*'
  3. 대시보드 보기
    • Admin 서버에 접속하면 애플리케이션의 상태와 메트릭이 시각화된 대시보드 제공.

3. Elastic Stack (ELK)

  • Actuator 로그와 메트릭 데이터를 Elasticsearch로 전송하고, Kibana로 시각화.

설정 방법:

  1. Actuator 데이터를 Logstash로 전송:
    • Logstash를 통해 Actuator 데이터 및 로그를 수집.
    • logstash.conf에 Actuator 엔드포인트를 입력:
      input {
        http {
          url => "http://localhost:8080/actuator/metrics"
        }
      }
      output {
        elasticsearch {
          hosts => ["http://localhost:9200"]
        }
      }
  2. Kibana에서 시각화
    • Elasticsearch 데이터를 Kibana 대시보드로 시각화.

728x90

요약

  • Actuator는 데이터 제공 역할만 합니다.
  • Prometheus + Grafana 또는 Spring Boot Admin을 설치하면 시각적인 대시보드를 쉽게 구현할 수 있습니다.
  • 작은 프로젝트는 Spring Boot Admin, 대규모 시스템은 Prometheus + Grafana를 추천합니다.
728x90
728x90