合作机构:阿里云 / 腾讯云 / 亚马逊云 / DreamHost / NameSilo / INWX / GODADDY / 百度统计
Loki是由Grafana Labs开源的一个水平可扩展、高可用性,多租户的日志聚合系统的日志聚合系统。它的设计初衷是为了解决在大规模分布式系统中,处理海量日志的问题。Loki采用了分布式的架构,并且与Prometheus、Grafana密切集成,可以快速地处理大规模的日志数据。该项目受 Prometheus 启发
图片
ELK是大规模日志解决方案中的佼佼者说到Loki,免不了要拿来跟ELK做个对比
k8s 集群不提供日志收集的解决方案,一般来说有3 种方案来做日志收集:
图片
日志系统会以DaemonSet 方式是在每个node 节点上部署一个agent,来采集这个节点上所有的日志,默认会收集k8s 下/var/log/pod 、/var/lib/docker/containers下的日志,对应用程序的要求就是开启控制台打印,否则会收集不到日志,比较适用于功能单一或业务不是很多的集群;
图片
Sidecar 方式会在每一个Pod中部署一个 sidecar 容器,来进行当前容器的日志采集,有多少个 pod,就会有多少个Sidecar容器,因此Sidecar相对资源占用较多,但灵活性以及多租户隔离性较强,适合大型的 K8s 集群使用,因为除了占用资源多点,采集性能不会有影响
Loki的Pormtail同时支持以上两种方式,默认为节点采集方式,下面我们演示如何在k8s 中快速部署一个Loki日志分析系统
helm repo add grafana https://grafana.github.io/helm-charts
TOP