[Prometheus] Get “http://host.docker.internal:8080/login”: stopped after 10 redirects
스프링 프로젝트에 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()
)
...
}
이후 Status
가 UP
으로 변경되는걸 확인할 수 있었다.
댓글남기기