Перейти к содержимому
Перейти к основному содержимому

Сбор логов

Агент собирает логи из трёх типов источников — файлы, Docker-контейнеры и journald — и прогоняет каждую строку через единый пайплайн: парсер → фильтры → маскирование → сэмплирование → отправка. Источники и правила обработки настраиваются в дашборде; агент подтягивает изменения при синхронизации конфига каждые 30 секунд.

Предварительные требования

  • Агент Flaree установлен и в статусе Online.
  • Процесс агента имеет права на чтение источника: файл лога, Docker-сокет (:ro) или группа systemd-journal.
  • Компонент, к которому будут привязаны записи, создан в дашборде.

Минимальная конфигурация

Источники создаются в дашборде: Агенты → ваш агент → Источники логов → Новый источник. Тип-специфичный конфиг:

{ "path": "/var/log/myapp/app.log" }

Для Docker — { "container": "api" }, для journald — { "unit": "nginx.service" }. Локальный agent.yaml для сбора логов менять не нужно.

Полная конфигурация

Этапы пайплайна для каждой строки:

  1. Ридер. File — tail с детектом ротации (poll каждые 250 мс), Docker — стрим stdout/stderr через Engine API, Journaldjournalctl -o json --follow.
  2. Парсер. При формате Auto агент анализирует первые 100 строк и выбирает лучший из: json, logfmt, nginx combined, apache common; если ни один не подошёл — plaintext с эвристикой уровня по ключевым словам. Формат можно зафиксировать явно.
  3. Фильтры. Regex-правила include/exclude; exclude всегда сильнее, одно совпадение exclude отбрасывает строку.
  4. Маскирование. Встроенные правила вычищают Bearer-токены, номера карт и password=... в строках подключения ещё на хосте; свои regex-правила добавляются в настройках источника. Бэкенд никогда не видит незамаскированную строку.
  5. Сэмплирование. Доли по уровням, например {"INFO": 0.1} — оставить 10 % INFO; ERROR и WARN по умолчанию не сэмплируются.
  6. Отправка. Батчи уходят через общий транспорт агента с буферизацией при недоступности бэкенда.

Поля источника в дашборде:

ПолеОписание
ТипFile, Docker, Journald, Otlp.
ФорматAuto (рекомендуется), Json, Logfmt, NginxCombined, ApacheCommon, Plaintext.
КомпонентComponent для привязки записей.
Masking / Sampling / FiltersJSON-настройки этапов 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) настраиваются на компоненте — см. правила и инциденты.

Связанные страницы: journald · Nginx · Docker · правила.