Сбор логов
Агент собирает логи из трёх типов источников — файлы, Docker-контейнеры и journald — и прогоняет каждую строку через единый пайплайн: парсер → фильтры → маскирование → сэмплирование → отправка. Источники и правила обработки настраиваются в дашборде; агент подтягивает изменения при синхронизации конфига каждые 30 секунд.
Предварительные требования
- Агент Flaree установлен и в статусе Online.
- Процесс агента имеет права на чтение источника: файл лога, Docker-сокет (
:ro) или группаsystemd-journal. - Компонент, к которому будут привязаны записи, создан в дашборде.
Минимальная конфигурация
Источники создаются в дашборде: Агенты → ваш агент → Источники логов → Новый источник. Тип-специфичный конфиг:
{ "path": "/var/log/myapp/app.log" }
Для Docker — { "container": "api" }, для journald — { "unit": "nginx.service" }. Локальный agent.yaml для сбора логов менять не нужно.
Полная конфигурация
Этапы пайплайна для каждой строки:
- Ридер.
File— tail с детектом ротации (poll каждые 250 мс),Docker— стримstdout/stderrчерез Engine API,Journald—journalctl -o json --follow. - Парсер. При формате
Autoагент анализирует первые 100 строк и выбирает лучший из:json,logfmt,nginx combined,apache common; если ни один не подошёл —plaintextс эвристикой уровня по ключевым словам. Формат можно зафиксировать явно. - Фильтры. Regex-правила include/exclude; exclude всегда сильнее, одно совпадение exclude отбрасывает строку.
- Маскирование. Встроенные правила вычищают Bearer-токены, номера карт и
password=...в строках подключения ещё на хосте; свои regex-правила добавляются в настройках источника. Бэкенд никогда не видит незамаскированную строку. - Сэмплирование. Доли по уровням, например
{"INFO": 0.1}— оставить 10 % INFO; ERROR и WARN по умолчанию не сэмплируются. - Отправка. Батчи уходят через общий транспорт агента с буферизацией при недоступности бэкенда.
Поля источника в дашборде:
| Поле | Описание |
|---|---|
| Тип | File, Docker, Journald, Otlp. |
| Формат | Auto (рекомендуется), Json, Logfmt, NginxCombined, ApacheCommon, Plaintext. |
| Компонент | Component для привязки записей. |
| Masking / Sampling / Filters | JSON-настройки этапов 3–5. |
Проверка работы
- Убедитесь, что источник включён (тумблер в списке источников) и агент синхронизировал конфиг.
- Сгенерируйте тестовую запись в источнике и найдите её в дашборде у компонента в течение минуты.
- Проверьте локальные логи агента — не должно быть ошибок доступа к файлу или сокету.
# Тестовая запись в файл-источник
echo '{"level":"error","message":"flaree-test"}' >> /var/log/myapp/app.log
# Логи агента
journalctl -u flaree-agent -n 30 --no-pager
Troubleshooting
- Записи не доходят до дашборда — чек-лист нет данных.
- Записи есть, но с уровнем INFO вместо ожидаемого — парсер не распознал формат; задайте формат явно вместо
Auto. - Часть записей пропадает при высоком трафике — проверьте настройки сэмплирования источника и квоты.
подсказка
Правила алертинга по логам (LogRule) настраиваются на компоненте — см. правила и инциденты.