İçindekiler
- Elasticsearch Nedir?
- Kibana Nedir?
- APM Nedir?
- Elasticsearch Kurulumu
- Kibana Kurulumu ve Doğrulama Kodu Alma
- APM Server Kurulumu
- Java APM Agent ile Spring Boot Uygulaması İzleme
Elasticsearch Nedir?
Elasticsearch, dağıtılmış, RESTful arama ve analiz motorudur. Büyük miktarda veriyi gerçek zamanlı olarak işleyebilir ve bu veriler üzerinde arama, analiz ve keşif yapılmasına olanak tanır. Açık kaynaklı olan bu platform, ölçeklenebilirlik ve hız açısından oldukça etkilidir.
Kibana Nedir?
Kibana, Elasticsearch veri kümelerini görselleştirmek ve yönetmek için kullanılan açık kaynaklı bir analiz ve görselleştirme platformudur. Kibana, kullanıcılara verileri grafiksel olarak inceleme, raporlama ve sorgulama yetenekleri sunar, böylece verilerden elde edilen içgörüler maksimize edilebilir.
APM Nedir?
Application Performance Management (APM), uygulamaların performansını izlemek ve yönetmek için kullanılan bir teknolojidir. APM araçları, uygulamaların gerçek zamanlı performans metriklerini toplar, analiz eder ve bu bilgileri performansı iyileştirmek ve sorunları çözmek için kullanır.
Elasticsearch Kurulumu
Elasticsearch'i Docker kullanarak kurmak için öncelikle aşağıdaki adımları izleyin:
1. Network Oluşturma:
Docker'da konteynerlar arası iletişim için bir network oluşturun:
docker network create elastic
2. Elasticsearch Konteynerini Başlatma:
Aşağıdaki komut ile Elasticsearch konteynerini başlatın. Bu komut, belirtilen sürümü kullanarak Elasticsearch'i başlatır ve 9200 portundan yayın yapmasını sağlar:
docker run --name elasticsearch --net elastic -p 9200:9200 -it -m 1GB docker.elastic.co/elasticsearch/elasticsearch:8.13.4
Konteyner başlatıldıktan sonra, güvenlik özelliklerinin otomatik olarak yapılandırıldığını ve gerekli bilgilerin loglarda görülebileceğini belirten bir mesaj alırsınız.
Elasticsearch security features have been automatically configured!
✅ Authentication is enabled and cluster connections are encrypted.
ℹ️ Password for the elastic user (reset with `bin/elasticsearch-reset-password -u elastic`):
nZPwrx7p32-Vfib1pP4w
ℹ️ HTTP CA certificate SHA-256 fingerprint:
6bab504d566749138d5faef454a67afe0449339e768ef9f626bc986d1f90b9d2
ℹ️ Configure Kibana to use this cluster:
• Run Kibana and click the configuration link in the terminal when Kibana starts.
• Copy the following enrollment token and paste it into Kibana in your browser (valid for the next 30 minutes):
eyJ2ZXIiOiI4LjEzLjQiLCJhZHIiOlsiMTkyLjE2OC4zMi4yOjkyMDAiXSwiZmdyIjoiNmJhYjUwNGQ1NjY3NDkxMzhkNWZhZWY0NTRhNjdhZmUwNDQ5MzM5ZTc2OGVmOWY2MjZiYzk4NmQxZjkwYjlkMiIsImtleSI6Im5UZUw0WThCbXphTUdXYlNDNEY4OldTdjFMaDFEU1BDc3piTkl3WFlENWcifQ==
ℹ️ Configure other nodes to join this cluster:
• Copy the following enrollment token and start new Elasticsearch nodes with `bin/elasticsearch --enrollment-token <token>` (valid for the next 30 minutes):
eyJ2ZXIiOiI4LjEzLjQiLCJhZHIiOlsiMTkyLjE2OC4zMi4yOjkyMDAiXSwiZmdyIjoiNmJhYjUwNGQ1NjY3NDkxMzhkNWZhZWY0NTRhNjdhZmUwNDQ5MzM5ZTc2OGVmOWY2MjZiYzk4NmQxZjkwYjlkMiIsImtleSI6Im56ZUw0WThCbXphTUdXYlNDNEdJOnBUUnFBQTNPUWNxNUE4X3laMW9yaGcifQ==
If you're running in Docker, copy the enrollment token and run:
`docker run -e "ENROLLMENT_TOKEN=<token>" docker.elastic.co/elasticsearch/elasticsearch:8.13.4`
Elasticsearch'in otomatik olarak oluşturduğu kullanıcı adı ve şifre, Kibana'yı ve diğer Elasticsearch düğümlerini bu klüstere bağlamak için kullanılacak kayıt anahtarları loglarda belirtilir.
3. Elasticsearch Konteynerini Yeniden Başlatma:
Konteyneri interaktif moddan çıkarıp arkaplanda çalıştırın:
docker start elasticsearch
4. Elasticsearch'e Erişim Sağlama:
Tarayıcınızda https://localhost:9200 adresine gidin ve kullanıcı adı ile şifrenizi girin. Bu bilgiler, Elasticsearch loglarında sağlanan güvenlik bilgileri arasında yer alır. Başarılı bir giriş sonrası, Elasticsearch cluster'ınızın aktif olduğunu görebilirsiniz.
Kibana Kurulumu ve Doğrulama Kodu Alma
Kibana'yı kurmak ve Elasticsearch cluster'ınıza bağlamak için aşağıdaki adımları takip edin:
1. Kibana Konteynerini Başlatma:
docker run --name kibana --net elastic -p 5601:5601 -d docker.elastic.co/kibana/kibana:8.13.4
2. Kibana'ya Bağlanma:
Tarayıcınızda localhost:5601 adresine gidin ve gerekli yerlere, Elasticsearch kurulumu sırasında loglarda verilen kayıt anahtarını girin.
3. Doğrulama Kodunu Alma:
Kibana'nın başarılı bir şekilde yapılandırılması için doğrulama kodu gerekebilir. Bu kodu almak için:
- İlk olarak, Kibana konteynerine erişim sağlamak üzere aşağıdaki komutu kullanın:
docker exec -it kibana /bin/bash
- Konteyner içindeyken, doğrulama kodunu almak için şu komutu çalıştırın:
bin/kibana-verification-code
- Bu komut, Kibana'nın yapılandırılması sırasında gerekli olan doğrulama kodunu ekrana yazdıracaktır. Bu kodu kopyalayıp, Kibana kurulum ekranında istenen yere yapıştırarak devam edebilirsiniz.
4. Kibana'ya Erişim Sağlama
Doğrulama kodunu girdikten sonra, Kibana arayüzüne tam erişim sağlanır.
APM Server Kurulumu
APM Server'ı kurmak ve yapılandırmak için:
1. APM Server Yapılandırma Dosyası Oluşturma:
Aşağıda örnek bir apm-server.yml yapılandırma dosyası bulunmaktadır. Bu dosyada APM Server'ın Elasticsearch ve Kibana ile nasıl haberleşeceği belirtilmiştir:
Önemli Not: hosts, username, password, ve setup.kibana.host gibi gerekli kısımları kendi ortamınıza göre güncellemeniz gerekmektedir.
apm-server:
host: "0.0.0.0:8200"
concurrent_requests: 5
rum:
enabled: true
queue.mem.events: 4096
max_procs: 4
output.elasticsearch:
hosts: ["https://elasticsearch:9200"]
username: "elastic"
password: "2Bm-FImtZ=EV4=O62LIA"
ssl.verification_mode: none
setup.kibana.host: "kibana:5601"
setup.dashboards.enabled: true
setup.template.settings.index.number_of_replicas: 0
apm-server.kibana.enabled: true
apm-server.kibana.host: "kibana:5601"
#logging.level: info
#logging.to_files: false
logging.level: debug
logging.to_files: false
2. APM Server Konteynerini Başlatma:
Yapılandırma dosyanızın dizinine göre, aşağıdaki komutla APM Server konteynerini başlatın:
Önemli Not: Aşağıdaki komutta /home/db/elk/apm-server.yml yolunu, apm-server.yml dosyanızın bulunduğu dizine göre güncellemeniz gerekmektedir.
docker run -d \
-p 8200:8200 \
--name=apm-server \
--net=elastic \
--user=apm-server \
--volume="/home/db/elk/apm-server.yml:/usr/share/apm-server/apm-server.yml:ro" \
docker.elastic.co/apm/apm-server:8.13.4
Konteyner başlatıldıktan sonra, Docker'da çalışan tüm konteynerleri görmek için aşağıdaki komutu kullanabilirsiniz.
java@java:~/elk$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1cfad7834915 docker.elastic.co/apm/apm-server:8.13.4 "/usr/bin/tini -- /u…" 35 minutes ago Up 35 minutes 0.0.0.0:8200->8200/tcp, :::8200->8200/tcp apm-server
a7186673415b docker.elastic.co/kibana/kibana:8.13.4 "/bin/tini -- /usr/l…" 2 hours ago Up 2 hours 0.0.0.0:5601->5601/tcp, :::5601->5601/tcp kibana
3b4e4edd0712 docker.elastic.co/elasticsearch/elasticsearch:8.13.4 "/bin/tini -- /usr/l…" 2 hours ago Up 2 hours 0.0.0.0:9200->9200/tcp, :::9200->9200/tcp, 9300/tcp elasticsearch
Java APM Agent ile Spring Boot Uygulaması İzleme
1. APM Agent İndirme:
Java APM Agent'ı Elastic'in resmi web sitesinden indirin. Agent, uygulamanızın performans metriklerini toplayacak ve Elastic APM sunucusuna gönderecektir.
2. Java Uygulamasını Agent ile Başlatma:
Java Virtual Machine (JVM) üzerinde çalışan uygulamanıza agent'ı eklemek için aşağıdaki komutu kullanın:
Önemli Not: -Delastic.apm.server_url=
http://<your-apm-server-url>:8200
parametresinde,<your-apm-server-url>
kısmını kendi APM Server URL'inize göre güncelleyin.
java -javaagent:/home/db/elastic-apm-agent-1.50.0.jar \
-Delastic.apm.service_name=java-apm \
-Delastic.apm.server_url=http://<your-apm-server-url>:8200 \
-Delastic.apm.application_packages=com.teksen \
-Delastic.apm.disable_bootstrap_checks=true \
-jar otel-demo-1.jar
Bu komutta belirtilen parametreler:
-
elastic.apm.service_name
: Uygulamanızın APM'de görünecek ismi. -
elastic.apm.server_url
: APM Server'ın URL adresi. -
elastic.apm.application_packages
: İzlenmesi gereken Java paketleri. -
jar
: Çalıştırılacak Java uygulaması.
3. Kibana Üzerinden Uygulamayı İzleme:
APM Agent tarafından toplanan veriler, APM Server üzerinden Kibana'ya iletilir. Kibana'da APM > Services sekmesine giderek uygulamanızın performans metriklerini görselleştirebilir ve analiz edebilirsiniz.
Sonuç
Bu kılavuz, Elasticsearch, Kibana ve APM Server'ın Docker üzerinde kurulum ve yapılandırmasını adım adım ele alır. Bu araçlar, uygulama performansını izlemek ve operasyonel verimliliği artırmak için esastır. Kurulumdan sonra, Java ile Spring Boot uygulamasının performans izlemesi sağlanmış ve bu süreçlerin nasıl yönetileceği gösterilmiştir. Elastic Stack teknolojilerinin etkin kullanımı, modern uygulama yönetiminde kritik bir rol oynar.