Loki日志系统

news2025/3/10 10:53:34

1、Loki是什么?

Loki是一个开源的日志聚合系统,由Grafana Labs开发和维护。它旨在帮助用户收集、存储和查询大规模的日志数据,帮助用户更好地理解和监控他们的应用程序和系统。

Loki的设计灵感来自于Prometheus,它采用了类似的标签和度量方式来组织和查询日志数据。与传统的日志聚合系统相比,Loki具有以下特点:

  • 分布式架构:Loki使用分布式架构,可以水平扩展以处理大量的日志数据。
  • 索引-free:Loki不使用传统的索引结构来存储日志数据,而是使用标签和度量方式来组织数据,从而减少了存储和查询的复杂性。
  • 高效存储:Loki使用压缩和切片技术来存储日志数据,以减少存储空间的占用。
  • 实时查询:Loki支持实时查询,可以快速检索和过滤日志数据。
  • 简化部署:Loki可以与Prometheus和Grafana无缝集成,使得部署和管理变得更加简单。

2、Loki架构及概念

Loki 由以下3个部分组成:
loki是主服务器,负责存储日志和处理查询。
promtail是代理,负责收集日志并将其发送给 loki 。
Grafana用于 UI 展示。
在这里插入图片描述

3、安装部署

方式一: 官网安装指导
方式二:基于官网配置文件改动
核心配置文件:loki-config.yaml/promtail-config.yaml/docker-compose.yaml

# 目录结构-config/
   |-loki-config.yaml
   |-promtail-local-config.yaml
|-docker-compose.yaml
|-loki/
    |-index/
    |-chunks/
|-grafana/

3.1 promtail安装配置

1)安装

$ curl -O -L "https://github.com/grafana/loki/releases/download/v2.8.4/promtail-linux-arm64.zip"
# extract the binary
$ unzip "promtail-linux-arm64.zip"
# make sure it is executable
$ chmod a+x "promtail-linux-arm64"
# 启动 promtail
cd /data/promtail
nohup ./promtail-linux-amd64 --config.file=promtail-local-config.yaml &

2)配置文件:promtail-local-config.yaml

# Promtail 配置文件
server:
  http_listen_port: 9080  # 监听端口
positions:
  filename: /tmp/positions.yaml  # 位置文件路径
clients:
  - url: http://loki:3100/loki/api/v1/push  # Loki 服务器的地址
