Springboot Admin nedir ? Nasıl kullanılır?

0 10,003

Merhaba arkadaşlar,

Bu yazımda springboot admin nedir ona değinip örneğini yapacağız. SpringBootAdmin, SpringBoot Applications’lerinizi yönetmek ve izlemek için basit bir web uygulamasıdır. Bütün servislerimiz, SpringBootAdmin servisimize (http yoluyla) kaydolur veya SpringCloud kullanılarak register olur .

Springboot admin’e daha detaylı değinmeden önce springboot actuator kütüphanesinin ne olduğunu açıklayalım.

Springboot Actuator  :  uygulama durumu , uygulamaya gelen ve giden http isteklerin verilerini , ram’de yaşayan sınıfların detayları ,  uygulamamızın versiyon bilgileri,  uygulamadaki logların kontrolü (INFO,DEBUG , ERROR),  ,uygulama konfigurasyonundaki parametrelerin neler olduğu ,sunucunun çevresel değişkenleri vs. gibi  kavramları bize http olarak kanal açarak sunan kütüphaneye denir.

Springboot admin’in kullanıcı arayüzü, SpringbootActuator’un  üstüne yazıldığı için Actuator da sunulan birçok özelliği  bize monitör etmemizi sağlayan Angular.js ile yazılmış bir web uygulamasıdır.

Springboot admin ne işe yarar anladıysak eğer şimdi bir örnek yapalım.  Kabaca ne yapacağız anlatayım , 3 tane springboot ile yazılmış uygulama yapacağız.  Admin Service , Eureka Service ve Customer service

Admin Service:              Bu uygulama  springboot admin uygulamamız olacak.
Eureka Service:             Tüm uygulamaların register olduğu eureka server’imiz.
Customer Service :       Bu uygulama bir rest servis ile request alacak ve aynı modeli response dönecek.

Not:   Yazılan kodlar ile ilgili açıklamaların bazıları dosyalara yorum satırı olarak eklenmiştir.

İlk önce Admin Service yazarak başlayalım. Projemiz maven projesidir. İlk olarak proje bağımlılıklarımızı pom.xml ‘e ekliyoruz.

pom.xml

Servisimizi ayağa kaldırırken sunucu ve servisimiz için gerekli propertyleri ekliyeceğimiz dosyamızı “resources” dizinimize ekleyelim.

application.properties

Sonrasında ise main sınıfımızı yazalım .

Application.java

Projemizi ayağa kaldırıp Eureka server ekranına bakalım. Eclipse için Run as > Run Configuration > Maven build > New diyerek çıkan ekranda Goals kısmına spring-boot:run yazarsanız proje sıkıntısız ayağa kalkacaktır veya klasik yöntem yazdıgımız servisi build ettikten sonra target dizinize çıkan jar dosyasına direk java -jar service-ismi.jar yazdığınızda servis ayağa kalkmış oalcaktır.
Servis ayağa kalktığında springboot admin web uygulaması ekranı çıktısı şöyle olacaktır.

Şimdi ise eureka-service ‘i yazmaya başlayalım.Bunu yazma sebebimiz  yukardada bahsetmiştik bütün servisler eureka servise register olması lazım ki springboot admin service   register olan servis listesini oradan çekebilsin. Eureka servis nedir daha detaylı öğrenmek istiyorsanız buradaki : https://bilisim.io/2017/07/10/microservice-ile-spring-boot-eureka-load-balancing/  isimli yazımıza bakabilirsiniz.

Maven projesi açıyoruz ve bağımlılıklarımızı ekliyoruz.

pom.xml

Sonrasında servisimizi ayağa kaldırırken sunucu ve servisimiz için gerekli propertyleri ekliyeceğimiz dosyamızı “resources” dizinimize ekleyelim.

application.properties

Sonrasında ise projemiziin çalışması için gerekli main sınıfımızı yazıyoruz.

Application.java

 

Şimdi ise Customer Service ‘i yazalım. Bu uygulamada restful servis bir tane endpointimiz var , bize post ettiğimiz customer nesnesini editleyip geri response olarak dönderiyor. Bu arada biz log basıyoruz konsola bunu şunun için yapıyoruz springboot admin ekranında görebilecekmiyiz ve konsol logunu çalışma zamanı durdurabilecekmiyiz bakacağız.

 

Maven projesi açıyoruz ve bağımlılıklarımızı ekliyoruz.

pom.xml

Sonrasında servisimizi ayağa kaldırırken sunucu ve servisimiz için gerekli propertyleri ekliyeceğimiz dosyamızı “resources” dizinimize ekleyelim.

application.properties

Sonrasında ise projemiziin çalışması için gerekli main sınıfımızı yazıyoruz.

Application.java

Endpointimizin olduğu sınıfı yazalım.


CustomerController.java

Şimdi ise springboot admin uygulamamıza bakalım . servisimizi eureka servis üzerinden çekmiş mi ?

Gördüğümüz gibi servisimiz springboot admin servis’te gözüktü.  Detayları paneldeki özellikleri inceleyelim.

 

Details Uygulama ayakta olduğu bilgisi , memory kullanımı , jvm bilgileri , garbage collection bilgileri vs. içerir
Log Uygulamanın konsol logları
Environment Uygluma içindeki konfigurasyonlar ve unun çevresel değişkenleri
Logging Bu sekme çalışma zamanı yaratılmış tüm nesnelerin loglarını istediğimiz seviyeye çekip istediğimiz zaman kapatabiliyoruz. Işimize çok yarayacak bir özellik.
JMX Çalışma zamanaı JVM yönetilmesi için parametre set edebiliriz.
Trace Uygulamamıza gelen tüm istekler ve cevapları buradadır
Threads Çalışan thread’leri ve durumlarını gösterir
HeapDump Panelin o anki çıktısını yediğini verir.

 

Şimdi rest servisimizden bir istek atalım ve uygulama loguna nasıl düştüğünü , http isteğin header bilgileri , log seviyelerini değiştirelim veya kapalım.

Log Sekmesi

Logging sekmesi

Bu sekmedeki controller sınıfındaki log seviyesini değiştirebilir yada hiç yazmaması için kapatabiliriz.

Trace sekmesi

Panelde birde eureka servere bağlanan yada düşen tüm uygulamaların ları tutulur bunada sağüstte Journal sekmesi ile bakablilirsiniz.

Springboot admin ile ilgili şimdilik değineceklerim bu kadar umarım yararlı olmuştur.
Sorunuz olursa yorum olarak yazabilirsiniz en kısa sürece cevaplamaya çalışırım.

İyi Çalışmalar

Email adresiniz yayınlanmayacaktır.