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

Сбор логов из journald

Агент собирает журналы systemd через journalctl --follow и отправляет их во Flaree по общему пайплайну логов. Источник настраивается в дашборде — можно читать журнал целиком или логи одного unit-а.

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

  • Linux-хост с systemd; бинарник journalctl доступен в PATH процесса агента.
  • Агент установлен как systemd-сервис (см. установку на Linux).
  • Пользователь агента состоит в группе systemd-journal — иначе journalctl покажет только журнал самого пользователя.

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

Добавьте пользователя агента в группу и перезапустите сервис:

sudo usermod -aG systemd-journal flaree-agent
sudo systemctl restart flaree-agent

Затем в дашборде: Агенты → ваш агент → Источники логов → Новый источник, тип Journald, в конфиге укажите unit:

{ "unit": "nginx.service" }

Без unit агент читает весь журнал (journald:*).

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

Агент запускает journalctl -o json --follow --no-pager --lines=10 (плюс -u <unit>, если задан) и парсит вывод как JSON — каждая запись журнала приходит со всеми systemd-полями. При завершении процесса journalctl агент перезапускает его через секунду, поэтому ротация журнала не теряет строк.

Настройки источника в дашборде:

ПолеОписание
UnitИмя systemd-unit-а; пусто — весь журнал.
ФорматОставьте Auto — journald отдаёт JSON, парсер определится сам.
КомпонентComponent, к которому привязываются записи.
Фильтры / маскирование / сэмплированиеОбщие настройки пайплайна, см. сбор логов.

Обновлённая конфигурация источников доезжает до агента при очередной синхронизации (каждые 30 секунд) — перезапуск агента не нужен.

Для нескольких unit-ов создайте несколько источников — по одному на unit. Это позволяет привязать каждый сервис к своему компоненту и настроить фильтры и сэмплирование независимо.

Проверка работы

  • Убедитесь, что unit действительно пишет в журнал.
  • Проверьте, что процесс агента может читать журнал от своего пользователя.
  • В дашборде записи появляются у выбранного компонента в течение минуты.
# Журнал unit-а не пуст
journalctl -u nginx.service -n 5 --no-pager

# Чтение журнала от пользователя агента
sudo -u flaree-agent journalctl -u nginx.service -n 1 --no-pager

Troubleshooting

  • Записи не появляются в дашборде — чек-лист нет данных.
  • journalctl от пользователя агента возвращает No journal files were found — пользователь не в группе systemd-journal или journald работает в volatile-режиме без /var/log/journal.
  • Записи идут с задержкой при высоком трафике — проверьте сэмплирование источника и квоты.

Связанные страницы: сбор логов · Nginx · квоты и retention.