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