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
Bu dosya hazır olduktan sonra terminalde şu komutları çalıştırarak Keycloak’ı başlatın:
docker compose up -d
docker compose ps
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
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]
Collector’ü çalıştırmak için:
# exporter/clickhouseexporter dizininde
make run
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.)
Kurulum yapıldıktan sonra /etc/clickhouse-server/config.xml içerisindeki listen_host kısmı şu şekilde düzenlenir:
systemctl restart clickhouse-server
clickhouse-client // cli'a giriş yapılır
create database otel // veritabanı oluşturulur
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;
Ardından, Appmon backend’i kurun:
sudo apt install ./otel-monitor-82-x64.deb
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"
Çevre değişkenlerini ayarladıktan sonra:
sudo systemctl restart otel-monitor
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