DevOps之 日志采集存储性能对比 es vs loki vs victorialogs

日志采集存储性能对比 es vs loki vs victorialogs

Posted by 董江 on Wednesday, October 23, 2024

存储引擎介绍

elasticsearch 不多介绍

loki

  1. Promtail 采集器, 通过daemonset方式部署在全部node上。 通过promtail中 configmap 配置两个东西: a.配置固定路径下的文件: 系统文件 和 业务自定义日志路径文件 b.kubernetest watch apiserver 获得 此Node上的pod日志

  2. Promtail 回将 每个文件 目前readline的行数据,写入 checkpoint.yaml 中, 如果 promtail重启,回从checkpoint.yaml开始继续上传

  3. promtail 通过http 2.0 接口 bench 方式 提交给loki。

  4. loki本地检索 倒排index 和 raw文件,并将两者上传到S3上

  5. grafana通过 serise 日志查询信息

victorialogs

  1. 支持 loggie/filebeat等 采集器, 通过daemonset方式部署在全部node上。 通过loggie中CRD配置两个东西: a. input采集源数据 b. transport 日志转换、过滤、转意 和 tag补充等 c. sink 写出到那个存储

  2. loggie 回将 每个文件 目前readline的行数据,写入 checkpoint.yaml 中, 如果 loggie重启,回从checkpoint.yaml开始继续上传

  3. loggie支持各类type 包括(loki、es、victorialogs等)

  4. grafana通过 victorialogs-dashboard 进行日志查询LogQL信息

性能比较

elasticsearch Loki victorialogs
全文搜索 支持(全文索引index) 支持(无全文索引index) 支持(无全文索引index)
分词功能 支持 不支持 不支持
集群HA 支持 支持 不支持(多写多活)
过期自动淘汰 不支持(调用删除) 支持(时间) 支持(大小 和 时间)
多租户 支持(分index) 支持 支持(vmauth rule)
性能资源 高(CPU和内存使用高,jvm) 低(内存中,CPU极低) 极低(内存低,CPU低)
磁盘存储 高(3备份) 极低(是es 35%) 极低(是es 5%)
LogQL 支持 支持(类PromSQL) 支持(类LogQL)
采集接口一致性 支持es bulk批写入 支持push 批接口 支持es bulk批写入 也支持loki push批写入

性能对比: 50个租户,es 50 index 并发写入

性能对比数据

  • Loki vs Victorialogs

  • ElasticSearch vs Victorialogs

elasticsearch Loki victorialogs
CPU 2.14 Core 0.107 Core 0.453 Core
Memory 1.09GiB 883MiB 36MiB
Disk 4.53GB 2.3GB 253MB

其他

「如果这篇文章对你有用,请随意打赏」

Kubeservice博客

如果这篇文章对你有用,请随意打赏

使用微信扫描二维码完成支付