diff --git a/README.md b/README.md index a568e1e..e5edd4a 100644 --- a/README.md +++ b/README.md @@ -30,11 +30,9 @@ Promtail est l'agent qui va pusher les logs vers Loki: - /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: +Pour que LOKI récupère les logs des conteneurs il faut ajouter les labels aux conteneurs dont on veux monitorer les logs (optionnel): ```yml labels: logging: "promtail" @@ -43,7 +41,7 @@ Pour que LOKI récupère les logs des conteneurs il faut ajouter les labels aux ### GRAFANA -C'est sur le serveur de Grafana que l'on déploie Loki: +C'est sur le serveur de Grafana que l'on déploie Loki (de préférence): ```yml version: "3" @@ -60,13 +58,11 @@ services: 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) - -![AJOUT DATASOURCE](docs/datasource.png) +### TLS -#### TLS +Les metrics des agents promtail transitent par le WAN et nécessitent d'être encryptées. -- Create certs: +- Creation des certificats: > Renseigner les nom du serveur LOKI ainsi que son DNS, idem pour l'agent Promtail et lançer le script: @@ -74,7 +70,7 @@ Ajouter une datasource en entrant l'URI du serveur Loki ainsi que le certificat sudo ./certificates.sh ``` -- TLS config: +#### LOKI Décommenter les lignes concernant le TLS dans promtail/config/yml comme suit: @@ -93,6 +89,8 @@ clients: insecure_skip_verify: false ``` +#### PROMTAIL + Idem pour loki/config/config.yml: ```yaml @@ -108,18 +106,65 @@ server: client_ca_file: /etc/loki/cert/ca.crt ``` +#### NGINX + +Nginx reverse proxy configuration: + +``` +upstream loki { + server 127.0.0.1:3100; +} + +server { + listen 80; + listen [::]:80; + server_name loki.mon-domaine.tld; + rewrite ^(.*) https://loki.mon-domaine.tld$1 permanent; +} + +server { + listen [::]:443 ssl; + listen 443 ssl; + server_name loki.mon-domaine.tld; + + client_max_body_size 200M; + + location / { + proxy_buffering off; + proxy_pass http://loki; + proxy_pass_request_headers on; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + } + + error_log /var/log/nginx/loki.mon-domaine.tld-proxy-error.log; + access_log /var/log/nginx/loki.mon-domaine.tld-proxy-access.log; + + ssl_certificate /etc/letsencrypt/live/loki.mon-domaine.tld/fullchain.pem; + ssl_certificate_key /etc/letsencrypt/live/loki.mon-domaine.tld/privkey.pem; + + ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; + ssl_ciphers HIGH:!aNULL:!MD5; +} +``` + > Modifier loki-dns-serveur avec le vrai dns du serveur +#### GRAFANA + +Ajouter une datasource en entrant l'URI du serveur Loki ainsi que le certificat (/etc/loki/cert/ca.crt) + +![AJOUT DATASOURCE](docs/datasource.png) + ## DASHBOARD > import dashboard ID: 17514 > Faire la dashboard standard +## TO DO + - [X] schema type - [X] provisionner dashboard - [X] Promtail config -- [ ] TLS config (https) +- [X] TLS config (https) - [X] SSH logs - - -> le scraping des metrics du serveur distant se font désormais via TLS \ No newline at end of file diff --git a/docs/datasource.png b/docs/datasource.png new file mode 100644 index 0000000..df339c1 Binary files /dev/null and b/docs/datasource.png differ