Dashboards amb Crowdsec: Metabase o Prometheus con Grafana

En aquest post veurem dues opcions de tenir un seguiment de la nostra infraestructura de Crowdsec, tindrem dues opcions, una senzillesa, un contenidor de Docker amb tot llest. O, perquè no, gaudir de la vida i integrar-lo a Prometheus i visualitzar-lo amb Grafana!

Si volem conèixer l'estat de les nostres màquines amb Crowdsec, el millor és realitzar-ho mitjançant GUI i que alguns dashboards ja fets per la comunitat ens ajudin, el que s' ha dit, tenim dues opcions, una usar un contenidor de Docker amb Metabase ja preconfigurat a connectar contra el LAPI local, quelcom senzillesa i bàsica que pot servir. O podem enviar-li a un Prometheus les mètriques dels nostres agents i després visualitzar-lo a Grafana, al gust.

Metabase,

Necessitarem Docker, si no el tenim instal·lat prèviament:

sudo apt install docker.io -y

Y ejecutando 'sudo cscli dashboard setup –escoltar 0.0.0.0’ el desplegarem:

Configuració del tauler de control sudo cscli --listen 0.0.0.0
    ? La metabase requereix 1-2 GB de RAM, El vostre sistema està per sota d'aquest requisit Continuar ? Yes
    ? For metabase docker to be able to access SQLite file we need to add a new group called 'crowdsec' to the system, Està bé per a tu ? (S/n) Y INFORMACIÓ[12-11-2022 05:09:02 PM] Extracció de la metabase/metabase de la imatge de l'acoblador:v0.41.5
    .............................................................................................................................................
    INFO[12-11-2022 05:09:32 PM] creating container 'crowdsec-metabase'
    INFO[12-11-2022 05:09:38 PM] Esperant que la metabase estigui activa (pot trigar fins a un minut)
    ..............................
    INFO[12-11-2022 05:11:50 PM] La metabase està llesta URL       : 'http://0.0.0.0:3000'
        username  : 'Cr******@cr******.net'
        password  : 'xxxxxxxxxxxxxxxx'

Quan arranque el contenedor de Metabase, ja podremos obrir un navegador a http://DIRECCION_IP:3000

Aquest seria el Home, on directament ja veiem la connexió a Crowdsec, y 3 panells, amb la llista de les decisions actives, un històric de les alertes o un dashboard general.

Dashboard de CS – Actives Decisions List,

Dashboard de CS – Alert History,

Dashboard de CS – Main Dashboard.

Després el Dashboard podrem parar-lo, arrencar-lo o eliminar-lo:

sudo cscli dashboard stop sudo cscli dashboard start sudo cscli dashboard remove --force

Prometheus + Grafana,

A cada agent de Crowdsec, en el seu fitxer de configuració '/etc/crowdsec/config.yaml', haurem d'habilitar Prometheus, indicarem un port d'escolta pel qual oferirem les mètriques, quedant una cosa així:

prometheus:
  enabled: true level: full listen_addr: 0.0.0.0
  listen_port: 6060

I recarreguem Crowdsec perquè apliqui els canvis anteriors:

sudo systemctl restart crowdsec

Per provar que això funciona, podem tirar un curl a aquest port, des de la pròpia màquina o una remota, des de shell executem 'curl http://DIRECCION_IP:6060/metrics’ per validar:

curl http://192.168.x.xxx:6060/metrics
    # HELP cs_active_decisions Number of active decisions.
    # TYPE cs_active_decisions gauge cs_active_decisions{action ="ban",origin ="CAPI",reason ="crowdsecurity/CVE-2022-xxxxx"} 16
    cs_active_decisions{action ="ban",origin ="CAPI",reason ="crowdsecurity/CVE-2022-xxxxx"} 2
    cs_active_decisions{action ="ban",origin ="CAPI",reason ="crowdsecurity/CVE-2022-xxxxx"} 2
    cs_active_decisions{action ="ban",origin ="CAPI",reason ="crowdsecurity/CVE-2022-xxxxx"} 669
    cs_active_decisions{action ="ban",origin ="CAPI",reason ="crowdsecurity/apache_log4j2_cve-xxxxx"} 11
    cs_active_decisions{action ="ban",origin ="CAPI",reason ="crowdsecurity/fortinet-cve-xxxxx"} 237
    cs_active_decisions{action ="ban",origin ="CAPI",reason ="crowdsecurity/grafana-cve-xxxxx"} 27
    cs_active_decisions{action ="ban",origin ="CAPI",reason ="crowdsecurity/http-backdoors-attempts"} 101
    cs_active_decisions{action ="ban",origin ="CAPI",reason ="crowdsecurity/http-bad-user-agent"} 3632
...

Ara ja al nostre servidor de Prometheus ja podrem afegir les mètriques de cada agent de Crowdsec, en el seu fitxer de configuració ho indiquem '/usr/local/bin/prometheus/prometheus.yml’

...
scrape_configs:
...
  - job_name: 'crowdsec_OS-GRA-04'
    static_configs:
    - targets: ['192.168.x.xxx:6060']
      labels:
        machine: 'OS-GRA-04'

  - job_name: 'crowdsec_OS-JITSI-05'
    static_configs:
    - targets: ['192.168.x.xxx:6060']
      labels:
        machine: 'OS-JITSI-05'
...

I reiniciaríem Prometheus perquè pugui llegir ja les dades dels nostres Crowdsec!

sudo service prometheus restart

Si no tenim el connector contra el Prometheus des de Grafana, ho fem, creem el Data Source.

Podrem descarregar de https://github.com/crowdsecurity/grafana-dashboards uns dashboards ja preconfigurats, així que simplement descarreguem el fitxer JSON i l'importem a Grafana. Aquest seria el dashboard amb els detalls per màquina agent o 'Crowdsec Details per Machine'.

Dashboard de Crowdsec Insight, una ullada breu.

I aquest últim 'Crowdsec Overview’ a tall resum,

Bo, doncs espero que us hagi resultat interessant o almenys curiosa la manera tan simple de conèixer l'estat de les nostres màquines amb Crowdsec.

Una abraçada!

Posts recomanats

Autor

nheobug@bujarra.com
Autor del blog Bujarra.com Cualquier necesidad que tengas, no dubtis a contactar amb mi, us intentareu ajudar sempre que pugui, compartir és viure ;) . Gaudir dels documents!!!