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's not due to other issues, here are the diagnosis and resolutions for other root causes.

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 either browsing or using the search bar. A collection is meant to embed parsers adn scenario that cover all that CrowdSec can detect for a given service: ie. The NGINX collection will have NGINX parser and Scenario correcpondig to HTTP base 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

Misconfiguration of whitelists may result in alerts being ignored

🔎 Check whitelisting metrics

Verify if you have a lot of whitelisted lines maybe all of them.

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 some misconfiguration or choice of log file it cna happen that the source IPs in the log are not the X-Forwarded-For but a private IP or your infrastructure.

Look at your log files and make sure any proxying mechanism in front of your service provide the X-Forwarded-For source IPs.

🛠️ Review and adjust your custom whitelist configuration

If you create custom whitelist configuration via s02-enrich, make sure it's not discarding legitimate alerts.
Check our documentation about whitelisting.

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're in simulation mode and won't be sent to CrowdSec console (they should however 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**
```bash
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 deployed ahead of your services it might block all unwanted traffic already.
With the state of background noise on the internet it's unlikely for a popular service exposed on the internet to completely avoid reconnaissance traffic but CrowdSec blocklists are very efficient at that and may be blocking all bad traffic already.
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 if proactive defenses are blocking threats upstream. you can do so with cscli or within the 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 your proactive defenses are effectively blocking all malicious actors. However lets make sure no other issues

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