ABOUT ME

-

오늘
-
어제
-
-
  • SpringBoot - Actuator JMX, HTTP
    Back-end/Spring 2020. 6. 28. 00:16

    Actuator

    이전 포스팅에 이어서 Actuator를 사용하는 방법에 대해 계속 학습해 보겠습니다.

    JMX

    JConsole

    JConsole은 자바에서 지원하는 JMX입니다.
    참고자료 : 공식문서

    jconsole

    터미널에서 jconsole을 입력합니다.

    Actuator

    jconsole을 입력하면 위와같은 창이 뜹니다.

    Actuator

    현재 로컬 상태이니 해당 프로젝트를 클릭하고 Connect합니다.

    Actuator

    SSL을 적용하지 않은 상태이므로 Insecure connection을 클릭합니다.

    Actuator

    접속하면 여러가지 정보들을 확인 할 수 있습니다.

    Endpoints를 확인하기 위해 MBeans에서 애플리케이션을 확인합니다.

    Actuator

    빈을 확인하기 위해 누른 창에서 도저히 사람의 눈으로 확인할 수 없는 긴 영어가 출력됩니다.
    전 이걸 읽느니 차라리 죽음을 택하겠습니다.

    저같은 개발자가 많았는지 이를 대응하기 위해 VisualVM이라는 툴이 나왔습니다.

    VisualVM

    기존에는 java에서 제공을 했었는데 java10 부터 제공되지 않아서 별도로 설치해야합니다.

    다운로드 : 홈페이지

    Actuator

    위 주로소 들어가 각 OS에 맞는 것을 설치합니다.

    Actuator

    실행을 시키면 좌측에 애플리케이션과 우측에 정보들이 나와있습니다.
    jconsole의 가독성에 비하면 많이 발전된 모습이 보입니다.

    기본적으로 VisualVM은 MBean이 없기 때문에 Plugin을 설치해야합니다.

    MBean Plugin 설치

    Actuator

    Tools - Plugins을 클릭합니다.

    Actuator

    Available Plugins에서 MBeand을 검색 후 - VisualVM 클릭 - install을 클릭하여 설치합니다.

    Actuator

    아까와 동일한 MBeans를 보실 수 있습니다.

    HTTP

    기존 HTTP를 통해 확인했을 땐 health와 info를 제외한 대부분의 Endpoint가 ​비공개​ 상태였습니다.
    이 비공개 상태를 공개 옵션을 설정해 모두 확인할 수 있습니다.

    management.endpoints.web.exposure.include

    management.endpoints.web.exposure.include=*

    위 설정을 application.properties에 하게되면 /actuator로 접속했을 시 전부 출력하게 됩니다.

    Actuator

    여기서 전체 정보 대신 특정 정보를 출력하고 싶다면 Endpoints명을 입력해서 선택 출력도 가능합니다.

    하지만 이런 정보들이 노출되면 보안이슈가 있으므로 SpringSecurity를 통해서 Admin만 접근하도록 할 필요성이 있습니다.
    그 방법은 다음 포스팅에서 이어서 학습하겠습니다.

    'Back-end > Spring' 카테고리의 다른 글

    SpringBoot - Actuator Admin  (0) 2020.06.28
    SpringBoot - Actuator의 개념  (0) 2020.06.28
    SpringBoot - RestClient 커스텀  (0) 2020.06.28
    SpringBoot - RestClient  (0) 2020.06.28
    SpringBoot - Security 커스터마이징  (0) 2020.06.28

    댓글