Loki 是一个水平可扩展,高可用性,多租户日志聚合系统,灵感来自 Prometheus ,其设计非常经济高效,易于操作。它不索引日志的内容,而是为每个日志流设置一组标签。
与其他日志聚合系统相比,Loki:
不对日志进行全文本索引。通过存储压缩的,非结构化的日志以及仅索引元数据,Loki更加易于操作且运行成本更低。
使用与Prometheus相同的标签对日志流进行索引和分组,从而使您能够使用与Prometheus相同的标签在指标和日志之间无缝切换。
特别适合存储Kubernetes Pod日志。诸如Pod标签之类的元数据会自动被抓取并建立索引。
在Grafana中原生支持(需要Grafana v6.0及以上)。
基于Loki的日志记录堆栈包含3个组件:
promtail是代理,负责收集日志并将其发送给Loki。
loki是主服务器,负责存储日志和处理查询。
Grafana用于查询和显示日志。
一、Loki环境搭建
下载地址:https://github.com/grafana/loki/releases/
1、下载
curl -O -L "https://github.com/grafana/loki/releases/download/v2.0.0/loki-linux-amd64.zip"
2、安装
1、创建loki安装目录mkdir /data/loki/{chunks,index}2、解压loki压缩包unzip loki-linux-amd64.zip3、移动解压文件至安装目录mv loki-linux-amd64 /data/loki/
3、配置
官方配置文件链接(若该链接过期,请在官方文档处寻找:https://grafana.com/docs/loki/latest/installation/local/)
https://raw.githubusercontent.com/grafana/loki/master/cmd/loki/loki-local-config.yamlwget该yaml即可:
wget https://raw.githubusercontent.com/grafana/loki/master/cmd/loki/loki-local-config.yaml
4、启动
执行./loki-linux-amd64 -config.file=loki-local-config.yaml启动即可,看到日志最后“Loki started”loki即启动成功。
cd /data/loki./loki-linux-amd64 -config.file=loki-local-config.yaml
启动日志
二、promtail环境搭建
下载地址:https://github.com/grafana/loki/releases/
注:promtail应部署在需要采集日志的服务器上,比如要收集Nginx的错误日志,那就要在Nginx那台服务器部署 Promtail,类似 fluentd
1、下载
curl -O -L "https://github.com/grafana/loki/releases/download/v2.0.0/promtail-linux-amd64.zip"
2、安装
1、创建promtail安装目录mkdir /data/promtail2、解压promtail压缩包unzip promtail-linux-amd64.zip3、移动promtail解压文件至安装目录mv promtail-linux-amd64 /data/promtail/
3、配置
3.1 下载配置文件
官方配置文件链接(若该链接过期,请在官方文档处寻找:https://grafana.com/docs/loki/latest/installation/local/)
https://raw.githubusercontent.com/grafana/loki/master/cmd/promtail/promtail-local-config.yaml
wget该yaml即可:
wget https://raw.githubusercontent.com/grafana/loki/master/cmd/promtail/promtail-local-config.yaml
3.2 修改配置文件
server: http_listen_port: 9080 #promtail的http端口地址 grpc_listen_port: 0positions: filename: /tmp/positions.yaml #记录当前日志采集状态的文件地址(promtail自动生产)clients: - url: http://localhost:3100/loki/api/v1/push #Loki服务器地址scrape_configs:- job_name: nginx static_configs: - targets: - localhost labels: #标签 job: nginx host: localhost __path__: /data/nginx/logs/* #日志采集目录
4、启动
执行./loki-linux-amd64 -config.file=promtail-local-config.yaml启动即可
cd /data/promtail./promtail-linux-amd64 -config.file=promtail-local-config.yaml
启动日志
三、grafana中实现日志管理
1)添加数据源
选择loki数据源并配置loki地址,点击save&test后无问题即可。
2)日志管理
选择左侧导航按钮的explore:
选择loki数据源,在查询框左侧选择相应label,grafana会自动填充查询语句:
也可查询日志中出现的指定文本:
其它查询语法请参考官方文档:https://grafana.com/docs/loki/latest/logql/