DEV Community

Yaren Sarı for Açıklab

Posted on

Liman MYS - Uygulama İzleme Ortamı Oluşturulması

Bu rehberde, OpenTelemetry monitoring sistemi kurmak için Keycloak, OpenTelemetry Collector, Clickhouse ve Appmon gibi gerekli bileşenlerin kurulum adımları anlatılmaktadır. Adım adım açıklanan bu süreçte, Docker ve PostgreSQL gibi araçlar da kullanılacaktır. Aşağıdaki yönergeleri takip ederek sisteminizi kurabilirsiniz.

1. Keycloak Kurulumu (Opsiyonel)

Keycloak, sisteminize kimlik doğrulama ve yetkilendirme eklemek için kullanılabilir. Kurulumu Docker üzerinden gerçekleştirebilirsiniz. Aşağıdaki docker-compose.yml dosyasını oluşturun:

services: my-keycloak: image: quay.io/keycloak/keycloak:24.0 environment: KC_HOSTNAME: 1.1.1.1 KC_HOSTNAME_PORT: 7080 KC_HOSTNAME_STRICT_BACKCHANNEL: "true" KEYCLOAK_ADMIN: admin KEYCLOAK_ADMIN_PASSWORD: admin KC_HEALTH_ENABLED: "true" KC_LOG_LEVEL: info healthcheck: test: ["CMD", "curl", "-f", "http://1.1.1.1:7080/health/ready"] interval: 15s timeout: 2s retries: 15 command: ["start-dev", "--http-port", "7080", "--https-port", "7443"] ports: - "7080:7080" - "7443:7443" networks: - local_network networks: local_network: driver: bridge 
Enter fullscreen mode Exit fullscreen mode

Bu dosya hazır olduktan sonra terminalde şu komutları çalıştırarak Keycloak’ı başlatın:

docker compose up -d docker compose ps 
Enter fullscreen mode Exit fullscreen mode

2. OpenTelemetry Collector Kurulumu

OpenTelemetry Collector, verilerinizi toplamak ve bir veri havuzuna aktarmak için kullanılır. İlk olarak gerekli depoyu klonlayın:

git clone https://github.com/fthrslntgy/opentelemetry-collector-contrib.git 
Enter fullscreen mode Exit fullscreen mode

Aşağıda gösterilen exporter/clickhouseexporter/example/otel-collector-config.yml dosyasını düzenleyerek Collector’ü yapılandırın:

receivers: otlp: protocols: grpc: endpoint: 0.0.0.0:4317 http: endpoint: 0.0.0.0:4318 exporters: debug: verbosity: detailed clickhouse: endpoint: tcp://10.10.10.10:9000 database: otel username: default password: "1" logs_table_name: otel_logs traces_table_name: otel_traces ttl: 72h timeout: 10s sending_queue: queue_size: 100 retry_on_failure: enabled: true initial_interval: 5s max_interval: 30s max_elapsed_time: 300s processors: batch: timeout: 5s send_batch_size: 100000 service: extensions: [oidc/server] pipelines: traces: receivers: [otlp] exporters: [clickhouse, debug] processors: [batch] 
Enter fullscreen mode Exit fullscreen mode

Collector’ü çalıştırmak için:

# exporter/clickhouseexporter dizininde make run 
Enter fullscreen mode Exit fullscreen mode

NOT: Log bilgisi için: docker logs -f

3. Clickhouse Kurulumu

Clickhouse, yüksek performanslı bir veri tabanı sistemidir ve OpenTelemetry verilerinizin saklanacağı yerdir. Aşağıdaki komutlar ile kurulum yapabilirsiniz:

sudo apt-get install -y apt-transport-https ca-certificates curl gnupg curl -fsSL 'https://packages.clickhouse.com/rpm/lts/repodata/repomd.xml.key' | sudo gpg --dearmor -o /usr/share/keyrings/clickhouse-keyring.gpg echo "deb [signed-by=/usr/share/keyrings/clickhouse-keyring.gpg] https://packages.clickhouse.com/deb stable main" | sudo tee \ /etc/apt/sources.list.d/clickhouse.list sudo apt-get update sudo apt-get install clickhouse-client clickhouse-server (Bu aşamada password girilir.) 
Enter fullscreen mode Exit fullscreen mode

Kurulum yapıldıktan sonra /etc/clickhouse-server/config.xml içerisindeki listen_host kısmı şu şekilde düzenlenir:

Image description

systemctl restart clickhouse-server clickhouse-client // cli'a giriş yapılır create database otel // veritabanı oluşturulur 
Enter fullscreen mode Exit fullscreen mode

4. Appmon Kurulumu

Appmon, PostgreSQL veritabanı ile çalışan bir izleme aracıdır. Öncelikle PostgreSQL kurulumunu yapın:

sudo apt install postgresql postgresql-contrib sudo -u postgres psql # CREATE USER otel_monitor WITH PASSWORD '1'; # CREATE DATABASE otel_monitor WITH OWNER otel_monitor; 
Enter fullscreen mode Exit fullscreen mode

Ardından, Appmon backend’i kurun:

sudo apt install ./otel-monitor-82-x64.deb 
Enter fullscreen mode Exit fullscreen mode
nano /opt/otel-monitor/.env DB_DRIVER="postgres" DB_HOST="host" DB_NAME="otel_monitor" DB_PASS="1" DB_PORT=5432 DB_USER="otel_monitor" CH_DB_HOST="10.150.238.243" CH_DB_NAME="otel" CH_DB_PASS="Passw0rd" CH_DB_PORT=9000 CH_DB_USER="default" 
Enter fullscreen mode Exit fullscreen mode

Çevre değişkenlerini ayarladıktan sonra:

sudo systemctl restart otel-monitor 
Enter fullscreen mode Exit fullscreen mode

5. Go Client ile Test Etme

Go client ile sistemi test etmek için aşağıdaki linkteki örneği kullanabilirsiniz:

https://github.com/limanmys/otel-go-client-example

Kurulum tamamlandığında, servisleriniz OpenTelemetry Collector üzerinden Clickhouse’a veri göndermeye başlayacaktır. Arayüzde doğru yapılandırılmış servislerle verileri izlemeye başlayabilirsiniz.

Liman Arayüzünde nasıl izleneceği şu yazıdan ayrıntılı anlatılmıştır:
Liman Uygulama İzleme Eklentisi Kurulumu

Top comments (0)