Skip to main content

Security Engine No Alerts

The Engine No Alerts issue appears when your Security Engine has been running but hasn't forwarded any alerts to the Central API in the last 48 hours.

What Triggers This Issue

  • Trigger condition: No alerts generated for 48 hours
  • Criticality: ⚠️ High
  • Impact: Your detection system may not be working as expected

Common Root Causes

Other Issues

  • 🔗 No logs being read: The acquisition configuration may be missing, disabled, or pointing to empty log sources.
  • 🔗 No logs being parsed: Logs are being read but parsers can't process them due to format mismatches or missing collections.

Diagnosis & Resolution

If it is not due to other issues, use the diagnosis and resolutions below.

Appropriate collections not installed

🔎 Check installed collections match your services

Verify you have collections matching your protected services:

sudo cscli collections list
Run this command for Docker or Kubernetes
docker exec crowdsec cscli collections list
kubectl exec -n crowdsec -it $(kubectl get pods -n crowdsec -l type=lapi -o name) -- cscli collections list

Compare your installed collections against your actual services (nginx, apache, ssh, etc.). Missing collections means no detection rules for those services.

You can try to run a test on your logs to spot issues. See the cscli explain documentation

🛠️ Install required collections for your services

Visit the CrowdSec Hub to find collections for your stack by browsing or searching. A collection bundles parsers and scenarios for a given service. For example, the NGINX collection includes NGINX parsers and scenarios for common HTTP attacks.

Collections are packaged for various type of services:

  • Web servers: crowdsecurity/nginx, crowdsecurity/apache2, crowdsecurity/caddy
  • SSH: crowdsecurity/sshd
  • Linux base: crowdsecurity/linux
  • AppSec/WAF: crowdsecurity/appsec-* collections for application-level protection

Install collections using:

sudo cscli collections install crowdsecurity/nginx
sudo systemctl reload crowdsec
Run this command for Docker or Kubernetes

Docker

docker exec crowdsec cscli collections install crowdsecurity/nginx
docker restart crowdsec

Kubernetes

kubectl exec -n crowdsec -it $(kubectl get pods -n crowdsec -l type=lapi -o name) -- cscli collections install crowdsecurity/nginx
kubectl rollout restart deployment/crowdsec -n crowdsec

Events massively whitelisted

Misconfigured whitelists can cause alerts to be ignored.

🔎 Check whitelisting metrics

Check whether many (or all) lines are being whitelisted.

sudo cscli metrics show acquisition
Run this command for Docker or Kubernetes

Docker

docker exec crowdsec cscli metrics show scenarios

Kubernetes

kubectl exec -n crowdsec -it $(kubectl get pods -n crowdsec -l type=lapi -o name) -- cscli metrics show scenarios

Look at the Lines whitelisted column

╭────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ Acquisition Metrics │
├───────────────────────┬──────────────┬────────────────┬────────────────────────┬───────────────────┤
│ Source │ Lines read │ Lines parsed │ Lines unparsed │ Lines poured to bucket │ Lines whitelisted │
├──────────┼────────────┼──────────────┼────────────────┼────────────────────────┼───────────────────┤
│ file:... │ 743 │ 635 │ 108 │ - │ 185 │
╰──────────┴────────────┴──────────────┴────────────────┴────────────────────────┴───────────────────╯

🛠️ Make sure the IP in your logs are public IPs

Due to misconfiguration or log source choice, source IPs can be private/internal addresses instead of X-Forwarded-For client IPs.

Look at your log files and make sure any proxy in front of your service provides X-Forwarded-For source IPs.

🛠️ Review and adjust your custom whitelist configuration

If you create custom whitelist configuration via s02-enrich, make sure it does not discard legitimate alerts.
Check our whitelisting documentation.

Scenarios in simulation mode

🔎 Check if scenarios are in simulation mode

Verify whether your scenarios are set to simulation mode:

sudo cscli simulation status
Run this command for Docker or Kubernetes

Docker

docker exec crowdsec cscli simulation status

Kubernetes

kubectl exec -n crowdsec -it $(kubectl get pods -n crowdsec -l type=lapi -o name) -- cscli simulation status

If scenarios are listed, they are in simulation mode and are not sent to CrowdSec Console (they should still appear in cscli alerts list).

🛠️ Disable simulation mode to generate alerts

Disable simulation mode to allow alerts to be generated:

sudo cscli simulation disable --all
sudo systemctl reload crowdsec
Run this command for Docker or Kubernetes

Docker

docker exec crowdsec cscli simulation disable --all
docker restart crowdsec

Kubernetes

kubectl exec -n crowdsec -it $(kubectl get pods -n crowdsec -l type=lapi -o name) -- cscli simulation disable --all
kubectl rollout restart deployment/crowdsec -n crowdsec

You can also disable simulation for specific scenarios only:

sudo cscli simulation disable crowdsecurity/ssh-bf
sudo systemctl reload crowdsec

Legitimate low-activity environment

If you have protection measures in front of your services, they may already block unwanted traffic.
Given background internet noise, publicly exposed services usually still receive reconnaissance traffic, but CrowdSec blocklists may already block most malicious traffic.
Let’s check.

🔎 Check traffic volume being processed

Check how much traffic your service is processing:

sudo cscli metrics show acquisition parsers
Run this command for Docker or Kubernetes

Docker

docker exec crowdsec cscli metrics show acquisition parsers

Kubernetes

kubectl exec -n crowdsec -it $(kubectl get pods -n crowdsec -l type=lapi -o name) -- cscli metrics show acquisition parsers

Look at "Lines parsed" - if this number is very low (dozens or hundreds per day), you may simply have insufficient traffic volume for malicious activity to appear.

🔎 Check if blocklists are blocking threats upstream

Check whether proactive defenses are blocking threats upstream. You can do this with cscli or Console remediation metrics if you have a compatible bouncer.

sudo cscli decisions list
sudo cscli metrics show bouncers
Run this command for Docker or Kubernetes

Docker

docker exec crowdsec cscli decisions list
docker exec crowdsec cscli metrics show bouncers

Kubernetes

kubectl exec -n crowdsec -it $(kubectl get pods -n crowdsec -l type=lapi -o name) -- cscli decisions list
kubectl exec -n crowdsec -it $(kubectl get pods -n crowdsec -l type=lapi -o name) -- cscli metrics show bouncers

High numbers of active decisions or bouncer blocks may indicate proactive defenses are already blocking malicious actors. Still verify that no other issue exists.

Getting Help

If you've verified logs are being read and parsed correctly but still see no alerts:

  • Check Discourse for similar cases
  • Ask on Discord with your cscli metrics output