# Troubleshooting Guide ## "CrowdSec is installed but not blocking anything" **Cause:** No remediation component (bouncer) is installed. **Fix:** Install at least one bouncer: ```bash sudo apt install crowdsec-firewall-bouncer-iptables # OR for Docker environments with Traefik, configure the Traefik plugin middleware ``` ## "Bouncer shows invalid or 403 Forbidden" **Cause:** Wrong or missing API key in the bouncer config. **Fix:** ```bash # Generate new key sudo cscli bouncers add my-bouncer-name # Or list existing sudo cscli bouncers list ``` Update the bouncer config with the correct key. ## "crowdsec: command not found" or "cscli: command not found" **Fix:** Install CrowdSec packages: ```bash curl -s https://install.crowdsec.net | sudo sh sudo apt update && sudo apt install crowdsec ``` ## "No acquisition file found" **Cause:** CrowdSec has no log sources configured. **Fix:** Add acquisition config: ```bash # Create acquisition file echo 'filenames: - /var/log/auth.log labels: type: syslog' | sudo tee /etc/crowdsec/acquis.d/sshd.yaml sudo systemctl restart crowdsec ``` ## "Labels type is mandatory" warning **Cause:** An acquisition entry is missing `labels.type`. **Fix:** Every acquisition entry must have a `type` label. The type determines which parser handles the logs. ## "IPs not being banned in Traefik" **Cause:** The real client IP is not reaching CrowdSec (due to Cloudflare, load balancer, or proxy). **Fix:** 1. Ensure Traefik logs show the real client IP (not Cloudflare/proxy IP) 2. Configure `forwardedHeadersTrustedIPs` in the Traefik middleware 3. For Cloudflare: add Cloudflare IP ranges to `forwardedHeaders.trustedIPs` 4. Check `crowdsecLapiKey` is correct ## "Container refuses to start" (Docker) **Cause:** Missing volume mounts for data persistence. **Fix:** Since CrowdSec v1.7.0, these volumes are mandatory: ```yaml volumes: - crowdsec-db:/var/lib/crowdsec/data/ - crowdsec-config:/etc/crowdsec/ ``` ## "Plugin not found" (Traefik) **Cause:** Traefik plugin is not enabled in static config. **Fix:** In `traefik.yaml`: ```yaml experimental: plugins: bouncer: moduleName: github.com/maxlerebourg/crowdsec-bouncer-traefik-plugin version: v1.6.0 ``` ## "All requests returning 403" **Cause:** Bouncer can't reach LAPI or API key is wrong. **Fix:** 1. Verify LAPI is running: `sudo systemctl status crowdsec` 2. Check LAPI URL in bouncer config 3. Verify API key: `sudo cscli bouncers list` 4. Check Docker networking (are containers on the same network?) ## High memory / CPU usage **Potential causes:** - Too many parser/bucket routines for the available cores - Large log files without `use_time_machine: true` - SQLite without WAL mode under load **Fixes:** - Reduce `parser_routines` and `buckets_routines` in config.yaml - Set `use_time_machine: true` for buffered log sources - Enable WAL: `db_config.use_wal: true` - Switch to MySQL/PostgreSQL for high-volume deployments ## "Cannot enroll in Console" **Fix:** ```bash # Bare metal sudo cscli console enroll -e context # Docker docker exec crowdsec cscli console enroll -e context ``` Then approve the engine in the web console at https://app.crowdsec.net ## "Alerts showing but no decisions" **Cause:** Scenario triggered but no profile matches. **Fix:** Check `/etc/crowdsec/profiles.yaml`: ```yaml name: default_ip_remediation filters: - Alert.Remediation == true && Alert.GetScope() == "Ip" decisions: - type: ban duration: 4h on_success: break ``` ## Logs not being parsed 1. Check acquisition config: `cat /etc/crowdsec/acquis.yaml` (is the log path correct?) 2. Verify log files exist and are readable: `sudo ls -la /var/log/auth.log` 3. Check metrics: `sudo cscli metrics` (look for Acquisition section) 4. Restart CrowdSec: `sudo systemctl restart crowdsec` ## General Diagnostics ```bash # Service status sudo systemctl status crowdsec # Full metrics sudo cscli metrics # Check logs sudo journalctl -u crowdsec --no-pager -n 50 # List installed collections sudo cscli collections list # List active decisions sudo cscli decisions list # List bouncers sudo cscli bouncers list # List machines (agents) sudo cscli machines list # Check CAPI connection sudo cscli console status ```