diff --git a/observability/commande_docker.md b/observability/commande_docker.md new file mode 100644 index 0000000..a0ae365 --- /dev/null +++ b/observability/commande_docker.md @@ -0,0 +1,27 @@ +# methode 1 +# Arrêter tous les containers +docker stop $(docker ps -aq) + +# Supprimer tous les containers +docker rm -f $(docker ps -aq) + +# Supprimer toutes les images +docker rmi -f $(docker images -q) + +# Supprimer tous les volumes +docker volume rm $(docker volume ls -q) + +# Supprimer tous les réseaux personnalisés +docker network rm $(docker network ls -q | grep -v "bridge\|host\|none") + +# verifier que tt est propre +docker system df + + + +# methode 2 +docker system prune -a --volumes --force + +# Pour construire + +docker compose up --build \ No newline at end of file diff --git a/observability/docker-compose.yml b/observability/docker-compose.yml new file mode 100644 index 0000000..2b1ac6c --- /dev/null +++ b/observability/docker-compose.yml @@ -0,0 +1,62 @@ +version: "3.8" + +services: + prometheus: + image: prom/prometheus:latest + container_name: prometheus-observability + volumes: + - ./prometheus.yml:/etc/prometheus/prometheus.yml + command: + - '--config.file=/etc/prometheus/prometheus.yml' + ports: + - "9090:9090" + restart: unless-stopped + networks: + - observability + + grafana: + image: grafana/grafana:latest + container_name: grafana-observability + ports: + - "3000:3000" + volumes: + - grafana-data:/var/lib/grafana + environment: + - GF_SECURITY_ADMIN_USER=admin + - GF_SECURITY_ADMIN_PASSWORD=admin + restart: unless-stopped + depends_on: + - loki + networks: + - observability + + loki: + image: grafana/loki:2.8.2 + container_name: loki-observability + ports: + - "3100:3100" + command: -config.file=/etc/loki/local-config.yaml + volumes: + - ./loki-config.yaml:/etc/loki/local-config.yaml + restart: unless-stopped + networks: + - observability + + promtail: + image: grafana/promtail:2.8.2 + container_name: promtail-observability + volumes: + - ./promtail-config.yaml:/etc/promtail/config.yaml + - /var/lib/docker/containers:/var/lib/docker/containers:ro # Permet de lire les logs des containers Docker + command: + - -config.file=/etc/promtail/config.yaml + restart: unless-stopped + networks: + - observability + +volumes: + grafana-data: + +networks: + observability: + driver: bridge diff --git a/observability/loki-config.yaml b/observability/loki-config.yaml new file mode 100644 index 0000000..06c3e19 --- /dev/null +++ b/observability/loki-config.yaml @@ -0,0 +1,44 @@ +auth_enabled: false + +server: + http_listen_port: 3100 + +ingester: + lifecycler: + ring: + kvstore: + store: inmemory + replication_factor: 1 + chunk_idle_period: 5m + chunk_retain_period: 30s + max_transfer_retries: 0 + +schema_config: + configs: + - from: 2020-10-24 + store: boltdb-shipper + object_store: filesystem + schema: v11 + index: + prefix: index_ + period: 24h + +storage_config: + boltdb_shipper: + active_index_directory: /loki/index + cache_location: /loki/cache + shared_store: filesystem + filesystem: + directory: /loki/chunks + +limits_config: + enforce_metric_name: false + reject_old_samples: true + reject_old_samples_max_age: 168h + +chunk_store_config: + max_look_back_period: 0s + +table_manager: + retention_deletes_enabled: false + retention_period: 0s diff --git a/observability/prometheus.yml b/observability/prometheus.yml new file mode 100644 index 0000000..db48adc --- /dev/null +++ b/observability/prometheus.yml @@ -0,0 +1,7 @@ +global: + scrape_interval: 15s + +scrape_configs: + - job_name: 'prometheus' + static_configs: + - targets: ['localhost:9090'] diff --git a/observability/promtail-config.yaml b/observability/promtail-config.yaml new file mode 100644 index 0000000..c8e42a6 --- /dev/null +++ b/observability/promtail-config.yaml @@ -0,0 +1,18 @@ +server: + http_listen_port: 9080 + grpc_listen_port: 0 + +positions: + filename: /tmp/positions.yaml + +clients: + - url: http://loki-observability:3100/loki/api/v1/push # URL du service Loki + +scrape_configs: + - job_name: 'docker-containers' + static_configs: + - targets: + - localhost + labels: + job: docker + __path__: /var/lib/docker/containers/*/*.log # Chemin vers les logs Docker