scrape_configs:
  - job_name: app-log  # 作业名称
    static_configs:
      - targets:
          - localhost  # 目标地址,可以是主机名或IP地址
        labels:
          job: {application}-logs  # 标签,用于过滤和标识日志来源
          project: oa
          host: xxx.xx.xx.xx
          __path__: /data/app/{application}/logs/*.log  # 日志文件路径,支持通配符

  - job_name: {job-task}  # 作业名称
    static_configs:
      - targets:
          - localhost  # 目标地址,可以是主机名或IP地址
        labels:
          job: {application}-logs  # 标签,用于过滤和标识日志来源
          host: xxx.xx.xx.xx
          __path__: /data/{job-task}/*.log  # 日志文件路径,支持通配符

3.2 Docker-compose安装Loki&Grafana

1)docker-compose.yaml

# 适用于loki + grafana部署,排除掉promtail
version: "3"
networks:
  loki:

services:
  loki:
    image: grafana/loki:2.8.3
    container_name: loki
    # no,默认策略,在容器退出时不重启容器
    # always,在容器退出时总是重启容器
    # unless-stopped,在容器退出时总是重启容器,但是不考虑在Docker守护进程启动时就已经停止了的容器
    # restart: unless-stopped
    ports:
      - "3100:3100"
    volumes:
      - ./loki-config.yaml:/etc/loki/local-config.yaml # 将主机上的loki-config.yaml文件挂载到容器的/etc/loki/local-config.yaml文件
      - ./loki/index:/opt/loki/index # 将主机上的index目录挂载到容器的/opt/loki/index目录,用于存储Loki的数据
      - ./loki/chunks:/opt/loki/chunks # 将主机上的chunks目录挂载到容器的/opt/loki/chunks目录,用于存储Loki的数据
    command: -config.file=/etc/loki/local-config.yaml
    networks:
      - loki

  grafana:
    environment:
      - GF_PATHS_PROVISIONING=/etc/grafana/provisioning
      - GF_SECURITY_ADMIN_PASSWORD=xxxx
      - GF_USERS_ALLOW_SIGN_UP=false
 #     - GF_AUTH_ANONYMOUS_ENABLED=true
 #     - GF_AUTH_ANONYMOUS_ORG_ROLE=Admin
    entrypoint:
      - sh
      - -euc
      - |
        mkdir -p /etc/grafana/provisioning/datasources
        cat <<EOF > /etc/grafana/provisioning/datasources/ds.yaml
        apiVersion: 1
        datasources:
        - name: Loki
          type: loki
          access: proxy 
          orgId: 1
          url: http://loki:3100
          basicAuth: false
          isDefault: true
          version: 1
          editable: false
        EOF
        /run.sh
    image: grafana/grafana:latest
    container_name: grafana
    restart: unless-stopped
    ports:
      - "3000:3000"
    volumes:
      - ./grafana:/var/lib/grafana 
    networks:
      - loki

2)loki-config.yaml

#loki-config.yaml
auth_enabled: false # 是否启用身份验证
server:
  http_listen_port: 3100 # 监听端口

common:
  path_prefix: /loki
  storage:
    filesystem:
      chunks_directory: /loki/chunks
      rules_directory: /loki/rules
  replication_factor: 1 # 复制因子
  ring:
    kvstore:
      store: inmemory # 键值存储方式

schema_config:
  configs:
    - from: 2020-10-24
      store: boltdb-shipper # 存储方式
      object_store: filesystem
      schema: v11
      index:
        prefix: index_ # 索引前缀
        period: 24h    # 索引周期
table_manager:
  retention_deletes_enabled: false #日志保留周期开关,默认为false
  retention_period: 0s  #日志保留周期

ruler:
  alertmanager_url: http://localhost:9093

3)使用docker-compose启动

$ docker-compose up -d

官网地址:https://grafana.com/docs/loki/v2.8.x/installation/local/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/965115.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【ROS 03】ROS通信机制进阶

上一章内容&#xff0c;主要介绍了ROS通信的实现&#xff0c;内容偏向于粗粒度的通信框架的讲解&#xff0c;没有详细介绍涉及的API&#xff0c;也没有封装代码&#xff0c;鉴于此&#xff0c;本章主要内容如下: ROS常用API介绍&#xff1b;ROS中自定义头文件与源文件的使用。…

springboot 与异步任务,定时任务,邮件任务

异步任务 在Java应用中&#xff0c;绝大多数情况下都是通过同步的方式来实现交互处理的&#xff1b;但是在处理与第三方系统交互的时候&#xff0c;容易造成响应迟缓的情况&#xff0c;之前大部分都是使用多线程来完成此类任务&#xff0c;其实&#xff0c;在Spring 3.x之后&a…

2023开学礼《乡村振兴战略下传统村落文化旅游设计》许少辉八一新书浙江师范大学图书馆

2023开学礼《乡村振兴战略下传统村落文化旅游设计》许少辉八一新书浙江师范大学图书馆

【GUI开发】用python爬YouTube博主信息,并开发成exe软件

文章目录 一、背景介绍二、代码讲解2.1 爬虫2.2 tkinter界面2.3 存日志 三、软件演示视频四、说明 一、背景介绍 你好&#xff0c;我是马哥python说&#xff0c;一名10年程序猿。 最近我用python开发了一个GUI桌面软件&#xff0c;目的是爬取相关YouTube博主的各种信息&#…

算法:图解位运算以及鸽巢原理应用

文章目录 实现原理基础位运算位图思想找最右侧数按位异或 算法思路典型例题基础位运算只出现一次的数字只出现一次的数字III 经典题型判断字符是否唯一两整数之和只出现一次的数字II消失的两个数字 鸽巢原理总结 本篇总结位运算中常见的算法题和思路&#xff0c;首先总结位运算…

边写代码边学习之TF Attention

1. 什么是Attention 注意力机制&#xff08;Attention Mechanism&#xff09;是机器学习和人工智能领域中的一个重要概念&#xff0c;用于模拟人类视觉或听觉等感知过程中的关注机制。注意力机制的目标是让模型能够在处理信息时&#xff0c;更加关注与任务相关的部分&#xff…

TDengine(2):wsl2+ubuntu20.04+TDengine安装

一、ubuntu系统下提供了三种安装TDengine的方式&#xff1a; 二、通过 apt 指令安装失败 因为是linux初学者&#xff0c;对apt 指令较为熟悉&#xff0c;因此首先使用了该方式进行安装。 wget -qO - http://repos.taosdata.com/tdengine.key | sudo apt-key add -echo "…

windows使用-设置windows的远程访问用户数量

文章目录 前言相关操作总结前言 作为IT工程师,使用服务器做相应的软件操作时常有的事。最近一段时间,我们的团队多个成员都需要远程登录到一台windows2003Server的服务器处理相应的业务。而默认情况下,Windows系统只允许一名用户远程到服务器上,这给小伙伴的工作造成一些不…

React-native环境配置与项目搭建

基础环境搭建 安装 node.js &#xff08;版本>12 ,推荐安装LTS稳定版本&#xff09; 安装 Yarn &#xff08;npm install -g yarn&#xff09; 安装 react native 脚手架 (npm install -g react-native-cli) windows 只能搭建Android 开发环境 Mac 下既能搭建Android 环境&…

斥资4亿,收购这家WLAN厂商,结果……

晚上好&#xff0c;我的网工朋友 不少朋友可能有隐形&#xff0c;2019年的时候&#xff0c;Juniper花费4.05亿美元&#xff0c;收购WiFi初创公司Mist Systems。 Mist Systems是一家买无线产品起家的公司&#xff0c;由前思科高管创建的。主打的产品是“AI-Driven WLAN”&…

linux安装firefox

1.下载对应包 https://www.mozilla.org/en-US/firefox/all/#product-desktop-release 2. 挂载桌面链接(如果/usr/bin/firefox下有的话,先删除) ln -s /opt/firefox/firefox /usr/bin/firefox 3.执行以下命令&#xff0c;即可启动Firefox客户端&#xff1a; firefox

TCP协议报文

前言 TCP/IP协议簇——打开虚拟世界大门中&#xff0c;已经给大家大致介绍了TCP/IP协议簇的分层。 TCP (Transmission Control Protocol)传输控制协议&#xff0c;在TCP/IP协议簇中&#xff0c;处于传输层。是为了在不可靠的互联网络&#xff08;IP协议&#xff09;中&#x…

LangChain学习笔记;给老师的ChatGPT使用指南;中国大模型顶级闭门会交流笔记;飞桨开源任务挑战大赛 | ShowMeAI日报

&#x1f440;日报&周刊合集 | &#x1f3a1;生产力工具与行业应用大全 | &#x1f9e1; 点赞关注评论拜托啦&#xff01; &#x1f916; 飞桨PaddlePaddle开源任务挑战大赛&#xff0c;首届「开放原子开源大赛」等你参与 官网&#xff1a;https://competition.atomgit.com…

redis未授权访问

文章目录 搭建环境漏洞复现安装Exlopit并使用 前提条件&#xff1a; 1.安装docker docker pull medicean/vulapps:j_joomla_22.安装docker-compose docker run -d -p 8000:80 medicean/vulapps:j_joomla_23.下载vulhub 搭建环境 输入下面命令&#xff0c;来到Redis的路径下&am…

基于Open3D的点云处理16-特征点匹配

点云配准 将点云数据统一到一个世界坐标系的过程称之为点云配准或者点云拼接。&#xff08;registration/align&#xff09; 点云配准的过程其实就是找到同名点对&#xff1b;即找到在点云中处在真实世界同一位置的点。 常见的点云配准算法: ICP、Color ICP、Trimed-ICP 算法…

深入探讨梯度下降:优化机器学习的关键步骤(一)

文章目录 &#x1f340;引言&#x1f340;什么是梯度下降&#xff1f;&#x1f340;损失函数&#x1f340;梯度(gradient)&#x1f340;梯度下降的工作原理&#x1f340;梯度下降的变种&#x1f340;随机梯度下降&#xff08;SGD&#xff09;&#x1f340;批量梯度下降&#xf…

添加YDNS免费的ipv6动态域名解析

背景 又到了一年一度的dns域名到期&#xff0c;寻找替代了&#xff0c;前几年用了阿里、华为的免费域名&#xff0c;支持了几个搭建在NAS上的微服务&#xff1b;一旦涉及到域名续费&#xff0c;价格就比首年上去了不少&#xff0c;所以&#xff0c;打算找个长期的免费域名。 搜…

在Windows 10上部署ChatGLM2-6B:掌握信息时代的智能对话

在Windows 10上部署ChatGLM2-6B&#xff1a;掌握信息时代的智能对话 硬件环境ChatGLM2-6B的量化模型最低GPU配置说明准备工作ChatGLM2-6B安装部署ChatGLM2-6B运行模式解决问题总结 随着当代科技的快速发展&#xff0c;我们进入了一个数字化时代&#xff0c;其中信息以前所未有的…

python数据分析基础—pandas中set_index()、reset_index()的使用

文章目录 一、索引是什么&#xff1f;二、set_index()三、reset_index() 一、索引是什么&#xff1f; 在进行数据分析时&#xff0c;通常我们要根据业务情况进行数据筛选&#xff0c;要求筛选特定情况的行或列&#xff0c;这时就要根据数据类型(Series或者DataFrame)的索引情况…

小苹果他爹V5.8版本最强小苹果影视盒子增加46条内置优质单仓线路

这款软件直接使用了俊版的小苹果接口&#xff0c;并且许多资源似乎都是直接调用的小苹果官方资源。这样一来&#xff0c;小苹果的作者可能会面临版权方面的问题&#xff0c;而且也让更多的用户对小苹果的收费模式产生质疑。在这个信息传播如此快速的时代&#xff0c;开发者们应…