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 版本的问题 - 查询日志
需要启用explorer的功能,在docker-compose 环境变量中我们也可以看出
说明
loki 也是刚开源出来,后边的发展还有待看,但是从使用上来说,还是很不错的,同时对于k8s 的支持很不错,我们可以用来
方便的手机k8s pod 的日志。。。。
参考资料
https://github.com/grafana/loki#getting-started
https://github.com/rongfengliang/grafana-loki-demo