Локальная панель мониторинга Crowdsec

Для организации панели мониторинга используется Metabase с заготовленным схемой базы данных и дашбордов от компании Crowdsek.

Пример панели
Self-hosting. CrowdSec.png

Источник опорных материалов: example-docker-compose/basic at main · crowdsecurity/example-docker-compose · GitHub

Metabase использует базу данных и файлы crowdsek из папки ./db которая соответствует /var/lib/crowdsec/data/ в контейнере, они формуются в процессе работы. Все настройки сохраняются в папке ./metabase

Для настройки необходимо выполнить предварительную загрузку схемы находясь в папке docker контейнера:

mkdir metabase 
wget https://crowdsec-statics-assets.s3-eu-west-1.amazonaws.com/metabase_sqlite.zip
unzip metabase_sqlite.zip -d metabase

Файл настроек:
![[metabase_sqlite.zip]]

Загруженная схема базы имеет пред настроенные дашборды и отчеты по аналитике crowdsec.

Данные авторизации по умолчанию

Логин: [email protected]
Пароль: !!Cr0wdS3c_M3t4b4s3??

Metabase основан на java что приводит к ряду не очень приятных с точки зрения оптимизации проблемам. Основная из которых высокое потребление оперативной памяти даже в режиме простоя. Фактически программа съест все что дадут и нечего не вернет.

Error

В базовой настройке metabase может потреблять до 4Гб оперативной памяти что вообще не оправдано.

Для исправления ситуации необходимо ограничить потребление памяти параметрами JAVA_OPTS и mem_limit, минимально рабочая конфигурация выявленная в рамках экспериментов 256Мб на java машину в параметре JAVA_OPTS и 512Мб для всего контейнера в таком виде потребление ОЗУ в простое будет минимальное 200-300Мб и при запросе до 500.

Предупреждение

При такой настройке запросы и открытие панелей может выполняться очень долго. Оптимальным с точки зрения запуска будет 0.75-1Гб ОЗУ, но как по мне это слишком неоправдано.