Loki is a horizontally-scalable, highly-available, multi-tenant log aggregation system inspired by Prometheus. It is designed to be very cost effective and easy to operate. It does not index the contents of the logs, but rather a set of labels for each log stream.
Compared to other log aggregation systems, Loki:
A Loki-based logging stack consists of 3 components:
promtailis the agent, responsible for gathering logs and sending them to Loki.
lokiis the main server, responsible for storing logs and processing queries.
Loki is like Prometheus, but for logs: we prefer a multidimensional label-based approach to indexing, and want a single-binary, easy to operate system with no dependencies. Loki differs from Prometheus by focusing on logs instead of metrics, and delivering logs via push, instead of pull.
Commonly used sections:
If you have any questions or feedback regarding Loki:
Your feedback is always welcome.
Refer to CONTRIBUTING.md
Loki can be run in a single host, no-dependencies mode using the following commands.
go, we recommend using the version found in our build Dockerfile
$ go get github.com/grafana/loki $ cd $GOPATH/src/github.com/grafana/loki # GOPATH is $HOME/go by default. $ go build ./cmd/loki $ ./loki -config.file=./cmd/loki/loki-local-config.yaml ...
To build Promtail on non-Linux platforms, use the following command:
$ go build ./cmd/promtail
On Linux, Promtail requires the systemd headers to be installed for Journal support.
With Journal support on Ubuntu, run with the following commands:
$ sudo apt install -y libsystemd-dev $ go build ./cmd/promtail
With Journal support on CentOS, run with the following commands:
$ sudo yum install -y systemd-devel $ go build ./cmd/promtail
Otherwise, to build Promtail without Journal support, run
with CGO disabled:
$ CGO_ENABLED=0 go build ./cmd/promtail