Grégory Lebreton 33cb713a6f | 8 months ago | |
---|---|---|
docs | 8 months ago | |
grafana/provisioning | 8 months ago | |
loki | 8 months ago | |
promtail | 8 months ago | |
README.md | 8 months ago | |
certificates.sh | 8 months ago | |
docker-compose.yml | 8 months ago |
README.md
LOKI PROMTAIL GRAFANA
Simple stack pour monitorer les logs des conteneurs ou applications d'un serveur via LOKI / PROMTAIL
UTILISATION LOCALE
docker-compose up -d
Grafana est disponible à l'adresse: http://localhost:3000
user: admin / password: admin
CONFIGURATION PROD
De base promtail est configuré pour faire remonter les logs systèmes (/var/log)
PROMTAIL AGENT HOST
Promtail est l'agent qui va pusher les logs vers Loki:
promtail:
image: grafana/promtail:2.9.4
container_name: promtail
volumes:
- ./promtail/config.yml:/etc/promtail/config.yml
- /var/lib/docker/containers:/var/lib/docker/containers:ro
- /var/run/docker.sock:/var/run/docker.sock
- /var/log:/var/log
command: -config.file=/etc/promtail/config.yml
depends_on:
- loki
Pour que LOKI récupère les logs des conteneurs il faut ajouter les labels aux conteneurs dont on veux monitorer les logs:
labels:
logging: "promtail"
logging_jobname: "containerlogs"
GRAFANA
C'est sur le serveur de Grafana que l'on déploie Loki:
version: "3"
services:
loki:
image: grafana/loki:2.9.4
container_name: loki
ports:
- 3100:3100
volumes:
- ./loki/config:/etc/loki
- ./loki/cert:/etc/loki/cert
command: -config.file=/etc/loki/config.yml
Ajouter une datasource en entrant l'URI du serveur Loki ainsi que le certificat (/etc/loki/cert/ca.crt)
TLS
- Create certs:
Renseigner les nom du serveur LOKI ainsi que son DNS, idem pour l'agent Promtail et lançer le script:
sudo ./certificates.sh
- TLS config:
Décommenter les lignes concernant le TLS dans promtail/config/yml comme suit:
clients:
# LOCAL
# - url: http://loki:3100/loki/api/v1/push
# DISTANT TLS
- url: https://loki-dns-serveur:3100/loki/api/v1/push
tls_config:
ca_file: /etc/promtail/cert/ca.crt
cert_file: /etc/promtail/cert/promtail.client.crt
key_file: /etc/promtail/cert/client.key
server_name: loki-dns-serveur
insecure_skip_verify: false
Idem pour loki/config/config.yml:
server:
http_listen_port: 3100
# DISTANT TLS
grpc_listen_port: 9096
http_tls_config:
cert_file: /etc/loki/cert/loki.server.crt
key_file: /etc/loki/cert/server.key
client_auth_type: RequireAndVerifyClientCert
client_ca_file: /etc/loki/cert/ca.crt
Modifier loki-dns-serveur avec le vrai dns du serveur
DASHBOARD
import dashboard ID: 17514 Faire la dashboard standard
- schema type
- provisionner dashboard
- Promtail config
- TLS config (https)
- SSH logs
le scraping des metrics du serveur distant se font désormais via TLS