loki

简介

Loki是Grafana Labs团队最新的[[开源]]项目,该项目受Prometheus启发,是一个水平可扩展、高可用性、多用户的日志聚合系统。它被设计成非常经济高效且易于操作,因为它不会为日志内容编制索引,而是为每个日志流编制一组标签。

与其它日志聚合系统相比,Loki具有下面的一些特性:

  • 不对日志进行全文索引。通过存储压缩非结构化日志和仅索引元数据,Loki操作起来会更简单,更省成本。

  • 通过与Prometheus相同的标签记录流对日志进行索引和分组,这使得日志的扩展和操作效率更高。

  • 适合储存Kubernetes Pod日志;诸如Pod标签之类的元数据会被自动删除和编入索引。

  • 受Grafana原生支持。

loki + grafana + promtail的docker-compose 编排文件示例

Docker-loki.yaml

version: "3"

networks:
  loki:

services:
  loki:
    image: grafana/loki:latest
    volumes:
      - /usr/src/loki/conf:/mnt/config
    ports:
      - "3100:3100"
    command: -config.file=/mnt/config/loki-config.yaml
    networks:
      - loki

  promtail:
    image: grafana/promtail:latest
    volumes:
      - /var/log:/var/log
      - /usr/src/loki/conf:/mnt/config
    command: -config.file=/mnt/config/promtail-config.yaml
    networks:
      - loki

  grafana:
    image: grafana/grafana:master
    ports:
      - "3000:3000"
    networks:
      - loki

用于挂载的loki和promtail的配置文件

loki-config.yaml的内容如下:

promtail-config.yaml的内容如下:

使用k8s部署示例

思路: 将loki和promtail的配置文件通过ConfigMap来创建;并在其它的容器中引用。以DaemonSet的方式部署promtail,在每个节点进行日志收集。将Grafana通过Ingress发布至外网进行访问


Promtail 日志匹配正则

在线验证正则表达式的网站regex101arrow-up-right

promtail.yaml配置中使用正则的示例

最后更新于