Spring Boot Actuator λ Spring Boot Application μ μνλ₯Ό λͺ¨λν°λ§νκ³ κ΄λ¦¬νκΈ° μν λꡬμ΄λ€.
Actuator λ₯Ό μ¬μ©νκ² λλ©΄ νΉμ endpoint λ€μ΄ νμ±νλλ€. endpoint λ₯Ό νμ±ννλ κ²μ expose νλ€, μ¦ λ ΈμΆμν¨λ€λΌκ³ λ νννλ€. λͺ¨λ endpoint μ λν λͺ©λ‘κ³Ό μ 보λ Spring 곡μ λ¬Έμ μμ νμΈκ°λ₯νλ€.
Accessing Endpoints
POM νμΌμ dependency λ₯Ό μΆκ°ν¨μΌλ‘μ¨ Spring Boot Actuator λ₯Ό μ¬μ©ν μ μμΌλ©°, κΈ°λ³Έμ μΌλ‘λ /health endpoint λ§ νμ±νλμ΄ μλ€. λ€λ₯Έ endpoint νμ±νλ₯Ό μν΄μλ application.properties νμΌμ λ€μκ³Ό κ°μ΄ μΆκ°ν΄μ£Όμ΄μΌ νλ€.
λ§μ½ /info endpoint λ₯Ό μΆκ°νκ³ , ν΄λΉ endpoint μ νκ²½λ³μ μ 보λ₯Ό ν¬ν¨νλλ‘ νκ³ μΆμΌλ©΄ λ€μκ³Ό κ°μ΄ μΆκ°νλ©΄ λλ€. μλλ©΄ wildcard λ₯Ό μ¬μ©νμ¬ λͺ¨λ endpoint λ€μ expose ν μλ μλ€.
management.endpoints.web.exposure.include=health,info
management.info.env.enabled=true
# expose all endpoints
management.endpoints.web.exposure.include=*κ·Έλ¬λ ν΄λΉ endpoint λ€μ public νκ² λ³΄μ¬μ£Όλ κ²μ 보μ κ΄μ μμ μ¬λ°λ₯΄λ€κ³ λ ν μ μκΈ° λλ¬Έμ, νΉμ κΆνμ κ°μ§ client μ μμ²μλ§ μλ΅νλ μμΌλ‘ ꡬμ±νκ±°λ μμ νΉμ endpoint μ λνμ¬λ λΉνμ±ννλ κ²μ΄ λ°λμ§ν κ²μ΄λ€.
μΆκ°μ μΌλ‘ ν΄λΉ κΈ μμ λΆνκ° μ‘΄μ¬νλ Server System μμ Acutator κ° Health Check λ₯Ό νλ κ³Όμ κ³Ό μ΄μ λν μ΄μλ₯Ό λ€λ£¨κ³ μμ΄ μ£ΌκΈ°μ μΌλ‘ μ΄ν΄λ³Ό νμκ° μλ€.
Accessing Endpoints - Test Result

/health, /info endpoint λ§μ μΆκ°ν μ΄νμ Application μ μ€ννκ³ log λ₯Ό νμΈν΄λ³΄λ©΄ μμ κ°μ΄ 2 κ°μ endpoints κ° exposed λμλ€λ κ²μ νμΈν μ μλ€.

wildcard λ₯Ό μ΄μ©νμ¬ λͺ¨λ endpoint λ₯Ό μΆκ°νμ κ²½μ°μλ μμ κ°μ΄ 14κ°μ endpoint λ€μ΄ exposed λ κ²μ λ³Ό μ μλ€.
Securing Endpoints
μμμ λ΄€λ―μ΄ λͺ¨λ endpoint λ₯Ό expose νλ κ²μ μμ νμ§ μμ μ μλ€. λ¨Όμ κ°λ¨νκ² νΉμ endpoint λ₯Ό λΉνμ±ννλ λ°©λ²μ λνμ¬ μμ보μ.
management.endpoints.web.exposure.exclude=health,infoμμ κ°μ΄ μ λ ₯ν΄μ€μΌλ‘μ¨ κ°λ¨νκ² νΉμ endpoints λ₯Ό λΉνμ±νν μ μλ€. κ·Έλ¬λ ν΄λΉ λ°©λ²μ μ΄λ λꡬλ ν΄λΉ endpoint μ μ κ·Όν μ μκ² λλ€.
μ΄μ login μ λ°©λ²μ ν΅νμ¬ κ²μ¦μ κ±°μΉ λ€, ν΄λΉ μ¬μ©μμκ² νΉμ endpoint μ λν μ κ·Όμ νμ©νκ² νλ λ°©λ²μ΄ μλ€. λ°λ‘ spring-boot-starter-security λ₯Ό μ΄μ©νλ κ²μ΄λ€.
/actuator/bean endpoint μ λν μ κ·Όμ κ΄λ¦¬νλ€κ³ ν΄λ³΄μ. Spring Security λ₯Ό μ¬μ©νκ² λλ©΄ Spring Security λ ν΄λΉ endpoint μ μ κ·Όνλ μ¬μ©μμκ² login promt λ₯Ό λΆμ¬νλ€.
default user name μ user μ΄κ³ , default password λ console logs μμ νμΈν μ μλ€. κ·Έλ¬λ μ΄λ€μapplication.properties νμΌμ ν΅νμ¬ overriding ν μ μμΌλ©°, DB λ₯Ό μ¬μ©νμ¬ role μ κΈ°μ€μΌλ‘ ν μλ μκ³ , λ μνΈνλ₯Ό νμ¬ μ¬μ©ν μλ μλ€.
Securing Endpoints - Test Result
μ°μ POM νμΌμ spring-boot-starter-security λ₯Ό μΆκ°νκ³ Application μ μ€ννλ©΄ λ€μκ³Ό κ°μ log λ₯Ό νμΈν μ μλ€.

default password κ° λμ¨ κ²μ λ³Ό μ μκ³ , μλμλ κ°λ° λ¨κ³μμλ§ ν΄λΉ password λ₯Ό μ¬μ©νκ³ publication λ¨κ³μμλ update κ° νμνλ€λ λ©μΈμ§κ° μλ κ²μ μ μ μλ€.
# Use wildcard to expose all endpoints
management.endpoints.web.exposure.include=*
management.info.env.enabled=true
# Exclude individual endpoints with a comma-delimited list
management.endpoints.web.exposure.exclude=health,infoμ μν©μμ κ°κ° /beans μ /health endpoint μ μ κ·Όνμ λμ μ€μ server μλ΅μ λ€μκ³Ό κ°λ€.

μ°μ root endpoint λ₯Ό ν¬ν¨ν λͺ¨λ endpoint μ Spring Security κ° μ μ©μ΄ λκΈ° λλ¬Έμ, μμ κ°μ΄ /login endpoint λ‘ κ°μ redirection λλ κ²μ λ³Ό μ μλ€.
κΈ°μ‘΄μ endpoint λ€μ λνμ¬λ μΌμͺ½κ³Ό κ°μ΄ μ μμ μΌλ‘ μ κ·Όμ΄ κ°λ₯ν λͺ¨μ΅μ΄μ§λ§, exclude λ₯Ό ν΅νμ¬ μ μΈλ endpoint μ μ κ·Όν λμλ μ°μΈ‘κ³Ό κ°μ Whitelabel Error Page κ° λ³΄μ¬μ§λ λͺ¨μ΅μ΄λ€.