Logo

dev-resources.site

for different kinds of informations.

Elasticsearch APM Server Kurulumu ve Uygulama İzleme

Published at
6/10/2024
Categories
elasticsearch
kibana
apm
monitoring
Author
erenalpteksen
Author
13 person written this
erenalpteksen
open
Elasticsearch APM Server Kurulumu ve Uygulama İzleme

İçindekiler

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


Enter fullscreen mode Exit fullscreen mode

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


Enter fullscreen mode Exit fullscreen mode

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`


Enter fullscreen mode Exit fullscreen mode

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


Enter fullscreen mode Exit fullscreen mode

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


Enter fullscreen mode Exit fullscreen mode

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


Enter fullscreen mode Exit fullscreen mode
  • Konteyner içindeyken, doğrulama kodunu almak için şu komutu çalıştırın:


bin/kibana-verification-code


Enter fullscreen mode Exit fullscreen mode
  • 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


Enter fullscreen mode Exit fullscreen mode

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


Enter fullscreen mode Exit fullscreen mode

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


Enter fullscreen mode Exit fullscreen mode

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


Enter fullscreen mode Exit fullscreen mode

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.

Image description

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.

apm Article's
30 articles in total
Favicon
Monitoring PM2 in production
Favicon
Recommended Series for Small Rails Development Teams: APM - Skylight
Favicon
Enhance Your System Observability with These Top Log Monitoring Tools
Favicon
Real-Time News Aggregator with Elastic: Leveraging APM, RUM, and Elasticsearch for Optimized Performance
Favicon
What is APM—A comprehensive overview on managing application performance
Favicon
Monitor the Performance of Your Ruby on Rails Application Using AppSignal
Favicon
Demystifying Observability 2.0
Favicon
Elasticsearch APM Server Kurulumu ve Uygulama İzleme
Favicon
Considerations for effective application performance management: Areas to look out for
Favicon
Measuring Node.js Performance in Production with Performance Hooks
Favicon
Uptrace v1.6 is available
Favicon
Tracking Custom Metrics in Python with AppSignal
Favicon
Integrating Keycloak with Datadog: Enabling Keycloak Traces in Kubernetes using Datadog APM
Favicon
A deep dive into zero-day vulnerability alerts with New Relic APM
Favicon
Datadog PHP APM filtering
Favicon
How to Gracefully Implement Business Performance Monitoring
Favicon
AppSignal Expands Monitoring Capabilities with Vector
Favicon
NestJS APM with Elastic and Docker
Favicon
Integrations to monitor your full AI stack
Favicon
Shaping the Future of Ruby and Kafka Together with rdkafka-ruby
Favicon
AppSignal Monitoring Available for Python Applications
Favicon
New Relic AI Monitoring, the industry’s first APM for AI, is here!
Favicon
We've Levelled up Our Top Monitoring Features
Favicon
Monitor Your Node.js and Remix Application with AppSignal
Favicon
How To Reduce Reductions in Elixir
Favicon
Structured logging best practices
Favicon
Introduction to Go app monitoring
Favicon
Boost HTTP Client Monitoring in Elixir with AppSignal and Tesla Templates
Favicon
Track Errors in Fastify with AppSignal
Favicon
Observe Your Phoenix App with Structured Logging

Featured ones: