Сбор логов из 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.