스프링 부트 Admin 사용하기# 스프링 부트 Admin은 관리용 프론트엔드 웹 애플리케이션이며, 액추에이터 엔드포인트를 사람들이 더 많이 소비할 수 있게 한다. 액추에이터 엔드포인트는 두 개의 주요 구성 요소로 나뉜다. Admin 서버 생성하기# 일반적으로 Admin 서버는 독립 실행형 애플리케이션으로 사용된다. 의존성 추가 구성 클래스에 @EnableAdminServer
애노테이션 추가 아래 사진에서는 현재 0개 애플리케이션의 0개의 인스턴스가 등록되어 있는 것이다. Admin 클라이언트 등록하기# 두 가지 방법각 애플리케이션이 자신을 Admin 서버에 등록 Admin 서버가 유레카 서비스 레지스트리를 통해서 서비스를 찾기 각 애플리케이션이 자신을 Admin 서버에 등록의존성 추가 spring.boot.admin.client.url
속성에 클라이언트가 자신을 등록할 수 있는 Admin 서버의 위치를 구성한다.spring.application.name
속성으로 마이크로서비스의 이름을 알려준다. Admin 서버가 유레카 서비스 레지스트리를 통해서 서비스를 찾기Admin 서버에 의존성만 추가하면 기본적으로 동작한다. 기본적으로 admin 서버가 유레카 클라이언트이지만, 유레카 서비스로도 등록하기 위해서는 eureka.client.register-with-eureka
속성을 false로 설정하면 된다. 다른 유레카 클라이언트처럼 유레카 서버가 기본 호스트와 포트에서 리스닝하지 않을 때는, eureka.client.service-url.defaultZone
속성에 구성할 수 있다. Admin 서버 살펴보기# 모든 스프링 부트 애플리케이션이 Admin 서버 클라이언트로 등록하면 각 애플리케이션 내부에서 생기는 풍부한 정봅를 Admin 서버가 볼 수 있다.애플리케이션의 건강 상태 정보와 일반 정보 Micrometer를 통해 발행되는 메트릭과 /metrics 엔드포인트 환경 속성 패키지와 클래스의 로깅 레벨 스레드 추적 기록 정보 HTTP 요청의 추적 기록 감사 로그 애플리케이션의 건강 상태 정보와 일반 정보 보기# /health, /info 엔드포인트를 통해 액추에이터가 제공하는 건강 상태 정보와 일반 정보가 있다. JVM으로부터 받은 애플리케이션 정보의 통계를 볼 수있으며, 여기에는 메모리와 스레드를 보여주는 그래프들과 프로세스 정보가 포함된다. 핵심 메트릭 살펴보기# /metrics 엔드포인트로부터 제공되는 정보는 애플리케이션에서 생성되는 메트릭이다. 처음에는 Metrics 탭에서 어떤 메트릭 정보도 보여주지 않는다.하나 이상의 관찰점(watch)을 설정하면 이것에 관련된 정보를 보여준다. 아래 사진에서는 http.server.requests
부류의 메트릭들에 대해 두 개의 관찰점을 설정하였다./ingredients 엔드포인트에 대해 GET 요청이 될 때마다 관련 메트릭을 알려주며, 여기서 반환된 상태 코드는 200이다. HTTP 400 응답을 발생시키는 요청이 있을 때마다 관련 메트릭을 알려주게끔 설정하였다. 이 메트릭들은 실시간 데이터를 보여준다는 것이 장점이다. 환경 속성 살펴보기# /env 엔드포인트는 스프링 부트 애플리케이션의 모든 속성 근원(JVM 시스템, 명령행 인자, 환경 변수 등)으로부터 해당 애플리케이션에 사용할 수 있는 모든 환경 속성을 반환한다. 수백 개의 속성이 나타날 수 있으므로, 보려는 속성 내역을 이름이나 값으로 필터링할 수 있다. 로깅 레벨을 보거나 설정하기# /loggers 엔드포인트는 실행 중인 애플리케이션의 로깅 레벨을 파악하거나 변경하는 데 도움이 된다. 스레드 모니터링# /threaddump 엔드포인트는 애플리케이션에서 실행 중인 스레드의 상태 스냅샷을 제공한다. 적시에 스냅샷을 캡처하는 /threaddump 엔드포인트와 다르게, 각 스레드의 상태를 보여주는 Threads 탭의 막대 그래프는 지속적으로 변경된다.스레드가 실행 중이면 초록색으로, 대기 중이면 노란색이 되며, 중단되면 빨간색이 된다. HTTP 요청 추적하기# /httptrace 엔드포인트로부터 받은 데이터를 보여준다. 요청 시점에 100개의 최근 HTTP 추적 기록을 반환하고, 탭에 머무는 동안 추적이 계속된다.초록색: 성공적인 요청 노란색: 클라이언트 에러 빨간색: 서버 에러 아래쪽에는 추적 이력 데이터가 나타나며, 애플리케이션에서 받은 각 요청을 한 행으로 보여준다.원하는 행을 클릭하면 해당 행이 확장되면서 요청 헤더와 응답 헤더를 포함하는 해당 요청에 관한 추가 정보를 보여준다. Admin 서버의 보안# 액추에이터에 보안이 중요하듯이, Admin 서버에도 보안이 중요하다. Admin 서버가 해당 엔드포인트에 접근하기 위해 인증 정보를 알아야 한다. Admin 서버에 로그인 활성화하기# 액추에이터로 인증하기# 액추에이터 엔드포인트가 인증 정보를 제공하지 않으면 Admin 서버도 액추에이터 엔드포인트를 소비할 수 없게 된다. Admin 서버의 클라이언트 애플리케이션이 자신의 인증 정보를 Admin 서버에 제공하는 방법 2가지클라이언트 애플리케이션이 직접 Admin 서버에 등록할 때 직접 제공 유레카를 통해 발견되게 함으로써 자신의 인증 정보를 함께 제공 클라이언트 애플리케이션이 직접 Admin 서버에 등록할 때 직접 제공spring.boot.admin.client.instance.metadata.user.name
과 spring.boot.admin.client.instance.metadata.user.password
속성을 각 클라이언트에 지정하면 Admin 서버에 등록할 때 함께 제공된다. 유레카를 통해 발견되게 함으로써 자신의 인증 정보를 함께 제공eureka.instance.metadata-map.user.name
과 eureka.instance.metadata-map.user.password
속성을 지정하면 된다. Please enable JavaScript to view the comments powered by Disqus. comments powered by