Spring Boot Uygulamalarını İzleme ve Loglama

İzleme ve Loglama Nedir?
İzleme (monitoring) ve loglama, uygulamanızın performansını, kullanılabilirliğini ve genel sağlığını takip etmek için hayati öneme sahiptir. Bu süreçler, uygulamanızın düzgün çalışmasını sağlar ve potansiyel sorunları erken aşamada tespit etmenize yardımcı olur.
Spring Boot ile İzleme ve Loglama Araçları
Spring Boot, izleme ve loglama için çeşitli araçlar sunar. Bu yazıda, Spring Boot Actuator, Prometheus ve Grafana kullanarak uygulamanızı nasıl izleyeceğinizi ve loglayacağınızı ele alacağız.
1. Spring Boot Actuator
Spring Boot Actuator, uygulamanızın durumunu izlemek ve yönetmek için bir dizi endpoint sağlar. Actuator’ı kullanarak uygulamanızın metriklerini, sağlık durumunu ve diğer önemli bilgileri alabilirsiniz.
Actuator Bağımlılığını Ekleme
pom.xml
dosyanıza Actuator bağımlılığını ekleyin:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
Actuator Endpoint’lerini Etkinleştirme
application.properties
dosyasına aşağıdaki ayarları ekleyin:
management.endpoints.web.exposure.include=*
management.endpoint.health.show-details=always
Bu ayarlar, tüm Actuator endpoint’lerini etkinleştirir ve sağlık durumuyla ilgili ayrıntıları gösterir.
2. Prometheus ile İzleme
Prometheus, zaman serisi verilerini toplayan ve sorgulayan bir izleme sistemidir. Spring Boot Actuator ile entegre ederek uygulamanızın metriklerini Prometheus’a gönderebilirsiniz.
Prometheus Bağımlılığını Ekleme
pom.xml
dosyanıza Prometheus bağımlılığını ekleyin:
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-prometheus</artifactId>
</dependency>
Bu ayarlar, Prometheus metriklerini etkinleştirir ve /actuator/prometheus
endpoint'inde yayınlar.
3. Grafana ile Görselleştirme
Grafana, Prometheus verilerini görselleştirmek için kullanılan güçlü bir araçtır. Grafana’yı kullanarak metriklerinizi görsel grafikler ve panolarla takip edebilirsiniz.
Prometheus ve Grafana Kurulumu
Prometheus ve Grafana’yı Docker kullanarak kolayca kurabilirsiniz. docker-compose.yml
dosyanıza aşağıdaki konfigürasyonu ekleyin:
version: '3'
services:
prometheus:
image: prom/prometheus
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml
ports:
- "9090:9090"
grafana:
image: grafana/grafana
ports:
- "3000:3000"
Prometheus Konfigürasyon Dosyası
prometheus.yml
dosyasını oluşturun ve aşağıdaki içeriği ekleyin:
global:
scrape_interval: 15s
scrape_configs:
- job_name: 'spring-boot'
metrics_path: '/actuator/prometheus'
static_configs:
- targets: ['host.docker.internal:8080']
Bu konfigürasyon, Prometheus’un Spring Boot Actuator metriklerini toplamasını sağlar.
4. Loglama
Spring Boot uygulamalarınızda loglama yapmak için SLF4J ve Logback kullanabilirsiniz. Logları dosyalara, konsola veya merkezi bir log yönetim sistemine gönderebilirsiniz.
Logback Konfigürasyonu
src/main/resources/logback-spring.xml
dosyasını oluşturun ve aşağıdaki içeriği ekleyin:
<configuration>
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<root level="info">
<appender-ref ref="console" />
</root>
</configuration>
Bu konfigürasyon, logları konsola yazdırır.
Sonuç
Bu makalede, Spring Boot uygulamalarınızı izlemek ve loglamak için Spring Boot Actuator, Prometheus ve Grafana gibi araçları nasıl kullanacağınızı öğrendiniz. Bu araçlar, uygulamanızın performansını ve sağlığını izlemek için güçlü bir temel sağlar. Bir sonraki yazımızda, Spring Boot uygulamalarınızı güvence altına almayı ve güvenlik en iyi uygulamalarını ele alacağız.