一、简介
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
正文完