10分钟学会使用 Loki 日志聚合系统
Loki 是一个由Grafana Labs 开发的开源日志聚合系统,旨在为云原生架构提供高效的日志处理解决方案。
Loki 通过使用类似 Prometheus 的标签索引机制来存储和查询日志数据,这使得它能够快速地进行分布式查询和聚合,而不需要将所有数据都从存储中加载到内存中。Loki还使用了压缩和切割日志数据的方法来减少存储空间的占用,从而更好地适应云原生环境下的高速增长的日志数据量。
Loki的架构由以下几个主要组件组成:
Promtail: 负责采集应用程序和系统的日志数据,并将其发送到 Loki 的集群中。
Loki: 负责存储日志数据,提供 HTTP API 的日志查询,以及数据过滤和筛选。
Grafana: 负责 UI 展示日志数据。
Loki vs ELK
Loki 和 ELK(Elasticsearch, Logstash, Kibana)都是常用的日志处理系统,它们各自具有一些优点。下面是 Loki 相对于 ELK 的几个优点:
存储效率更高:Loki 使用了压缩和切割日志数据的方法来减少存储空间的占用,相比之下,ELK 需要维护一个大的索引,需要更多的存储空间。
查询速度更快:Loki 使用类似 Prometheus 的标签索引机制存储和查询日志数据,这使得它能够快速地进行分布式查询和聚合,而不需要将所有数据都从存储中加载到内存中。而ELK需要将数据从存储中加载到内存中进行查询,查询速度相对较慢。
部署和管理更容易:Loki 是一个轻量级的日志聚合系统,相比之下,ELK 需要部署和管理多个组件,需要更多的资源和人力成本。
安装和配置 Loki
前提
参阅 Rainbond 快速安装 文档进行安装。
安装 Loki
Loki
应用已发布到开源应用商店,可通过开源应用商店一键安装。
在 平台管理 -> 应用市场 -> 开源应用商店 中搜索 Loki
并安装。
安装完成后,该应用内包含 Loki
Grafana
组件:
同时还有 k8s资源
,其中包括 promtail
的 Daemonset
以及 SA
等资源。
配置 Loki
进入应用内 -> k8s资源,修改 ConfigMap promtail-config
的 url
部分,URL 通过 Loki 的 组件内 -> 端口 -> 访问地址 获取,如下:
apiVersion: v1 data: promtail.yaml: | clients: - url: http://gre4f2a2:3100/loki/api/v1/push # Changed ......
进入应用内 -> k8s资源,修改 ClusterRoleBinding promtail-clusterrolebinding
的 namespace
部分为当前应用的命名空间。
apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: promtail-clusterrolebinding ...... subjects: - kind: ServiceAccount name: promtail-serviceaccount namespace: dev # Changed
如果使用的容器运行时是 Containerd 需要修改 promtail-daemonset
资源,如果容器运行时是 Docker 则不用修改。
...... volumeMounts: - mountPath: /var/lib/containers # Changed name: varlibdockercontainers readOnly: true ...... volumes: - hostPath: path: /var/lib/containers # Changed type: "" name: varlibdockercontainers
修改后更新 Loki
Grafana
组件,应用内 -> 更新即可。
使用 Loki
访问 Grafana
,应用内点击访问按钮即可通过 Rainbond 默认提供的域名访问 Grafana
。
进入 Explore
内通过 Labels 筛选 POD 日志,选择 namespace
pod
Labels,会自动生成查询表达式,点击 Show logs 即可查看日志。
查询表达式
除了通过 Grafana 界面选择 Labels 之外,还可以手动写查询表达式,比如:
{container="rbd-api",namespace="rbd-system",pod="rbd-api-5fdd795546-j5679"}
目前支持以下标签匹配运算符:
=
等于!=
不等于=~
正则匹配!~
正则不匹配
例如:
{namespace=~"dev|rbd-system"}
最后
总之,Loki是一个轻量级、高效的日志聚合系统,它在处理云原生环境下大规模日志数据方面表现出色。Loki 相比于 ELK具有存储效率更高、查询速度更快、部署和管理更容易。结合 Rainbond 一起使用,使我们的应用和日志管理都非常简单。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
学术贴 | FPGA 加速图数据库查询执行
导读 本篇博客主要讲解发布于 Microprocessors and Microsystems 的文章《Semi-static Operator Graphs for Accelerated Query Execution on FPGAs》,介绍它所提出的算法与试验结果,并结合实际情况给出一些思考。 一、背景介绍 在当今的数据化场景越来越丰富的大环境下,涌现出的非结构化数据存储分析被应用于多数领域。为了使机器能够自动分析数据,语义网络的概念被创建,元数据被用来描述和链接任何类型的数据和资源。 面对存储和处理大规模的数据,除了不断被优化的数据结构外,硬件也是需要被极大优化的。海量数据的持续存储在当今硬件环境下是没有问题的,但是要实现在一个可以被接受的、被允许的时间范围内进行处理和分析则变得愈发艰难。 因此,许多数据库系统逐渐倾向于异构,由专门的计算内核来有效地执行特定的任务。 那么不得不提的,便是高性能计算常用到的 GPU (图形处理器)。GPU 最突出的优点是高性能,即高密度运算和高效并行性,非常适合处理计算密集型的任务;同时,其易于连接到处理器端的属性也是它可以被广泛应用的原因。然...
- 下一篇
魔豆文库 moredoc v1.1 发布,类百度文库开源解决方案,实现移动端适配
魔豆文库MoreDoc是使用 Go 语言开发实现的类百度文库、新浪爱问文库解决方案,为dochub文库的重构版本,支持 office (全部类型)、PDF、TXT、EPUB、MOBI 等多种文档格式的在线阅读浏览,支持无限级分类、文档批量上传、批量转换、全文搜索等功能,拥有简洁美观的用户视觉和功能体验。 技术栈 Golang :gin + gRPC + GORM Vue.js : nuxt2 + element-ui Database : MySQL 5.7 升级日志 实现移动端适配前台页面全部实现移动端适配,在手机端也能更舒适地浏览和使用。 替换结巴分词用于分词的Go版本结巴分词底层依赖于C,通过CGO编译的程序在安装部署的时候容易出现找不到各种C库的奇怪问题,因此改用gse实现分词功能,使得程序安装部署也更容易。 修复IP存储字段长度,以存储IPv6地址 支持自动创建数据库 优化全文搜索全文搜索索引文件体积大小减少20% ~ 30% 演示站点 程序体验,一睹为快! 网址: https://moredoc.mnt.ltd 管理员账号: admin 管理员密码: mnt.ltd 演示站...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Red5直播服务器,属于Java语言的直播服务器
- CentOS7设置SWAP分区,小内存服务器的救世主
- CentOS7安装Docker,走上虚拟化容器引擎之路
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS关闭SELinux安全模块
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- Linux系统CentOS6、CentOS7手动修改IP地址
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16