文章作者:打杂佬小黄
目录 |
需求背景 loki介绍 loki组件 安装配置 安装 loki安装的docker-compose配置 日志压测端安装的docker-compose配置 loki的配置文件 promtail的配置文件 python压测日志代码(基于python3.7) docker-compose启动 功能使用 查询方式 性能测试 测试机器类型 收集端 服务端 |
为什么研究loki日志系统
主流的ELK或者EFK比较重,再加上现阶段对于ES复杂的搜索功能很多都用不上最终选择了Grafana开源的Loki日志系统。Grafana不用多说,界面酷炫!
需求背景
随着应用程序及服务器数量的增多,人工登录一台台服务器去查看日志的方式越来越费时费力,急需一种方式及工具,来大幅度提高查看日志的效率,增效赋能。对于团队与公司来说,工具的roi(投资回报率)也是必须考虑的事情。loki日志平台的调研就是在这种背景下产生的。
loki介绍
https://github.com/grafana/loki/blob/master/docs/README.md
与其他日志记录系统不同,Loki的构建思想是仅为日志建立索引标签,而使原始日志消息保持未索引状态。这意味着Loki的运营成本更低,并且效率更高。
EFK(Elasticsearch,Fluentd,Kibana)堆栈用于从各种来源提取,可视化和查询日志。
Elasticsearch中的数据作为非结构化JSON对象存储在磁盘上。每个对象的键和每个键的内容都被索引。然后可以使用JSON对象查询数据以定义查询(称为查询DSL)或通过Lucene查询语言查询。
相比之下,Loki在单二进制模式下可以将数据存储在磁盘上,但是在水平可伸缩模式下,数据存储在云存储系统(例如S3,GCS或Cassandra)中。日志以纯文本格式存储,并标有一组标签名称和值,其中仅对标签对进行索引。这种折衷使得它比全索引 更便宜 ,并且允许开发人员从其应用程序积极地进行日志记录。使用LogQL查询Loki中的日志。但是,由于这种设计折衷,基于内容(即,日志行中的文本)进行过滤的LogQL查询需要加载搜索窗口中与查询中定义的标签匹配的所有块。
loki组件
1. loki服务端(默认单进程,可拆分)
2. promtail日志收集客户端
安装配置
安装
本地安装使用docker的方式进行安装,docker-compose进行编排
loki安装的docker-compose配置
3. version: "3"
4.
5. networks:
6. loki:
7.