Перейти к содержимому
Skip to main content

Интеграция с 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}

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

  1. Убедитесь, что агент входит в группу systemd-journal и может читать журнал без sudo.
  2. Проверьте, что свежие сообщения flaree-agent.service появляются и в journalctl, и в Flaree.
  3. Убедитесь, что курсор сохраняется: после рестарта агент не должен перечитывать уже отправленные записи.
# Хвост журнала за последние 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

warning

Не выставляйте priority: debug в production: journald отдаёт весь поток debug-сообщений, что быстро упрёт в квоту ingestion — см. quota-exceeded.