一、简介

Loki是一个受Prometheus启发的水平可扩展,高度可用的多租户日志聚合系统。它的设计具有很高的成本效益,并且易于操作。它不索引日志的内容,而是为每个日志流设置一组标签。

与其他日志聚合系统相比,Loki:

不对日志进行全文本索引。通过存储压缩的,非结构化的日志以及仅索引元数据,Loki更加易于操作且运行成本更低。
使用与Prometheus相同的标签对日志流进行索引和分组,从而使您能够使用与Prometheus相同的标签在指标和日志之间无缝切换。
特别适合存储Kubernetes Pod日志。诸如Pod标签之类的元数据会自动被抓取并建立索引。
在Grafana中具有本机支持(需要Grafana v6.0)。
基于Loki的日志记录堆栈包含3个组件:

promtail 是代理,负责收集日志并将其发送给Loki。
loki 是主服务器,负责存储日志和处理查询。
Grafana用于查询和显示日志。
Loki像Prometheus一样,但是对于日志:我们更喜欢基于多维标签的索引方法,并且想要一个没有依赖性的,易于操作的单二进制系统。Loki与Prometheus的不同之处在于,它侧重于日志而不是指标,并通过推送而不是拉动交付日志。

二、开始安装

环境介绍

  • CentOS 7.8mini
  • Go 1.14 or later
  • Make
  • Docker (for updating protobuf files and yacc files)

2.1 使用Docker Compose安装Loki

修改docker为国内源

国内的镜像源有

docker官方中国区 https://registry.docker-cn.com
网易 http://hub-mirror.c.163.com
ustc http://docker.mirrors.ustc.edu.cn
阿里云 http://<你的ID>.mirror.aliyuncs.com
注意registry-mirrors千万不要用https,而是用http,否则会显示No certs for egitstry.docker.com,
insecure-registries不要任何http头,否则无法通过。

通用的方法就是编辑/etc/docker/daemon.json:

{
  "registry-mirrors" : [
    "http://ovfftd6p.mirror.aliyuncs.com",
    "http://registry.docker-cn.com",
    "http://docker.mirrors.ustc.edu.cn",
    "http://hub-mirror.c.163.com"
  ],
  "insecure-registries" : [
    "registry.docker-cn.com",
    "docker.mirrors.ustc.edu.cn"
  ],
  "debug" : true,
  "experimental" : true
}

重启服务:#systemctl restart docker

#curl -L "https://github.com/docker/compose/releases/download/1.28.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
#chmod +x /usr/local/bin/docker-compose
#ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
#docker-compose --version
#docker-compose -f docker-compose.yaml up

完成后,loki-config.yaml并promtail-config.yaml在目录中选择。Docker容器使用这些配置文件运行Loki和Promtail。

2.2 测试

打开http://192.168.152.9:3000 用户名:admin 密码:admin

file