loki入门

一、简介

1、简介

Loki 是 Grafana Labs 团队最新的开源项⽬,是⼀个⽔平可扩展,⾼可⽤
性,多租户的⽇志聚合系统。它的设计⾮常经济⾼效且易于操作,因为它
不会为⽇志内容编制索引,⽽是为每个⽇志流编制⼀组标签,专⻔为
Prometheus 和 Kubernetes ⽤户做了相关优化。该项⽬受 Prometheus 启
发,官⽅的介绍就是: Like Prometheus,But For Logs.,类似于
Prometheus 的⽇志系统;
项⽬地址:https://github.com/grafana/loki/
官⽅⽂档地址:https://grafana.com/docs/loki/latest/

与其他⽇志聚合系统相⽐, Loki 具有下⾯的⼀些特性:

  • 不对⽇志进⾏全⽂索引。通过存储压缩⾮结构化⽇志和仅索引元数
    据,Loki 操作起来会更简单,更省成本。
  • 通过使⽤与 Prometheus 相同的标签记录流对⽇志进⾏索引和分组,
    这使得⽇志的扩展和操作效率更⾼,能对接alertmanager;
  • 特别适合储存 Kubernetes Pod ⽇志; 诸如 Pod 标签之类的元数据会
    被⾃动删除和编⼊索引;
  • 受 Grafana 原⽣⽀持,避免kibana和grafana来回切换;

2、架构

1、组件说明

  • Grafana ⽤于 UI 展示。

  • Promtail:Promtail 是 Loki 的代理,它负责收集日志并将它们发送到 Loki。Promtail 通常在产生日志的机器上运行,可以直接读取日志文件,也可以接收由其他进程(如 Fluentd 或 Fluent Bit)转发的日志。

  • Loki:Loki 是主要的日志聚合和查询组件,它接收并存储日志,同时提供了一个查询接口。Loki 通过索引日志流(而不是每一行日志)来提供高效的存储和查询。

  • Distributor:Distributor 是 Loki 的组件,它负责接收来自 Promtail 的日志数据,然后将这些数据分发到多个 Ingester。

  • Ingester:Ingester 是 Loki 的组件,它负责接收日志数据,将数据压缩后存储在内存中,然后定期将这些数据刷新到长期存储(如 Amazon S3 或 Google Cloud Storage)。

  • Querier:Querier 是 Loki 的组件,它负责处理来自用户的查询请求。Querier 会从 Ingester 和长期存储中获取数据,然后返回查询结果。

  • Query Frontend:Query Frontend 是 Loki 的组件,它负责优化和加速查询。Query Frontend 会将大查询分解为多个小查询,然后并行执行这些小查询。

  • Compactor:Compactor 是 Loki 的组件,它负责压缩和优化在长期存储中的数据。

  • Ruler:Ruler 是 Loki 的组件,它负责执行预定义的规则和警报。-

2、工作流程

在这里插入图片描述

二、安装(二进制)、

0、环境介绍:

      centos7.8虚拟机一台

1、安装loki

本地安装⽅式官⽅⽂档地址:https://grafana.com/docs/loki/latest/installation/local/

1、安装loki

wget https://raw.githubusercontent.com/grafana/loki/master/cmd/loki/loki-local-config.yaml
wget https://github.com/grafana/loki/releases/download/v2.9.6/loki-linux-amd64.zip
mkdir -p /data/loki/{chunks,index}
unzip loki-linux-amd64.zip
cp loki-linux-amd64 /usr/local/bin/loki

2、配置loki通过systemctl管理

cat /etc/systemd/system/loki.service 
[Unit]
Description=Loki Log Aggregator Service
After=network.target

[Service]
ExecStart=/usr/local/bin/loki -config.file=/data/loki/loki-local-config.yaml
Restart=always
RestartSec=5s
LimitNOFILE=65536

[Install]
WantedBy=multi-user.target

3、修改配置文件

cat /data/loki/loki-local-config.yaml
auth_enabled: false

server:
  http_listen_port: 3100
  grpc_listen_port: 9096

