简介
loki 是云原生的日志服务,本文讲解loki的部署,日志接入和查询日志的简单使用。
理论
Loki 分两部分,Loki 是日志引擎部分,Promtail 是收集日志端。
Loki 是主服务器,负责存储日志和处理查询 。
promtail 是代理,负责收集日志并将其发送给 loki 。
promtail 是日志收集 client;loki 是日志收集 service,它是一个时间序列数据库,可以作为 Granfna 的数据源
(类似于prometheus),同时它也有 Alert Rule 规则功能,可以向 Alertmanager 发送告警信息;而 Alertmanager
是一个独立的组件,专注于告警处理。
Loki 的数据可以通过Grafana进行展示。
只要在应用程序服务器上安装 promtail 来收集日志然后发送给 Loki 存储,就可以在 Grafana UI 界面通过添加
Loki 为数据源进行日志查询(如果 Loki 服务器性能不够,可以部署多个 Loki 进行存储及查询)。作为一个日志
系统不光只有查询分析日志的能力,还能对日志进行监控和报警。
Promtail 客户端采集日志数据,将其索引并存储在后端持久化存储中。
用户可以使用 LogQL 查询语言来过滤和检索特定的日志记录,并通过 Grafana 的集成来进行可视化分析。
基础服务器部署IP地址
loki服务端和grafana-web端10.50.110.xxx
Promtail客户端IP地址10.50.xxx.xxx
loki部署
loki分为服务端,客户端和web端 。及 loki、Promtail 和 Grafana。
部署loki服务端,下载loki安装包到本地解压即可。
# 下载
# wget https://github.com/grafana/loki/releases/download/v2.8.6/loki-linux-amd64.zip
# 解压之后只有一个二进制文件loki-linux-amd64
# unzip "loki-linux-amd64.zip"
# 授权 这里不加权限也可以
# chmod a+x "loki-linux-amd64"
增加配置文件
这里解压后只有一个二进制包,需要在github上下载配置文件
auth_enabled: falseserver:# http监听端口,代理服务(promtail)会向此端口发送日志流http_listen_port: 3100# grpc监听端口grpc_listen_port: 3110# grpc最大接收消息值,默认4Mgrpc_server_max_recv_msg_size: 1073741824# grpc最大发送消息值,默认4Mgrpc_server_max_send_msg_size: 1073741824ingester:lifecycler:address: 10.50.110.xxxring:kvstore:store: inmemoryreplication_factor: 1final_sleep: 0schunk_idle_period: 5mchunk_retain_period: 30smax_transfer_retries: 0# 一个timeseries块在内存中的最大持续时间,如果timeseries运行的时间超过此时间,则当前块将刷新到存储并创建一个新块max_chunk_age: 20mschema_config:configs:# 2020-10-24之后loki信息用下面的配置,这个主要是用来做兼容的- from: 2020-10-24# 索引使用哪种存储,还有boltdb-shipperstore: boltdb# 怎么存储,简单部署的话保存在本地文件系统object_store: filesystem# 版本schema: v11# 索引怎么更新和存储index: # 索引前缀prefix: index_