La correction est intégrée au TP (Voir les encadrés de couleur vert)
Ce que vous allez apprendre dans ce TP
- Répondre avec cscli
- Exposer les métriques
- Interroger Prometheus
- Alerter sur la santé
Introduction #
Ce que vous allez apprendre dans cette section
- Répondre avec cscli
- Exposer les métriques
- Interroger Prometheus
- Alerter sur la santé
Contexte. Votre responsable veut savoir chaque semaine combien d'adresses sont bloquées et quelles attaques reviennent.
Prérequis : le TP 1 · Durée estimée : 40 min
Mise en place #
Étapes guidées, avec leur correction.
1. Les réponses immédiates
Avec cscli, dans le labo du TP 1.
Voir la correction
docker compose exec crowdsec cscli decisions list docker compose exec crowdsec cscli alerts list --since 24h docker compose exec crowdsec cscli metrics show acquisition parsers scenarios docker compose exec crowdsec cscli metrics show bouncers2. Ajouter Prometheus
Ajoutez ce service au fichier Compose du TP 1.
Voir la correction
cat > prometheus.yml <<'EOF' global: scrape_interval: 15s scrape_configs: - job_name: crowdsec static_configs: - targets: ["crowdsec:6060"] EOFprometheus: image: prom/prometheus:v3.16.0 ports: - "127.0.0.1:9090:9090" volumes: - ./prometheus.yml:/etc/prometheus/prometheus.yml:ro3. Ouvrir et interroger
Pourquoi ? Les métriques écoutent sur 127.0.0.1 par défaut : Prometheus, dans un autre conteneur, ne les verrait pas.
Voir la correction
docker compose exec crowdsec sh -c "sed -i 's/listen_addr: 127.0.0.1/listen_addr: 0.0.0.0/' /etc/crowdsec/config.yaml" docker compose restart crowdsec docker compose up -d prometheus curl -s http://localhost:6060/metrics | grep -E '^cs_(active_decisions|alerts)' curl -s http://localhost:9090/api/v1/query --data-urlencode 'query=sum by (reason) (cs_active_decisions)' curl -s http://localhost:9090/api/v1/query --data-urlencode 'query=sum by (source) (rate(cs_parser_hits_ko_total[5m]))'Rejouez l’attaque du TP 1 pour voir
cs_active_decisionsmonter.4. Alerter
Écrivez deux règles de santé et validez-les.
Voir la correction
groups: - name: crowdsec rules: - alert: CrowdSecLogsNonLus expr: sum(rate(cs_filesource_hits_total[10m])) == 0 for: 15m labels: {severity: warning} annotations: summary: "CrowdSec ne lit plus aucune ligne de log" - alert: CrowdSecLogsNonCompris expr: sum(rate(cs_parser_hits_ko_total[10m])) > 1 for: 30m labels: {severity: warning} annotations: summary: "Beaucoup de lignes de log ne sont pas comprises"docker compose exec prometheus promtool check rules /etc/prometheus/rules.yml # SUCCESS: 2 rules found
Niveau de difficulté : ●●○○○ (2/5)
Mon suivi
Connectez-vous pour suivre votre progression et prendre des notes. Se connecter
Articles recommandés
Observabilité de CrowdSec : IP bannies, attaques bloquées, Prometheus et Grafana
Suivre CrowdSec : cscli metrics, IP bannies, attaques détectées, volume bloqué par les bouncers, ...
Les plugins Traefik : l'exemple de CrowdSec pour bloquer les attaques
Étendre Traefik avec des plugins (catalogue officiel, interpréteur Yaegi), puis protéger ses appl...
Traefik : les métriques avec Prometheus et OpenTelemetry
Exposer les métriques de Traefik (Prometheus ou OTLP), comprendre les séries par entrypoint, rout...
CrowdSec : comprendre le pare-feu collaboratif
Ce qu'est CrowdSec, comment il détecte et bloque les attaques : Security Engine, parsers, scénari...
Les bouncers CrowdSec : principes et bouncer pare-feu
Comprendre les bouncers CrowdSec : où bloquer, modes live et stream, clés d'API, API des décision...
CrowdSec en production : bonnes pratiques
Les réflexes pour exploiter CrowdSec en production : LAPI, clés, faux positifs, base de données, ...
Les types de métriques dans Prometheus
Découvrez en détail les quatre types de métriques supportés par Prometheus (Counter, Gauge, Histo...
CrowdSec ou Fail2ban : quelles différences ?
Comparaison de CrowdSec et Fail2ban : détection, blocage, partage, performances, multi-serveurs, ...
Installer et configurer CrowdSec : paquets, Docker, acquisition
Installer CrowdSec avec les paquets ou Docker, comprendre ses fichiers, déclarer les logs à lire,...