Что такое Promtail
Тема дорожной карты · Loki
Promtail — это агент для сбора логов с открытым исходным кодом, разработанный командой Grafana как основной способ отправки логов в Grafana Loki. Он считывает строки логов из локальных файлов, журнала systemd и других источников, применяет метаданные меток и опциональные конвейеры трансформации, а затем отправляет потоки логов в HTTP push API Loki по адресу /loki/api/v1/push. Promtail использует те же механизмы обнаружения сервисов, что и Prometheus, включая static_configs, kubernetes_sd_configs и file_sd_configs, поэтому команды, знакомые с конфигурацией Prometheus, найдут Promtail интуитивно понятным. Агент отслеживает свою позицию в лог-файлах с помощью файла позиций (по умолчанию positions.yaml), чтобы после перезапуска продолжить чтение с нужного смещения, исключая как дублирование записей, так и пробелы в Loki. Promtail — лёгкий агент, созданный специально для Grafana Loki, однако другие агенты, такие как Fluent Bit, Fluentd и OpenTelemetry Collector, также могут отправлять логи в Loki через тот же HTTP API.
Как это работает
Что такое Promtail: канонический log shipper для Loki. Tail-ит файлы + container stdout, добавляет labels (из service discovery — K8s pods, file paths, syslog), парсит log lines через pipeline stages (regex, json, labels, output, timestamp, template), шипит в Loki HTTP API. В Kubernetes работает как DaemonSet — логи каждой ноды идут в Loki. Promtail сменяется Grafana Alloy (merged OTel-style агент) — новые деплои могут предпочесть Alloy.
Когда применять
В K8s деплойте Promtail (или Alloy) как DaemonSet + kubernetes_sd для discovery. Labels в scrape_configs — low-cardinality. Pipeline stages json/regex для extract structured полей ДО shipping — экономит query-time работу. Pin версию агента + тестируйте pipeline changes на sample логах.
Типичные ошибки
Ловушки Что такое Promtail: extract high-cardinality labels в pipeline (убивает Loki); не capture pod restarts через positions file (логи теряются на рестарте); деплой Promtail без resource limits (OOM на log spikes); regex stage когда json работает (медленнее).