묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 부트 - 핵심 원리와 활용
섹션 8. 엑츄에이터 - http 요청 응답 관련 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]안녕하세요.엑츄에이터 Http 요청 응답 관련 부분에서 강의 마지막 부분에이 기능은 매우 단순하고 기능에 제한이 많기 때문에 개발 단계에서만 사용하고, 실제 운영 서비스에서는 모니터 링 툴이나 핀포인트, Zipkin 같은 다른 기술을 사용하는 것이 좋다.라고 하셨는데 이 말씀은 운영 서비스에 직접 http 요청으로 조회하기보다는 모니터링 툴로 연동해서 모니터링 하는것을 권장한다는 말씀이실까요?
-
미해결스프링 부트 - 핵심 원리와 활용
스프링 액츄에이터 build info 표시 안 됨 문의드립니다.
안녕하세요.김영한 선생님 강의를 수강하며 따라가던 중 액츄에이터 수업을 듣는 부분까지 왔습니다.엑츄에이터에서 제공하는 엔드포인트 중 build에 대한 정보를 노출하는 부분이 있는데, 해당 부분에서 문제가 발생해 진도를 못나가고 있습니다.수업과 같이, build.gradle에 해당 코드를 추가했습니다..... springBoot { buildInfo() }코드 추가 후 build하여 프로젝트 폴더의 build/resources/main/META-INF/build-info.properties 파일이 생성된 것을 확인했고, 내용은 다음과 같습니다.build.artifact=actuator build.group=hello build.name=actuator build.time=2023-06-01T08\:10\:08.314770Z build.version=0.0.1-SNAPSHOT마지막으로, 현재 application.yml 파일에 설정한 내용입니다.management: endpoints: web: exposure: include: "*" info: env: enabled: true info: app: name: hello-actuator company: yh혹시 제가 잘못 이해하고, 설정한 것이 있을까요..?도움을 구합니다 ㅜㅜ
-
미해결스프링 부트 - 핵심 원리와 활용
Actuator , gradle-git-properties plugin remote build 문의.
안녕하세요aws code pipeline를 통해서remote build를(code build) 통해 docker image를 배포하여 사용중인데요.로컬에서는 .git폴더를 도커 카피 파일에 추가하여 정상적으로 이미지 푸시가 완료되는것까지확인하였는데, 원격지에서는 .git 폴더가 없으니 인식이 안되는것 같은데이런 경우 원격지에서 com.gorylenko.gradle-git-properties plugin을 사용하여actuator 내에 git 정보를 포함시키고 싶은 경우 어떻게 해야하나요??저장소는 git hub private repository를 사용중입니다.
-
해결됨스프링 부트 - 핵심 원리와 활용
액츄에이터 - 애플리케이션 정보의 build 출력 질문입니다.
(환경 : Windows 10, Java 17, SpringBoot 3.0.2)안녕하세요. 액츄에이터 - 애플리케이션 정보(info)에서 build 정보를 출력하는 것 관하여 질문이 있습니다.build.gradle에 buildInfo()를 추가하고 애플리케이션을실행하면 resources/main/META-INF/build-info.properties 파일을 확인할 수 있다고 하셨는데, 저는 만들어지지 않았습니다. (META-INF 디렉토리 자체가 없었습니다)build and run이 IntelliJ로 되어 있어서 그런 것 같아 Gradle로 변경하여 실행하니 에러가 발생했습니다. finished with non-zero exit value 1우선 해당 경로를 확인하니 build-info.properties가 생성되어 있었습니다. 생성된 것을 확인하고, 에러를 해결하기 위해 build and run을 IntelliJ로 바꾸고 실행했습니다. info를 요청하니 build 정보는 여전히 출력되지 않았습니다. 이 문제를 어떻게 해결할 수 있을까요?항상 좋은 강의 감사합니다.
-
해결됨스프링 부트 - 핵심 원리와 활용
액츄에이터 URL 경로에 스프링 인터셉터 적용 문제
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/)[질문 내용]안녕하세요!수업 마지막에 URL 경로에 인증 설정을 하는 방법으로 서블릿 필터, 스프링 인터셉터, 스프링 시큐리티를 안내해 주신걸 보고/actuator URL 경로에 인증 설정을 하려고 인터셉터를 생성해서 적용해보고 있었습니다.아무리 해도 적용이 안되어서 이리 저리 찾아보니..actuator 엔드포인트의 경우에는 Dispatcher를 통하지 않는 모양이더라고요. 그래서 인터셉터도 동작하지 않는 모양인데, 저는 기존에 관리자 인증 용도로 만들어둔 인터셉터가 있어서 그걸 활용하고 싶어서 어떻게든 등록을 하려고 했습니다.https://github.com/spring-projects/spring-boot/issues/11234여기 있는 이슈를 참고해보면, 결론적으로는 인터셉터가 아닌 필터를 사용하라고 하는데요.그래도 선생님께서 수업에서 스프링 인터셉터를 언급해 주셔서 혹시나 actuator 경로에 인터셉터를 적용해서 사용하는 방법이 있는지, 궁금합니다 아래와 같이 WebMvcEndpointManagementContextConfiguration을 확장 해서 인터셉터를 추가하고, 의도대로 작동하는 것 까지는 확인을 하긴 했는데 아무래도 좋은 방법은 아닌 것 같아서요. 혹시 방법이 없을까요? @Configuration class ActuatorConfig( private val authService: AuthService, private val jwtConfig: JwtConfig, @Value("\${server.ssl.enabled}") private val isSecure: Boolean ) : WebMvcEndpointManagementContextConfiguration() { override fun webEndpointServletHandlerMapping( webEndpointsSupplier: WebEndpointsSupplier?, servletEndpointsSupplier: ServletEndpointsSupplier?, controllerEndpointsSupplier: ControllerEndpointsSupplier?, endpointMediaTypes: EndpointMediaTypes?, corsProperties: CorsEndpointProperties?, webEndpointProperties: WebEndpointProperties?, environment: Environment? ): WebMvcEndpointHandlerMapping { val webEndpointServletHandlerMapping = super.webEndpointServletHandlerMapping( webEndpointsSupplier, servletEndpointsSupplier, controllerEndpointsSupplier, endpointMediaTypes, corsProperties, webEndpointProperties, environment ) webEndpointServletHandlerMapping.setInterceptors( JwtAuthInterceptor( authService, jwtConfig.tokenValidityInSeconds, isSecure ) ) webEndpointServletHandlerMapping.setInterceptors(AdminAuthInterceptor()) return webEndpointServletHandlerMapping } }
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
actuator 적용 시 shutdown 문제
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요. 강의 잘 보고 있습니다. 다름이 아니라 actuator를 사용하여 환경 변수를 적용하는 과정에서 서비스가 shutdown 후 재등록 되는데 정상적인 건가요? actuator/refresh 호출 시 서비스 로그 -> DiscoveryClient - Shutting down DiscoveryClient ... TimedSupervisorTask - task supervisor shutting down, can't accept the task DiscoveryClient - Unregistering ... DiscoveryClient - DiscoveryClient_서비스명 deregister status: 200 DiscoveryClient - Completed shut down of DiscoveryClient 실제 유레카서버 확인 시 해당 서비스 인스턴스아이디도 변경됩니다. 데이터 유실 없이 graceful shutdown 보장 되는 건가요?
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
운영 환경 actuator 노출 여부
운영환경에서 actuator endpoint를 노출 시킬 수 있을지 문의 드립니다. 개발 환경에서는 상관 없겠지만, 실제 서비스 운영 환경에서 actuator 관련 end point url을 노출시키면 보안 관련 이슈 및 문제로 인해 노출시키지 못하는걸로 알고 있는데 해당 운영 환경에서 가능한 것인지 문의 드립니다. 추가로 운영 환경에서는 actuator end point 노출에 대한 안전 장치가 별도 구성되어야 되는지 문의 드립니다.