Promtail
Тема дорожной карты · Loki
Promtail — официальный агент отправки логов для Grafana Loki, отвечающий за обнаружение источников логов, добавление меток и пересылку потоков логов на конечную точку Loki по HTTP. Он предназначен для запуска рядом с приложениями — как правило, в виде DaemonSet в Kubernetes или как служба systemd на физических серверах, — чтобы отслеживать локальные файлы логов и журнал systemd без каких-либо изменений в самих приложениях. Конфигурация Promtail задаётся в YAML-файле (promtail-config.yaml), который определяет scrape_configs для обнаружения целей и pipeline_stages для преобразования и обогащения записей логов перед их отправкой в Loki. В Kubernetes Promtail автоматически обнаруживает поды через Kubernetes API и присваивает каждому потоку логов такие метки, как namespace, pod и container, следуя модели обнаружения сервисов Prometheus. Поскольку Promtail использует ту же модель меток, что и Loki, присвоенные им метки непосредственно определяют кардинальность потоков и производительность запросов в Grafana Loki.
Как это работает
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 работает (медленнее).