logo-grafana-loki2

Promtail

Promtail is not a log parser. It won’t extract fields, do full-text indexing, or ship logs to non-Loki backends.

OS: Windows, Linux, macOS
Size: 22.2 MB
Version: v3.5.2
🡣: 10212

Promtail: Lightweight Log Collector for Grafana Loki Pipelines

A simple, label-aware agent that ships your logs straight to Loki — nothing more, nothing less

What is Promtail?
It’s the log shipping companion to Grafana Loki. Promtail tails local log files, attaches labels (like hostname, job, service), optionally scrapes systemd journal entries, and pushes everything to a Loki endpoint for storage and querying.

It’s not a log processor. It doesn’t parse, transform, or enrich.
Its job is to collect and forward logs — efficiently, cleanly, and in a way that makes them immediately searchable in Grafana.

The stack looks like this:
[ app → log file ] → [ Promtail ] → [ Loki ] → [ Grafana ]

Simple, modular, transparent.
No Kafka queues, no indexing at the node, no extra overhead.
Just logs flowing as streams — and accessible through the same interface admins already use for metrics.

Where It’s Being Used

– Kubernetes clusters forwarding container logs to a centralized Loki instance
– On-prem Linux servers streaming logs to a Grafana-based observability stack
– Developers tailing service logs in real time via Grafana Explore
– Teams replacing ELK/EFK stacks with a lighter Loki-based alternative
– Environments with mixed logging formats — systemd, JSON, plain text — needing minimal parsing

Key Characteristics

Feature Why It Matters
Native for Loki Built by Grafana Labs — integrates without hacks
Static & Dynamic Labeling Add job, host, env, or any custom label per file or target
Works with Journald Supports reading from `journalctl` directly
Scrape Config Model Similar to Prometheus scrape jobs — familiar for Prometheus users
Minimal Resource Usage Tiny memory/CPU footprint even on large log volumes
No Local Indexing Leaves heavy lifting (search, filtering) to Loki backend
Regex Filter Support Filter or relabel entries at the source
Multiple Pipelines Run multiple targets, jobs, and formats from one config
Structured & Unstructured Supports JSON logs and plain text equally
Push or Agentless Modes Can tail files locally or receive logs from other collectors

What You Actually Need

– Linux or container-based system
– Access to a Loki instance (local or remote)
– Log files or systemd journal with read access

Install with:

wget https://github.com/grafana/loki/releases/latest/download/promtail-linux-amd64.zip
unzip promtail-linux-amd64.zip
chmod +x promtail-linux-amd64
sudo mv promtail-linux-amd64 /usr/local/bin/promtail

Sample config (promtail.yaml):

server:
http_listen_port: 9080

clients:
– url: http://localhost:3100/loki/api/v1/push

positions:
filename: /tmp/positions.yaml

scrape_configs:
– job_name: syslog
static_configs:
– targets:
– localhost
labels:
job: varlogs
__path__: /var/log/*.log

Run with:

promtail -config.file=promtail.yaml

What Admins Say

“Honestly, it just works. It’s like node_exporter but for logs.”

“We dropped filebeat and journalbeat. Promtail plus Loki handles it all.”

“We use Prometheus for metrics, Grafana for dashboards — now Promtail plugs right in.”

One Thing to Keep in Mind

Promtail is not a log parser. It won’t extract fields, do full-text indexing, or ship logs to non-Loki backends.
If field-level search or complex transforms are a requirement, it’s better to use Vector, Fluent Bit, or Logstash before Loki.

But if the goal is simple, performant, Grafana-native log streaming, Promtail is exactly the right piece of the puzzle.

Other articles

Submit your application