Dans cet exemple les composants Loki, Promtail et Grafana sont déployés à l’aide de Docker Compose. Voici la définition du fichier :
docker-compose.yaml
ouvrir
version: "3.8"
networks:
loki:
services:
loki:
image: grafana/loki:2.0.0
ports:
- "3100:3100"
command: -config.file=/etc/loki/local-config.yaml
networks:
- loki
promtail:
image: grafana/promtail:2.0.0
volumes:
- /var/log:/var/log
- /tmp/log:/tmp/log
configs:
- source: promtailconfig
target: /etc/promtail/config.yml
command: -config.file=/etc/promtail/config.yml
networks:
- loki
grafana:
image: grafana/grafana:8.1.1
ports:
- "3000:3000"
networks:
- loki
configs:
promtailconfig:
file: ./promtail_config.yml
Promtail est configuré de manière à agréger les logs présents dans /var/log/*log
et dans le fichier /tmp/log/date.log
. Les logs des deux sources seront présentés comme provenant de deux machines différentes :
promtail_config.yml
ouvrir
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
host: my-host-1
env: dev
__path__: /var/log/*log
- job_name: tmp
static_configs:
- targets:
- localhost
labels:
job: tmplogs
host: my-host-2
env: dev
__path__: /tmp/log/date.log