Bu kılavuzda Grafana Loki ve Promtail’in Docker ve Docker Compose ile nasıl kurulacağını öğreneceğiz. Üretim sistemleri için lütfen Grafana Loki’yi Tanka veya Helm ile kurmayı düşünün.
Docker ve docker compose’un kurulu olduğundan emin olun
Kurulumumuzu çalıştırmak için docker’ı kullanacağımız için kurulu ve çalışır durumda olması önemlidir. Lütfen docker’ın kurulu olduğundan emin olun.
Sürümü kontrol ederek docker’ın beklendiği gibi çalıştığını doğrulayın:
$ docker version
Client: Docker Engine - Community
Version: 20.10.17
API version: 1.41
Go version: go1.17.11
Git commit: 100c701
Built: Mon Jun 6 23:02:46 2022
OS/Arch: linux/amd64
Context: default
Experimental: true
Server: Docker Engine - Community
Engine:
Version: 20.10.17
API version: 1.41 (minimum version 1.12)
Go version: go1.17.11
Git commit: a89b842
Built: Mon Jun 6 23:00:51 2022
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.6.6
GitCommit: 10c12954828e7c7c9b6e0ea9b0c02b01407d3ae1
runc:
Version: 1.1.2
GitCommit: v1.1.2-0-ga916309
docker-init:
Version: 0.19.0
GitCommit: de40ad0
Daha sonra docker-compose’un kurulu olduğundan emin olun. Docker compose, python pip paketi olarak mevcuttur. Python ve pip’in kurulu olduğundan emin olun ve ardından şu komutla docker-compose’u kurun:
sudo pip3 install docker-compose
Bu, sistemimde yüklü olan docker-compose sürümüdür:
$ docker-compose --version
docker-compose version 1.29.2, build unknown
Grafana’yı docker’da çalıştırmak
Grafana, çok platformlu, açık kaynaklı bir analitik ve etkileşimli görselleştirme web uygulamasıdır. Desteklenen veri kaynaklarına bağlanıldığında web için çizelgeler, grafikler ve uyarılar sağlar.
Bizim durumumuzda Loki sistemine kullanıcı arayüzü olarak Grafana’ya ihtiyacımız olacak. Günlükleri sorgulamak veya günlük modellerine göre belirli kontrol panelleri oluşturmak için bunu kullanabiliriz.
Grafana’yı docker ile çalıştırmak için aşağıdaki komutu kullanın. Grafana OSS’nin en son sürümünü (sürüm 9) kullanıyoruz.
docker run --name=grafana \
-p 3000:3000 \
grafana/grafana-oss:9.0.2
Müstakil modda başlamak için -d argümanını kullanabilirsiniz. Sunucu başlatıldıktan sonra tarayıcınızda http://server_ip:3000 adresini ziyaret ederek sunucuya erişin.
Loki’yi docker ile çalıştırma
Loki, harika günlük arama ve görselleştirme özellikleriyle Prometheus ve Kubernetes çalıştıran kullanıcılar için optimize edilmiş bir günlük kaydı arka ucudur. Loki, yerel günlüklerin içeriğini Grafana Loki’nin bir örneğine gönderen bir aracı olan promtail ile çalışır.
Öncelikle içeriği saklayacağımız ve geçerli dizin olarak kullanacağımız bir dizin oluşturalım.
mkdir loki
Daha sonra loki’yi başlatmak ve çalıştırmak için gereken bir yapılandırma dosyası oluşturun. Bunları loki-config.yaml’a kaydedin:
auth_enabled: false
server:
http_listen_port: 3100
grpc_listen_port: 9096
common:
path_prefix: /tmp/loki
storage:
filesystem:
chunks_directory: /tmp/loki/chunks
rules_directory: /tmp/loki/rules
replication_factor: 1
ring:
instance_addr: 127.0.0.1
kvstore:
store: inmemory
schema_config:
configs:
- from: 2020-10-24
store: boltdb-shipper
object_store: filesystem
schema: v11
index:
prefix: index_
period: 24h
ruler:
alertmanager_url: http://localhost:9093
# If you would like to disable reporting, uncomment the following lines:
#analytics:
# reporting_enabled: false
Artık loki örneğimizi şu komutla çalıştırabiliriz:
docker run --name loki \
-v $(pwd):/config \
-p 3100:3100 \
grafana/loki:2.5.0 -config.file=/config/loki-config.yaml
Loki çalıştığında, günlükleri /var/log/*log’dan loki örneğimize aktarmak için promtail’i ayrı bir sekmede çalıştıralım. Promtail-config.yaml adlı bir dosya oluşturun.
server:
http_listen_port: 9080
grpc_listen_port: 0
positions:
filename: /tmp/positions.yaml
clients:
- url: http://loki:3100/loki/api/v1/push
scrape_configs:
- job_name: system
static_configs:
- targets:
- localhost
labels:
job: varlogs
__path__: /var/log/*log
Yeni bir sekmede promtail’i şu komutla başlatın:
docker run --name promtail \
-v $(pwd):/config \
-v /var/log:/var/log \
--link loki \
grafana/promtail:2.5.0 -config.file=/config/promtail-config.yaml
Hem loki hem de promtail çalışırken, ölçümleri görüntülemek için http://server_ip:3100/metrics adresine, hazırlık için ise http://server_ip:3100/ready adresine gidin.
Görüntü, varsayılan olarak UID 10001 ve GID 10001 ile kullanıcı loki’si olarak çalışacak şekilde yapılandırılmıştır. Özellikle bağlama bağlamaları kullanıyorsanız, UID’yi docker run komutuyla belirterek ve –user=UID ile birlikte kullanarak farklı bir kullanıcı kullanabilirsiniz. ihtiyaçlarınıza uygun sayısal UID. Kök kullanıcı UID 1000’dir.
Grafana, Loki ve promtail’i çalıştırmak için docker-compose’u kullanma
Dağıtımları oluşturmamızı, güncellememizi ve yönetmemizi kolaylaştırmak için yukarıdaki talimatları bir docker oluşturma dosyasına ekleyebiliriz. Docker Compose, çok kapsayıcılı Docker uygulamalarını tanımlamaya ve çalıştırmaya yönelik bir araçtır. Compose ile uygulamanızın hizmetlerini yapılandırmak için bir YAML dosyası kullanırsınız. Daha sonra tek bir komutla tüm hizmetleri konfigürasyonunuzdan oluşturur ve başlatırsınız.
Docker-compose.yaml dosyasına aşağıdakini ekleyin:
version: '3.9'
networks:
grafana_loki:
services:
grafana:
image: grafana/grafana-oss:latest
ports:
- 3000:3000
networks:
- grafana_loki
loki:
image: grafana/loki:2.5.0
ports:
- "3100:3100"
volumes:
- ./loki-config.yaml:/etc/loki/local-config.yaml
command: -config.file=/etc/loki/local-config.yaml
networks:
- grafana_loki
promtail:
image: grafana/promtail:2.5.0
volumes:
- /var/log:/var/log
- ./promtail-config.yaml:/etc/promtail/config.yml
command: -config.file=/etc/promtail/config.yml
networks:
- grafana_loki
Dosyayı konfigürasyonların bulunduğu dizine kaydedin ve ardından hizmetleri bu komutla başlatın:
docker-compose up
Veya müstakil mod için -d argümanını ekleyebilirsiniz. Aynı portlara bağlandığımız için yukarıda listelediğimiz şekilde erişim sağlayabilirsiniz.
Grafana’da oturum açma
Yönetici kullanıcınızla (varsayılan yönetici/yönetici) oturum açın. İlk giriş yaptığınızda şifrenizi değiştirmeniz istenecektir.
Yan menüyü açın (üst menüdeki Grafana simgesine tıklayın) Veri Kaynakları’na gidin ve veri kaynağınızı ekleyin. Loki’yi arayın, ardından kaynak URL’yi http://loki:3100’e ekleyin (Loki örneğimizi eklemek için) ve kaydedin.
Daha sonra keşfetmeye gidin ve veri kaynağı olarak Loki’yi seçin. Var log günlüklerimizi görüntülemek için etiketleri, işi, ardından varlogları ve sorguyu seçin.
{job="varlogs"} | logfmt | __error__=``
Günlüklerin akışını görmelisiniz.
Yazının orijinalini buradan okuyabilirsiniz.

Kariyerime 26 yıl önce başladım. Windows ve Linux sistemlerinin kurulumu, yapılandırılması, yönetimi ve bakımı dahil olmak üzere birden fazla sistem üzerinde uzmanlaştım.
Açık kaynak dünyasındaki en son gelişmelerden haberdar olmaktan ve Linux hakkındaki en son araçları, özellikleri ve hizmetleri denemekten hoşlanıyorum.
Son 6 yıldır sistem ve ağ yöneticisi olarak görev yapıyorum ayrıca Pardus Dönüşüm Projesini yönetiyorum ve Pardus İşletim Sisteminin yaygınlaşması adına uğraş gösteriyorum.
Boş zamanlarımda açık kaynaklı uygulamaların Türkçe çevirisine katılıyorum ve The Document Foundation üyesiyim.