Интеграция с journald
info
Перевод в процессе / Translation in progress. See русская версия.
Интеграция стримит системные и unit-логи из systemd-journald прямо в Flaree: агент подписывается на журнал через native API, хранит курсор между рестартами и умеет фильтровать по приоритету, unit-у и полям. Логи поступают в ingestion-шлюз в реальном времени без промежуточного файла.
Предварительные требования
- Linux-хост с
systemd-journald(обычно ≥ 245) и директорией/var/log/journalв persistent-режиме. - Агент Flaree установлен через systemd-сервис (см. Host).
- Пользователь агента входит в группу
systemd-journal— для доступа к/var/log/journalбез sudo. - На диске зарезервировано ≥ 100 МБ под
cursor_storeи локальный spool-буфер агента. - Токен агента передан через
${FLAREE_TOKEN}.
Минимальная конфигурация
Минимальная конфигурация — одна секция с перечнем юнитов, чьи логи отправляем:
# agent.yaml
integrations:
journald:
enabled: true
units:
- flaree-agent.service
Полная конфигурация
Полный пример с приоритетом, временным окном, редактированием полей и хранимым курсором:
# agent.yaml
integrations:
journald:
enabled: true
# Что читать
units:
- flaree-agent.service
- nginx.service
- postgresql.service
- sshd.service
# Фильтр по приоритету (RFC 5424: 0=emerg ... 7=debug)
priority: info
# С какого момента поднимать хвост при первом старте
since: 5m
# Поля, которые нужно маскировать перед отправкой
fields_redact:
- MESSAGE_PASSWORD
- MESSAGE_TOKEN
- _CMDLINE
# Дополнительные фильтры по полям journald
match:
_TRANSPORT:
- stdout
- kernel
SYSLOG_FACILITY:
- "3"
- "4"
# Сохранение курсора между рестартами
cursor_store:
path: /var/lib/flaree-agent/journald.cursor
flush_interval: 5s
# Sampling по уровням
sampling:
info: 0.1
warn: 1.0
error: 1.0
# Credentials
token: ${FLAREE_TOKEN}
endpoint: ${FLAREE_ENDPOINT}
Проверка работы
- Убедитесь, что агент входит в группу
systemd-journalи может читать журнал без sudo. - Проверьте, что свежие сообщения
flaree-agent.serviceпоявляются и вjournalctl, и в Flaree. - Убедитесь, что курсор сохраняется: после рестарта агент не должен перечитывать уже отправленные записи.
# Хвост журнала за последние 5 минут
journalctl -u flaree-agent --since "5 min ago" --no-pager
# Проверка, что journald хранит ожидаемое поле
journalctl --field MESSAGE_ID | head -n 10
# Позиция курсора агента
systemctl show flaree-agent --property=StateDirectory
Troubleshooting
- Если логи не поступают в дашборд, см. Если логи не поступают, см. Нет данных.
- Если логи задвоились после рестарта, проверьте права на
cursor_store.pathи см. Agent offline.
warning
Не выставляйте priority: debug в production: journald отдаёт весь поток debug-сообщений, что быстро упрёт в квоту ingestion — см. quota-exceeded.