暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

loki的安装、部署和使用记录

一笑而起 2021-01-14
4368

简介:

Loki: like Prometheus, but for logs.

与其他日志记录系统不同,Loki的构想是仅对日志建立索引标签,而使原始日志消息保持未索引状态。这意味着Loki的运营成本更低,并且效率更高。


Loki是主服务器,负责日志的存储和处理查询,支持多种方式部署,二进制文件、docker、Helm等,此次部署使用tar包方式进行部署。

Promtail是代理,收集各服务节点上的日志文件,发送给Loki server,同样支持多种方式部署。


下面非常简单的说明一下,无需必须修改的,只提一下,只是为了让新手快速上手和使用。


一、安装Loki Serve端 

上传介质包到指定目录,/data/loki 解压tar包 tar -xvf loki-server-agent.tar 该loki包中,包含loki提供的全部组件, 如loki(server端)、Promtail(日志采集)、logcli

配置文件:

/data/loki/cmd/loki/loki-local-config.yaml

配置文件实际上可以不用修改。默认端口是3100


启动Loki nohup ./loki -config.file=./cmd/loki/loki-local-config.yaml &


注意:如果修改的话,注意yaml格式,冒号后面必须有空格。


二、配置Promtail

在各客户端节点,配置并启动Promtail。上传promtail.tar.gz到data盘,然后解压 tar -zxvf promtail.tar.gz


# promtail
server:
http_listen_port: 9080
grpc_listen_port: 0
positions:
filename: /tmp/positions.yaml
# loki server
clients:
- url: http://localhost:3100/loki/api/v1/push
scrape_configs:
- job_name: app_name
static_configs:
#
# targets
- targets:
- localhost
labels:
# labeljobhostIPname
# __path__
job: nginx
__path__: /data/log/*
host: ip
- targets:
- localhost
labels:
job: tomcat
__path__: /data/tomcat/*
host: ip


启动

Promtail nohup ./promtail -config.file=promtail-local-config.yaml


三、配置grafana

添加Loki数据源到Grafana的页面中


添加成功后,则可以在Loki数据页面查看到所配置的日志信息,会在一级菜单显示Label汇总所自定义的配置信息。


四、日志查询


loki支持对日志文件的简单查询,使用官方提供的Log Query Language 

日志文件查询(不是日志中的line)有四种格式 

= :严格等于 

!= :不等于 

=~ :正则匹配 

~ :正则不匹配 

同时也支持管道符,对每个日志的line进行查询

|= :日志文件包含该字符串 

!= :日志中的行不包含该字符串

|~ :日志中的行包含该正则表达式 

!~ :日志中的行不包含该正则表达式


举例:

{filename="log日志路径",host="ip"}|="error"

对于多个微服务的,如果取得ip,则看到的是所有对于服务的日志的组合,按时间倒序展示。


参考:

https://zhuanlan.zhihu.com/p/153415749?from_voters_page=true

简单介绍loki的架构,比较清晰。

https://grafana.com/docs/loki/latest/configuration/

官方文档,非常详细。深入研究者看过来。


文章转载自一笑而起,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论