Prometheus 主要面向的是metrics,但是loki 是log,这样加上grafana 强大的可视化以及alert能力,
我们可以做好多事情,loki 的设计来源于Prometheus。

组件说明

loki 包含三个组件

  • loki 核心组件进行log 的查询处理
  • promtail 一个agent 主要是进行log 的发送
  • grafana ui

环境准备

  • docker-compose 文件
 
version: "3"
services:
  loki:
    image: grafana/loki:master
    ports:
      - "3100:3100"
    volumes:
      - $PWD:/etc/loki
    command: -config.file=/etc/loki/loki-local-config.yaml
  promtail:
    image: grafana/promtail:make-images-static-26a87c9
    volumes:
      - $PWD:/etc/promtail
      - ./log:/var/log
    command: 
      -config.file=/etc/promtail/promtail-docker-config.yaml
  grafana:
    image: grafana/grafana:master
    ports:
      - "3000:3000"
    environment:
      GF_EXPLORE_ENABLED: "true"
 
 
  • 配置说明
    loki:
 
auth_enabled: false
server:
  http_listen_port: 3100
ingester:
  lifecycler:
    address: 127.0.0.1
    ring:
      store: inmemory
      replication_factor: 1
schema_config:
  configs:
  - from: 0
    store: boltdb
    object_store: filesystem
    schema: v9
    index:
      prefix: index_
      period: 168h
storage_config:
  boltdb:
    directory: /tmp/loki/index
  filesystem:
    directory: /tmp/loki/chunks
 
 

promtail agent 配置

server:
  http_listen_port: 0
  grpc_listen_port: 0
positions:
  filename: /tmp/positions.yaml
client:
  url: http://loki:3100/api/prom/push
scrape_configs:
- job_name: system
  entry_parser: raw
  static_configs:
  - targets:
      - localhost
    labels:
      job: varlogs
      __path__: /var/log
 
 

一个包含log 的文件 log/app.info

启动&&测试

  • 启动
docker-compose up -d
 
  • 配置grafana ui
    很简单,按照提示就可以了,主要是添加loki 的datasource,和普通的操作是一样的,注意ui 版本的问题
    loki grafana 团队开源的,类似Prometheus 的log 系统-LMLPHP
  • 查询日志
    需要启用explorer的功能,在docker-compose 环境变量中我们也可以看出
    loki grafana 团队开源的,类似Prometheus 的log 系统-LMLPHP

说明

loki 也是刚开源出来,后边的发展还有待看,但是从使用上来说,还是很不错的,同时对于k8s 的支持很不错,我们可以用来
方便的手机k8s pod 的日志。。。。

参考资料

https://github.com/grafana/loki#getting-started
https://github.com/rongfengliang/grafana-loki-demo

04-30 20:12