Skip to content

Grafana Labs Loki ​

Loki是由Grafana Labs开发的开源、可扩展的日志聚合系统,它能够高效地存储和查询结构化日志。Loki的设计理念是与Prometheus兼容,可以与Prometheus监控系统无缝集成,同时也支持Grafana进行数据可视化。

安装 Loki ​

Loki 提供二进制、Docker、Kubernetes 等多种部署方式。当前稳定版本为 v3.x,建议优先使用 Docker Compose 部署。

方式一:Docker Compose(推荐) ​

yaml
# docker-compose.yml
version: "3.8"
services:
  loki:
    image: grafana/loki:3.4.0
    command: -config.file=/etc/loki/loki-config.yaml
    ports:
      - "3100:3100"
    volumes:
      - ./loki-config.yaml:/etc/loki/loki-config.yaml
      - loki-data:/loki
  promtail:
    image: grafana/promtail:3.4.0
    volumes:
      - ./promtail-config.yaml:/etc/promtail/promtail-config.yaml
      - /var/log:/var/log:ro
volumes:
  loki-data:

方式二:二进制安装 ​

以 Linux 为例,从 Loki GitHub Releases 下载对应版本(下文示例为 v3.4.0):

bash
curl -L https://github.com/grafana/loki/releases/download/v3.4.0/loki-linux-amd64.zip -o loki-linux-amd64.zip
unzip loki-linux-amd64.zip
sudo mv loki-linux-amd64/loki /usr/local/bin/

配置Loki ​

Loki使用YAML格式的配置文件。你可以创建一个名为loki.yml的配置文件,并在其中定义Loki的行为。例如:

yaml
auth_enabled: false
server:
  http_listen_address: 0.0.0.0
  http_listen_port: 3100
common:
  path_prefix: /tmp/loki
  storage:
    filesystem:
      chunks_directory: /tmp/loki/chunks
      rules_directory: /tmp/loki/rules

启动Loki ​

使用以下命令启动Loki:

bash
loki -config.file=loki.yml

配置日志来源 ​

你可以通过多种方式将日志发送到Loki,包括直接通过HTTP POST请求、使用Promtail(Loki的代理)或者配置Kubernetes等系统直接将日志发送给Loki。

例如,使用Promtail收集本地日志:

安装Promtail ​

bash
curl -L https://github.com/grafana/loki/releases/download/v3.4.0/promtail-linux-amd64.zip -o promtail-linux-amd64.zip
unzip promtail-linux-amd64.zip
sudo mv promtail-linux-amd64/promtail /usr/local/bin/

创建Promtail配置文件promtail.yml ​

yaml
clients:
  - url: http://localhost:3100/loki/api/v1/push
scrape_configs:
  - job_name: system
    static_configs:
      - targets:
          - localhost
        labels:
          job: varlogs
          __path__: /var/log/*log

启动Promtail ​

bash
promtail -config.file=promtail.yml

使用Grafana查看日志 ​

最后,你可以使用Grafana连接到Loki,并创建仪表板来查看和分析日志数据。确保Grafana的数据源设置指向你的Loki实例。

以上就是基本的Loki搭建和配置流程。根据具体需求,你可能需要调整配置以优化性能和功能。