Prometheus
CrowdSec can expose a prometheus endpoint for collection (on http://127.0.0.1:6060/metrics
by default). You can edit the listen_addr in config.yaml to allow an external Prometheus to scrape the metrics.
The goal of this endpoint, besides the usual resources consumption monitoring, aims at offering a view of CrowdSec "applicative" behavior :
- is it processing a lot of logs ? is it parsing them successfully ?
- are a lot of scenarios being triggered ?
- are a lot of IPs banned ?
- etc.
All the counters are "since CrowdSec start".
Metrics details
Scenarios
cs_buckets
: number of scenario that currently existcs_bucket_created_total
: total number of instantiation of each scenariocs_bucket_overflowed_total
: total number of overflow of each scenariocs_bucket_underflowed_total
: total number of underflow of each scenario (bucket was created but expired because of lack of events)cs_bucket_poured_total
: total number of event poured to each scenario with source as complementary key
example
#2030 lines from `/var/log/nginx/access.log` were poured to `crowdsecurity/http-scan-uniques_404` scenario
cs_bucket_poured_total{name="crowdsecurity/http-scan-uniques_404",source="/var/log/nginx/access.log"} 2030
Parsers
cs_node_hits_total
: how many times an event from a specific source was processed by a parser node :
example
# 235 lines from `auth.log` were processed by the `crowdsecurity/dateparse-enrich` parser
cs_node_hits_total{name="crowdsecurity/dateparse-enrich",source="/var/log/auth.log"} 235
cs_node_hits_ko_total
: how many times an event from a specific was unsuccessfully parsed by a specific parser
example
# 2112 lines from `error.log` failed to be parsed by `crowdsecurity/http-logs`
cs_node_hits_ko_total{name="crowdsecurity/http-logs",source="/var/log/nginx/error.log"} 2112
-
cs_node_hits_ok_total
: how many times an event from a specific source was successfully parsed by a specific parser -
cs_parser_hits_total
: how many times an event from a source has hit the parser -
cs_parser_hits_ok_total
: how many times an event from a source was successfully parsed -
cs_parser_hits_ko_total
: how many times an event from a source was unsuccessfully parsed
Acquisition
Acquisition metrics are split by datasource. The following metrics are available :
Cloudwatch
cs_cloudwatch_openstreams_total
: number of opened stream within group (by group)cs_cloudwatch_stream_hits_total
: number of event read from stream (by group and by stream)
Files
cs_filesource_hits_total
: Total lines that were read (by source file)
Journald
cs_journalctlsource_hits_total
: Total lines that were read (by source filter)
Syslog
cs_syslogsource_hits_total
: Total lines that were received (by the syslog server)cs_syslogsource_parsed_total
: Total lines that were successfully parsed by the syslog server
Local API
cs_lapi_route_requests_total
: number of calls to each route per methodcs_lapi_machine_requests_total
: number of calls to each route per method grouped by machinescs_lapi_bouncer_requests_total
: number of calls to each route per method grouped by bouncerscs_lapi_decisions_ko_total
: number of unsuccessfully responses when bouncers ask for an IP.cs_lapi_decisions_ok_total
: number of successfully responses when bouncers ask for an IP.
Info
cs_info
: Information about CrowdSec (software version)
More ways to learn
Watch a short series of videos on how to observe and monitor CrowdSec.
Learn with CrowdSec AcademyExploitation with prometheus server & grafana
Those metrics can be scraped by prometheus server and visualized with grafana. They can be downloaded here :