scrape_configs
Тема дорожной карты · Loki
Раздел scrape_configs в promtail-config.yaml определяет, как Promtail обнаруживает цели логов и какие файлы логов или записи журнала он должен отслеживать и пересылать в Grafana Loki. Каждая запись в scrape_configs содержит job_name, блок обнаружения целей (например, static_configs, kubernetes_sd_configs или file_sd_configs), опциональные relabel_configs для преобразования обнаруженных метаданных в метки Loki и блок pipeline_stages для обработки строк логов. При использовании static_configs файлы логов перечисляются вручную с присвоением меток, например, указывая Promtail на /var/log/nginx/access.log с меткой {job="nginx"}. При использовании kubernetes_sd_configs Promtail автоматически обнаруживает запущенные поды и обогащает каждый поток логов метками: namespace, pod, container и node, — аналогично тому, как Prometheus опрашивает метрики Kubernetes. Правила перемаркировки в scrape_configs применяются до считывания строк логов, что делает их идеальными для фильтрации целей, с которых Promtail должен собирать данные, и для определения имён результирующих меток Loki.
Как это работает
scrape_configs: канонический 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 логах.
Типичные ошибки
Ловушки scrape_configs: extract high-cardinality labels в pipeline (убивает Loki); не capture pod restarts через positions file (логи теряются на рестарте); деплой Promtail без resource limits (OOM на log spikes); regex stage когда json работает (медленнее).