metalnikovg.ru
MetalnikovG.ru

Мониторинг Crowdsec в Grafana

Banner.png
Опубликовано
//
2 мин. чтения

VictoriaMetrics — это высокопроизводительное решение для обработки и анализа временных рядов данных. Оно представляет собой распределенную систему, спроектированную для хранения, сжатия и выполнения запросов к временным рядам в реальном времени. Продукт обладает горизонтальной масштабируемостью, что позволяет обрабатывать большие объемы данных.

В нашем случае Victoria Metrics позволит нам организовать сбор данных о событиях блокировки используя POST уведомления которые генерирует Сrowdsec и легко связать их с панелью мониторинга Crowdsec Cyber Threat Insights на базе Grafana. Ознакомиться с документацией дашборда можно здесь.

Разворачиваем Victoria Metrics

В нашем примере будем использовать [[Мониторинг роутера Mikrotik при помощи Prometheus и Grafana в docker контейнере|стек мониторинга]]:

victoria-metrics:
  image: victoriametrics/victoria-metrics
  container_name: victoria-metrics
  volumes:
    - ./victoria-metrics:/victoria-metrics-data
  networks:
    monitoring: null
  ports:
    - 8428:8428
  restart: unless-stopped

Настройка Crowdsec

Необходимо внести формат отправки http уведомлений по событию в конфигурационном файле crowdsec/config/notifications/http.yaml:

type: http
name: http_default
log_level: info
format: >
  {{- range $Alert := . -}}
  {{- range .Decisions -}}
  {"metric":{"__name__":"cs_lapi_decision","instance":"gateway","country":"{{$Alert.Source.Cn}}","asname":"{{$Alert.Source.AsName}}","asnumber":"{{$Alert.Source.AsNumber}}","latitude":"{{$Alert.Source.Latitude}}","longitude":"{{$Alert.Source.Longitude}}","iprange":"{{$Alert.Source.Range}}","scenario":"{{.Scenario}}","type":"{{.Type}}","duration":"{{.Duration}}","scope":"{{.Scope}}","ip":"{{.Value}}"},"values": [1],"timestamps":[{{now|unixEpoch}}000]}
  {{- end }}
  {{- end -}}
url: http://192.168.78.110:8428/api/v1/import
method: POST
  • 192.168.78.110 - адрес установки Victoria Metrics
  • gateway - название сервера для разделения разных установок Crowdsec

Далее необходимо внести изменение в файл crowdsec/config/profiles.yaml раскомментировав параметры:

name: default_ip_remediation
notifications:
  - http_default
---
name: default_range_remediation
notifications:
  - http_default

Проверяем настройку можно командой:

docker exec crowdsec cscli notifications list

Проверяем что VictoriaMetrics получает метрики из Crowdsec. Для это добавляем в бан любой адрес:

docker exec crowdsec cscli decisions add --ip 109.120.132.95

Cоздаем запрос и выбираем ответ в формате json:

cs_lapi_decision{ip="192.168.0.1"}[1h]

В ответ мы должны получить результат:

Настройка Grafana

Добавляем в Grafana источник данных Victoria Metrics по правилам Prometheus:

victoria-metrics.yaml
apiVersion: 1
datasources:
  -
    access: proxy
    basicAuth: false
    name: victoria-metrics
    type: prometheus
    url: "http://victoria-metrics:8428/"

Импортируем дашборд с ID:21689

Заключение

C помощью Victoria Metrics мы получили легковесный дашборд для Crowdsec на базе Grafana.

← Предыдущая заметкаМониторинг Traefik в Grafana
Следующая заметка →Мониторинг Adguard в Grafana