Spring Boot Actuator

18 Aralık 20242 dk okuma

Spring Boot Actuator

Spring Boot Actuator, uygulamalarınızı izlemek ve yönetmek için prodüksiyon seviyesinde hazır özellikler sunar. Bu rehber, Actuator'ın yeteneklerini, nasıl etkinleştirileceğini ve endpointlerin nasıl güvenlik altına alınacağını incelemektedir.


🌟 Neden Spring Boot Actuator Kullanılır?

Spring Boot Actuator geliştiricilere şunları sağlar:

  • Uygulama sağlığını izleme
  • Metrik ve bilgi toplama
  • Operasyonel görevler için yönetim endpointlerini yayınlamış olma

🌟 Gereksinimler

📋 Aşağıdaki şartların karşılandığından emin olun:

  • Java Development Kit (JDK) 17+
  • 📦 Maven veya Gradle yüklenmiş olmalı
  • 🔤 Bir Java IDE (IntelliJ IDEA, Eclipse vb.)

🛠️ Adım 1: Bağımlılıkları Ekleyin

Actuator'ı etkinleştirmek için, projenize aşağıdaki bağımlılıkları ekleyin:

  • Maven:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency>
  • Gradle:
implementation 'org.springframework.boot:spring-boot-starter-actuator'

📋 Adım 2: Actuator Endpointlerini Etkinleştirin

Varsayılan olarak, Actuator uygulama bilgilerinin sağlanması için çeşitli endpointler yayınlar. Bu endpointleri application.properties veya application.yml dosyasında etkinleştirebilirsiniz.

Örnek Konfigürasyon:

management.endpoints.web.exposure.include=health,info,metrics management.endpoint.health.show-details=always

📖 Adım 3: Actuator Endpointlerini Kullanmaya Başlayın

İşte sık kullanılan Actuator endpointleri:

  • /actuator/health: Uygulama sağlık durumu sağlar.
  • /actuator/info: Uygulama metadatasını gösterir.
  • /actuator/metrics: Uygulama performans metriklerini sunar.

Bu endpointlere bir tarayıcı veya cURL gibi API araçları kullanarak erişebilirsiniz.

Örnek:

curl -X GET http://localhost:8080/actuator/health

📘 Adım 4: Actuator Endpointlerini Özelleştirin

Actuator endpointlerini ihtiyaçlarınıza göre özelleştirin. Örneğin, /actuator/info endpointi için ek metadata tanımlayabilirsiniz:

info.app.name=Benim Uygulamam info.app.version=1.0.0 info.app.description=Spring Boot Actuator Örneği

🔒 Adım 5: Actuator Endpointlerini Güvenli Hale Getirin

Prodüksiyon ortamlarında, Actuator endpointlerinin güvenli hale getirilmesi önemlidir. Spring Security kullanarak erişimi sınırlayabilirsiniz.

package com.example.demo.config; import org.springframework.context.annotation.Configuration; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.web.SecurityFilterChain; @Configuration public class SecurityConfig { public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { http .authorizeHttpRequests() .requestMatchers("/actuator/**").hasRole("ADMIN") .anyRequest().authenticated() .and() .httpBasic(); return http.build(); } }
package com.example.demo.config import org.springframework.context.annotation.Bean import org.springframework.context.annotation.Configuration import org.springframework.security.config.annotation.web.builders.HttpSecurity import org.springframework.security.web.SecurityFilterChain @Configuration class SecurityConfig { @Bean fun securityFilterChain(http: HttpSecurity): SecurityFilterChain { http .authorizeHttpRequests() .requestMatchers("/actuator/**").hasRole("ADMIN") .anyRequest().authenticated() .and() .httpBasic() return http.build() } }

▶️ Uygulamayı Çalıştırma

Uygulamayı aşağıdaki komutla çalıştırın:

./mvnw spring-boot:run

Actuator endpointlerine erişim sağlamak için:

http://localhost:8080/actuator/health

🧪 API'ı Test Edin

Actuator endpointlerini cURL veya tarayıcı kullanarak test edebilirsiniz:

  • Health Endpoint:
curl -X GET http://localhost:8080/actuator/health
  • Info Endpoint:
curl -X GET http://localhost:8080/actuator/info

Spring Boot Actuator, uygulamalarınızı izleme ve yönetmeyi basitleştirir. Bu rehberde, Actuator endpointlerini etkinleştirme, özelleştirme ve güvenlik altına alma adımlarını ele aldık.