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

Сбор логов

info

Перевод в процессе / Translation in progress. See русская версия.

Flaree агент собирает логи из нескольких источников: текстовые файлы (tail), unix-сокеты и syslog (UDP/TCP). Пайплайн обработки единый — mask → filter → sample — и не зависит от источника. Поддерживаются форматы auto, json, logfmt, nginx-combined, apache-common, plaintext.

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

  • агент Flaree версии ≥ 1.0 с валидным токеном в agent.yaml или переменной ${FLAREE_TOKEN}
  • файловый или сокетный источник доступен для чтения процессу агента (как правило, group adm или systemd-journal на Linux)
  • для syslog — свободный UDP/TCP-порт (обычно 514 или 10514) и правило firewall, пропускающее трафик только от доверенных хостов
  • для multiline-логов — стабильный разделитель записей (например, timestamp в начале строки)

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

logs:
sources:
- type: file
path: /var/log/myapp/*.log

Этого достаточно, чтобы агент начал tail-ить все файлы по glob-у, автоматически определять формат каждой записи и отправлять события в облако Flaree с дефолтной компонентной привязкой по имени хоста.

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

logs:
sources:
- type: file
path: /var/log/myapp/*.log
componentRef: ${COMPONENT_ID}
format: json
multiline:
start_pattern: '^\d{4}-\d{2}-\d{2}'
timeout_ms: 500
sampling:
info: 0.1
warn: 1.0
error: 1.0
filters:
- exclude: "/healthz"
- exclude: "kube-probe"
redact:
- authorization
- password
- api_key
- type: unix_socket
path: /var/run/flaree/logs.sock
componentRef: my-app
- type: syslog
protocol: tcp
listen: 0.0.0.0:10514
componentRef: edge-router
shipping:
batch_size: 1000
timeout_sec: 5
spool_path: /var/lib/flaree/spool

Ключевые поля:

  • multiline — собирает многострочные stack-traces в одну запись; timeout_ms защищает от «зависших» фрагментов.
  • sampling — per-severity sampling; при backpressure агент сохраняет error и warn, сбрасывая часть info.
  • filters[].exclude — regexp-чёрный список для health-checks и шумных пингов.
  • redact — маскирует секреты на агенте; сервер не видит plaintext.
  • shipping.batch_size / timeout_sec — баланс между latency и сетевой нагрузкой.

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

  1. Запустите агент и убедитесь, что systemd-лог не содержит ошибок open/permission.
  2. Проверьте внутренний Prometheus-эндпоинт агента — счётчик flaree_agent_logs_sent_total должен расти.
  3. Убедитесь, что записи появляются в дашборде app.flaree.ru в нужном компоненте в течение ≤ 1 минуты после генерации.
# Последние сообщения агента
journalctl -u flaree-agent --since "1 min ago" | grep -iE 'logs|error'

# Счётчики отправленных записей
curl -sS http://127.0.0.1:9100/metrics | grep flaree_agent_logs_sent_total

Troubleshooting

Если записи не появляются в дашборде, пайплайн молчит или вы видите несоответствие счётчиков — следуйте сценарию нет данных.

tip

Для syslog и unix-сокета процесс агента должен иметь права на bind и read; проверьте systemctl status flaree-agent и что User= в unit-файле входит в нужные группы (adm, systemd-journal).