打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
初探 Loki,我决定把ELK替掉!

哈喽哈喽大家好,初探Loki之后,我决定把ELK下掉!

Loki开源日志解决方案已经开源有一段时间了,对标EFK/ELK,由于其轻量的设计,备受欢迎

Loki相比EFK/ELK,它不对原始日志进行索引,只对日志的标签进行索引,而日志通过压缩进行存储,通常是文件系统存储,所以其操作成本更低,数量级效率更高

于Loki的存储都是基于文件系统的,所以它的日志搜索时基于内容即日志行中的文本,所以它的查询支持LogQL,在搜索窗口中通过过滤标签的方式进行搜索和查询

Loki分两部分Loki是日志引擎部分,Promtail是收集日志端,然后通过Grafana进行展示

Loki的官方文档很全

https://grafana.com/docs/loki/latest/installation
Loki·安装
GENERAL TITLE

从官方文档看,Loki支持源码安装、DockerHelmLocalTanka

我选择local,就是编译好的二进制可执行文件

安装步骤:
下载:https://github.com/grafana/loki/releases/

curl -O -L

'https://github.com/grafana/loki/releases/download/v2.2.1/loki-linux-amd64.zip'

通过unzip解压得到可执行文件

下载配置文件

wget https://raw.githubusercontent.com/grafana/loki/master/cmd/loki/loki-local-config.yaml

Loki·配置
GENERAL TITLE

Loki的配置文件是loki-local-config.yaml,支持YAML语法

loki提供httpgrpc两种接口,在配置文件中可以看到对应端口,分别是31009096,启动后,就可以通过http接口看到数据

配置完成后,就可以启动loki了,二进制可执行文件,通过--config.file指定配置文件启动即可

promtail·安装
GENERAL TITLE

Promtail安装也很简单

下载可执行文件

curl -O -L https://github.com/grafana/loki/releases/download/v2.2.1/promtail-linux-amd64.zip

通过unzip解压得到可执行文件即可

同样下载配置文件

wget https://raw.githubusercontent.com/grafana/loki/main/clients/cmd/promtail/promtail-local-config.yaml

之后,就可以直接可执行文件指定配置文件启动了

promtail·配置
GENERAL TITLE

promtail也是YAML语法,配置很简单

前面三部分很简单,server部分定义监听端口,positions定义读取的文件偏移量存储位置,clients定义loki接口地址,最后一部分scrape_configs是重点部分

  • promtail通过scrape_configs部分配置收集日志的相关信息,以测试配置文件为例:

  • job_name  用来区分日志组

  • static_configs  收集日志的静态配置

  • targets  收集日志的节点,这个参数其实是在自动发现的时候使用的

  • labels  定义一个要收集的日志文件和一组可选的附加标签

  • job  标签名称,在grafana索引的时候用到的标签名称

  • __path__  定义日志收集的文件或路径,支持正则

配置文件修改完成后,就可以启动promtail了,和loki启动方法一样,通过--config.file指定配置文件启动

promtail,类似于tail,它只监听新增日志,不会像filebeat一样,读取日志所有内容,这是和filebeat的一个区别
Grafana·展示
GENERAL TITLE

好了,promtail和Loki都配置好了,需要展示,6.0以上版本的grafana就支持loki的展示了,我这边直接用docker启动grafana

grafana配置很简单,登录后,在设置——数据源中,选择添加数据源,下来列表中直接选择Loki即可
接着配置数据源,只需要修改URL即可,其他可以根据自己的需要
因为我的loki是没有做认证的,所以这里不需要认证配置,直接填写loki的地址即可,完成后保存
保存完成后,在Explore中查看日志
这里支持LogQL语法,默认情况下,如果不添加规则,是没有日志展示的,在Log browser中添加query,根据在promtail中定义的label,比如我的promtail的job是nginx,我这里填写{job='nginx'},然后run query
就可以看到nginx的日志

日志界面很清爽,保留了日志原有的样子,通过颜色区分日志级别,这里info是绿色,error是红色,可以很直观的看到日志的类别,也可以通过点击日志级别,只展示该级别的日志

总结:

相对于EFK/ELK,专为日志而生的Loki,结合Grafana生态,对于中小企业,或者说只是作为日志系统而言,我更倾向于选择Loki代替EFK/ELK

来源:运维研习社,点击查看原文

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
搭建Loki、Promtail、Grafana轻量级日志系统(centos7)
再见笨重的ELK!这套轻量级日志收集方案要火!
轻量日志系统Loki
开源实时日志分析ELK平台部署
Linux操作系统安装ELK stack日志管理系统(1)
日志分析利器elk与logback(log4j)实战
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服