ELASTIC APMSERVER – PHP APM Agent on K8S

Merhaba,

Bu makale Elastic APM server’ın kubernetes üzerinde barındırılmasını ve PHP Apm agent kurgulanmasını içermektedir,

Öncelikle makale boyunca bitnami repoları kullanılacaktır,

Elasticsearch deploy ederek başlıyoruz,

ELASTICSEARCH;

Makale öncesi aldığım notlarda; Elastic ingest’in açık olması gerekmekte, heapsize ayarları 512m olarak tanımlandı ve http max content length 256m olarak düzenlendi,

kibanaEnabled: true
---
extraConfig:
  http:
    max_content_length: 256m
---
  heapSize: 512m
---
ingest:
  enabled: true
---
kibana:
  elasticsearch:
    hosts:
      - '{{ include "elasticsearch.coordinating.fullname" . }}'
    port: 9200

İlgili values.yaml için GitHub reposuna erişebilirsiniz,

helm upgrade –install elastic bitnami/elasticsearch -f values.yaml

helm kurulumu sonrası yukarıdaki görsel gibi podların çalıştığını gözlemleyebilirsiniz, aynı zamanda kibana için servisini LoadBalancer’a çevirebilirsiniz,

APM-SERVER;

APM server için;

https://artifacthub.io/packages/helm/elastic/apm-server

helm install my-apm-server elastic/apm-server --version 7.15.0

Kurulum sonrası config map editliyoruz,

k edit cm apm-apm-server-config

    output.elasticsearch:
      hosts: ["http://elastic-coordinating-only.efk-apm.svc.cluster.local:9200"]

sonrasında Kibana üzerinde kontrolleri yapabiliriz,

hosts olarak ne yazacağınızı bilemiyorsanız, dnsutils kullanarak servis ismini bulabilirsiniz,

https://kubernetes.io/docs/tasks/administer-cluster/dns-debugging-resolution/

KIBANA;

Kibana üzerinde APM erişimi sağlayanız, eğer APM server status sorun yaşıyorsanız logları inceleyebilirsiniz,

PHP – APM Agent;

Php üzerindeki verileri alabilmemiz için, k8s üzerinde helm aracılığı ile kurgulanan php deploymentına ajanı kurgulamamız gerekiyor,

Bizde bulunan yapıdaki sıralama aşağıdaki gibi;

Öncelikle Dockerfile dosyasında ilgili agent kurulumunu yapıyoruz;

RUN curl -L https://github.com/elastic/apm-agent-php/releases/download/v1.3.1/apm-agent-php_1.3.1_all.deb -o /tmp/apm-agent-php_1.3.1_all.deb

RUN dpkg -i /tmp/apm-agent-php_1.3.1_all.deb

Deploy çıktığınızda ajanın kurulduğunu gözlemleyebilirsiniz,

Şimdi agentın veri gönderebilmesi için ConfigMap editlemesi gerçekleştireceğiz,

Bunun için 4 adım mevcut,

1- Config hazırlanıyor (output) 2-configmap yaratılıyor, 3-K8s üzerinde extravolume yaratılıyor, 4- extravolume mount ediliyor,

1- Config içeriğini php için daha önceden hazırladığımız ConfigMap içerisine giriyoruz (server_url ve service name bu kısımda belirleniyor)

2- Extradeploy adımında elastic-apm configini deploy sırasında bulup yukarıda tanımladığımız tüm içeriği bu kısma basıyoruz,

3- Elastic APM agent için volume yaratıyoruz,

4- Elastic APM agent için yaratılan volume mount ediliyor,

Son olarak veri geliş gidişleri için yine kibana üzerindeki APM aracılığı ile gözlemleyebilirsiniz,

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.