22 Ocak 2021 Cuma

SpringBoot Admin Server - Grafana Alternatifi

Giriş
Şeklen şöyle. Her microservice Spring Boot Admin (SBA) sunucusuna kaydolur. Daha sonra SBA sunucusu actuator endpoint'leri kullanarak sorgulama yapar.


Server
Giriş
Şu satırı dahil ederiz
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-server</artifactId>
</dependency>
1. @EnableAdminServer anotasyonu gerekir. Şöyle yaparız
@EnableAdminServer
@SpringBootApplication
public class SpringBootAdminServerApplication {

  public static void main(String[] args) {
    SpringApplication.run(SpringBootAdminServerApplication.class, args);
  }
}
2. Eğer Client tarafında Spring Security varsa, client'a login olmak için şöyle yaparız. Böylece client actuator noktaları izlenebilir.
spring.security.user.name=...
spring.security.user.password=... spring.boot.admin.client.instance.metadata.user.name=${spring.security.user.name} spring.boot.admin.client.instance.metadata.user.password=${spring.security.user.password}
3. Hangi actuator noktalarının izleneceğini belirtiriz
Örnek
Şöyle yaparız
spring.boot.admin.routes.endpoints=env, metrics, trace, jolokia, info, configprops
Server client'lardan herhangi birisi "down" durumuna geçerse e-posta gönderebiliyor. Bir örnek burada

4. Eğer bildirim almak istersek şöyle yaparız. Bir uygulama çökerse bize e-posta gönderir.
spring.mail.host=localhost
spring.mail.port=25
spring.mail.properties.mail.transport.protocol=smtp

spring.boot.admin.notify.mail.to=receiver@example.com
spring.boot.admin.notify.mail.from=sender@example.com

Ekranlar
Admin sunucusunda "http://127.0.0.1:8080/wallboard" adresine gideriz
Menüler şöyle. Menüleri gösteren şekiller burada

1. Application Menüsü
Açıklaması şöyle
Shows all registered applications. 
1.1 Application /Insights
Alt sekmeler şöyle
  Details
  Metrics
  Environment
  Beans
  Configuration Properties
  Scheduled Tasks

1.1.1. Application/Details
Şeklen şöyle


Örnek
Bir servisin ekranı şöyle. Metadata, Process, Garbage Collection Pauses, Memory:Heap,Memory:Non heap Threads başlıkları görülebilir.

1.1.2 Application /Metrics
Açıklaması şöyle
In the metrics section, we will be able to have at a glance configured different measurements that allow us to check how the application is working.

Şeklen şöyle


1.2 Application /Loggers
Açıklaması şöyle
One of the more excellent options for me is changing the doping level of the application without restarting it. To do this, go to Loggers and select the blogger we want to change.
Şeklen şöyle


1.3 Application /JVM
Açıklaması şöyle
In the JVM tab, you can get Heap and Thread Dump. It is possible to download Thread Dump.
1.3 Application /JVM/JMX
Açıklaması şöyle
To add interaction with JMX beans, we need to add the org.jolokia.jolokia-core dependency and the spring.jmx.enabled property in the application.properties configuration file. This way we will have read access to the attributes of the beans and in some cases even write access. In addition, we will also be able to make invocations on the methods of these beans.
Şeklen şöyle



1.4 Application /Mappings
Açıklaması şöyle
The Mappings tab will display all endpoints registered in the dispatcher servlet.
1.5 Application /Caches
Açıklaması şöyle
The Caches tab will display the application cache.
2. Journal Sekmesi
Açıklaması şöyle
The Journal will display various system events, such as when an application has written or changed its status.

Client
Giriş
Şu satırı dahil ederiz
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-client</artifactId>
</dependency>
Server'ın adresini belirtmek için şöyle yaparız
spring.boot.admin.client.url=http://localhost:9090
Server' tarafında görüntülenecek uygulama ismini belirtmek istersek şöyle yaparız
spring.boot.admin.client.instance.name=...
Tüm actuator endpoint'leri etkinleştirmek için şöyle yaparız
management.endpoints.web.exposure.include=*
management.endpoint.health.show-details=always
Eğer Server tarafında Spring Security varsa login olmak için şöyle yaparız
spring.boot.admin.client.username=...
spring.boot.admin.client.password=...











Hiç yorum yok:

Yorum Gönder