common:
  path_prefix: /data/loki    #endpoint路径前缀
  storage:
    filesystem:
      chunks_directory: /data/loki/chunks #块存放路径
      rules_directory: /data/loki/rules  #规则存放路径
  replication_factor: 1
  ring:
    instance_addr: 192.168.86.14      #loki实例地址
    kvstore:
      store: inmemory

schema_config:
  configs:
    - from: 2024-03-30
      store: boltdb-shipper
      object_store: filesystem
      schema: v13
      index:
        prefix: index_
        period: 24h

ruler:
  alertmanager_url: http://localhost:9093 #告警服务管理地址

chunk_store_config:
 max_look_back_period: 2160h #最大可查询历史日期 90天

table_manager:
 retention_deletes_enabled: true
 retention_period: 2160h   #表的保留日期 90天

4、启动loki

systemctl start loki
systemctl enable loki

2、安装promtail

1、安装

wget https://raw.githubusercontent.com/grafana/loki/main/clients/cmd/promtail/promtail-local-config.yaml
wget https://github.com/grafana/loki/releases/download/v2.9.6/promtail-linux-amd64.zip
unzip promtail-linux-amd64.zip
cp promtail-linux-amd64 /usr/local/bin/promtail
mkdir /data/promtail

2、配置promtail通过systemctl管理

cat /etc/systemd/system/promtail.service 
[Unit]
Description=Promtail Log Shipper Service
After=network.target

[Service]
ExecStart=/usr/local/bin/promtail -config.file=/data/promtail/promtail-local-config.yaml
Restart=always
RestartSec=5s
LimitNOFILE=65536

[Install]
WantedBy=multi-user.target

3、修改配置文件

cat /data/promtail/promtail-local-config.yaml 
server:
  http_listen_port: 9080
  grpc_listen_port: 0

positions:
  filename: /data/positions.yaml

clients:
  - url: http://192.168.86.14:3100/loki/api/v1/push

scrape_configs:
- job_name: system
  static_configs:
  - targets:
      - 192.168.86.14
    labels:
      job: varlogs
      __path__: /var/log/*log

4、启动promtail

systemctl start promtail
systemctl enable promtail

3、安装grafana

1、下载安装包

wget https://dl.grafana.com/enterprise/release/grafana-enterprise-10.4.1.linux-amd64.tar.gz
tar -zxvf grafana-enterprise-10.4.1.linux-amd64.tar.gz -C/opt

2、配置systemctl启动

vi /etc/systemd/system/grafana-server.service
[Unit]
Description=Grafana Server
After=network.target

[Service]
Type=simple
ExecStart=/opt/grafana-v10.4.1/bin/grafana-server \
--config=/opt/grafana-v10.4.1/conf/defaults.ini \
--homepath=/opt/grafana-v10.4.1

Restart=on-failure
Environment="GF_LOG_LEVEL=info"

[Install]
WantedBy=multi-user.target

3、启动grafana-server

systemctl start grafana-server
systemctl enable grafana-server

4、配置数据源

在这里插入图片描述
在这里插入图片描述

5、修改配置,使用minio存储

# Loki 主配置文件,用于连接 MinIO
auth_enabled: false

server:
  http_listen_port: 3100
  grpc_listen_port: 9096

common:
  path_prefix: /data/loki
  replication_factor: 1
  ring:
    instance_addr: 192.168.86.14
    kvstore:
      store: inmemory

storage_config:
  aws:
    s3: http://QeytJ4j0u6Kodh4ki6Ra:ctrCLm0XRWmhZuv2flt5Wgf9QaGpNGFOXoMBCFxT@192.168.86.21:31388 # 替换为您的 MinIO 访问凭证和 IP/域名
    bucketnames: loki-bucket
    s3forcepathstyle: true

  boltdb_shipper:
    shared_store: aws
schema_config:
  configs:
    - from: 2024-03-30
      store: boltdb-shipper
      object_store: aws
      schema: v13 # 根据 Loki 当前版本使用合适的 schema 版本
      index:
        prefix: index_
        period: 24h

ruler:
  alertmanager_url: http://localhost:9093

chunk_store_config:
  max_look_back_period: 2160h

table_manager:
  retention_deletes_enabled: true
  retention_period: 2160h

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值