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

Yaren Sarı - Oct 24 - - Dev Community

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

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .