최대 1 분 소요

스프링 프로젝트에 Prometheus를 데이터 수집을 위해 적용 후 localhost:9090 [Status - Targets]에서 Error 탭에
다음 에러가 발생했다.

Get “http://host.docker.internal:8080/login;…”: stopped after 10 redirects

프로젝트에서 접근 권한이 없는 사용자는 인증하기 전까지 login 페이지로 강제로 이동하도록 설정했어서 /login으로 redirect
를 반복하는 상황이었고 때문에 위와 같은 에러가 발생한 것이다.

prometheus.yml

Prometheus에서 targets에 적용될 설정 파일 내용으로, 다음과 같이 설정해줬었다.

global:
  scrape_interval: 10s 
  evaluation_interval: 1m 

  external_labels:
    monitor: 'fittering-server-monitor'

rule_files:
# - "first.rules"
# - "second.rules"
        
scrape_configs:
  - job_name: 'monitoring-app'
    metrics_path: '/actuator/prometheus' #이 경로를 통해 데이터 수집
    static_configs:
      - targets: ['host.docker.internal:8080']

scrape_configs.metrics_path에서 데이터를 수집하기 때문에 스프링 시큐리티 설정 파일에서 다음 경로를 허용해줬어야 했다.

@Bean
SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
  http
          .authorizeHttpRequests((authorizeHttpRequests) ->
                  authorizeHttpRequests
                          .requestMatchers("/actuator/prometheus/**").permitAll()
                          .anyRequest().authenticated()
          )
  ...
}


이후 StatusUP으로 변경되는걸 확인할 수 있었다.

prometheus_targets_sample

카테고리:

업데이트:

댓글남기기