
Painéis com Crowdsec: Metabase ou Prometheus com Grafana
Neste post, veremos duas opções para acompanhar nossa infraestrutura Crowdsec, Teremos duas opções, Um pouco simples, Um contêiner Docker pronto para uso. Ou, Por que não, aproveite a vida e integre-a ao Prometheus e visualize-a com o Grafana!
Se quisermos conhecer o estado das nossas máquinas com Crowdsec, é melhor fazê-lo através da GUI e que alguns dashboards já feitos pela comunidade nos ajudem, Como eu disse, temos duas opções, uma é utilizar um contêiner Docker com Metabase já pré-configurado para conectar ao LAPI local, algo simples e básico que pode servir. Ou podemos enviar as métricas dos nossos agentes para um Prometheus e depois visualizar no Grafana, a gosto.
Metabase,
Precisaremos do Docker, se não o tivermos instalado previamente:
sudo apt install docker.io -y
E executando 'sudo cscli dashboard setup' –listen 0.0.0.0’ Vamos implantá-lo:
sudo cscli dashboard setup --listen 0.0.0.0
? Metabase requer 1-2GB de RAM, o seu sistema está abaixo deste requisito, continue ? Sim
? Para que o docker da metabase possa acessar o arquivo SQLite, precisamos adicionar um novo grupo chamado 'crowdsec' ao sistema, está ok para você ? (Y/n) Y
INFO[12-11-2022 05:09:02 PM] Pulling docker image metabase/metabase:v0.41.5
.............................................................................................................................................
INFORMAÇÃO[12-11-2022 05:09:32 PM] creating container 'crowdsec-metabase'
INFO[12-11-2022 05:09:38 PM] waiting for metabase to up (can take up to a minute)
..............................
INFORMAÇÃO[12-11-2022 05:11:50 PM] Metabase is ready
URL : 'http://0.0.0.0:3000'
username : 'cr******@******ec.net'
password : 'xxxxxxxxxxxxxxxx'
Cuando arranque el contenedor de Metabase, ya podremos abrir un navegador a http://DIRECCION_IP:3000
Este sería el Home, donde diretamente ya vemos la conexión a Crowdsec, e 3 paneles, con la lista de las decisiones ativas, un histórico de las alertas o un dashboard general.
Dashboard de CS – Atives Decisions List,
Dashboard de CS – Alert History,
Dashboard de CS – Main Dashboard.
Luego el Dashboard podremos pararlo, arrancarlo o eliminarlo:
sudo cscli dashboard stop sudo cscli dashboard start sudo cscli dashboard remove --force
Prometeu + Grafana,
En cada agente de Crowdsec, en su fichero de configuración '/etc/crowdsec/config.yaml', deberemos habilitar Prometheus, indicaremos un puerto de escucha por el que ofreceremos las métricas, quedando algo así:
Prometeu: Habilitado: true level: full listen_addr: 0.0.0.0 listen_port: 6060
Y recargamos Crowdsec para que aplique los cambios anteriores:
sudo systemctl reiniciar crowdsec
Para probar que esto funciona, podemos tirar un curl a dicho puerto, desde la propia máquina o una remota, desde shell ejecutamos 'curl http://DIRECCION_IP:6060/Métricas’ para validar:
Curl HTTP://192.168.x.xxx:6060/Métricas # HELP cs_ative_decisions Número de decisões ativas. # TYPE cs_ative_decisions gauge cs_ative_decisions{action="ban",origin="CAPI",reason="crowdsecurity/CVE-2022-xxxxx"} 16 cs_ative_decisions{action="ban",origin="CAPI",reason="crowdsecurity/CVE-2022-xxxxx"} 2 cs_ative_decisions{action="ban",origin="CAPI",reason="crowdsecurity/CVE-2022-xxxxx"} 2 cs_ative_decisions{action="ban",origin="CAPI",reason="crowdsecurity/CVE-2022-xxxxx"} 669 cs_ative_decisions{action="ban",origin="CAPI",reason="crowdsecurity/apache_log4j2_cve-xxxxx"} 11 cs_ative_decisions{action="ban",origin="CAPI",reason="crowdsecurity/fortinet-cve-xxxxx"} 237 cs_ative_decisions{action="ban",origin="CAPI",reason="crowdsecurity/grafana-cve-xxxxx"} 27 cs_ative_decisions{action="ban",origin="CAPI",reason="crowdsecurity/http-backdoors-attempts"} 101 cs_ative_decisions{action="ban",origin="CAPI",reason="crowdsecurity/http-bad-user-agent"} 3632 ...
Agora já no nosso servidor Prometheus poderemos adicionar as métricas de cada agente do Crowdsec, no seu ficheiro de configuração indicamos '/usr/local/bin/prometheus/prometheus.yml'’
... scrape_configs: ... - job_name: 'crowdsec_OS-GRA-04' static_configs: - Objetivos: ['192.168.x.xxx:6060'] rótulos: máquina: 'OS-GRA-04' - job_name: 'crowdsec_OS-JITSI-05' static_configs: - Objetivos: ['192.168.x.xxx:6060'] rótulos: máquina: 'OS-JITSI-05' ...
E reiniciaríamos o Prometheus para que ele possa ler os dados do nosso Crowdsec!
sudo service prometheus restart
Se não tivermos o conector contra o Prometheus a partir do Grafana, fazemos isso, criamos a Fonte de Dados.
Poderemos fazer o download de https://github.com/crowdsecurity/grafana-dashboards uns dashboards já pré-configurados, então simplesmente fazemos o download do ficheiro JSON e o importamos no Grafana. Este sería el dashboard con los detalles por máquina agente o ‘Crowdsec Details per Machine’.
Dashboard de Crowdsec Insight, un vistazo breve.
Y este último ‘Crowdsec Overview’ a modo resumen,
Poço, pues espero que os haya resultado interesante o al menos curiosa la manera tan simple de conocer el estado de nuestras máquinas con Crowdsec.
Um abraço!