Loki安装使用方式

news2024/12/25 2:05:40

Distributor 收到 HTTP 请求,用于存储流数据
通过 hash 环对数据流进行 hash
Distributor将数据流发送到对应的Ingester及其副本上
Ingester 新建 Chunk 或将数据追加到已有Chunk 上
Distributor通过 HTTP连接发送响应信息

Loki 日志系统由以下3个部分组成:
loki是主服务器,负责存储日志和处理查询。
promtail是专为loki定制的代理,负责收集日志并将其发送给 loki 。
Grafana用于 UI展示。
四种安装方式
在这里插入图片描述
Promtail收集并将日志发送给Loki的 Distributor 组件
Distributor会对接收到的日志流进行正确性校验,并将验证后的日志分批并行发送到Ingester
Ingester 接受日志流并构建数据块,压缩后存放到所连接的存储后端
Querier 收到HTTP查询请求,并将请求发送至Ingester 用以获取内存数据 ,Ingester 收到请求后返回符合条件的数据 ;
如果 Ingester 没有返回数据,Querier 会从后端存储加载数据并遍历去重执行查询 ,通过HTTP返回查询结果。
Loki与ELK比较
ELK功能丰富,但是架构复杂,资源占用高,很多功能系统用不上,造成很多资源浪费。
ELK进行全文索引。安装部署复杂。
Loki不对日志全文索引。通过存储压缩非结构化日志和仅索引元数据,Loki 操作起来会更简单,更省成本。
Loki通过使用与 Prometheus 相同的标签记录流对日志进行索引和分组,这使得日志的扩展和操作效率更高。
Loki安装部署简单快速,且受 Grafana 原生支持。
假如系统依赖于ES,建议使用ELK作为日志系统。若系统不依赖ES,选择用Loki。

https://github.com/grafana/loki/blob/v1.5.0/docs/installation/README.md

我选择 Installing Loki with Docker or Docker Compose

docker-compose.yml

version: "3"

services:
  loki:
    image: grafana/loki:1.5.0
    restart: always
    ports:
      - "3100:3100"
    command: -config.file=/etc/loki/local-config.yaml
    volumes:
      - loki-config:/etc/loki
    networks:
      - loki

  promtail:
    image: grafana/promtail:1.5.0
    restart: always
    volumes:
    # promtail 采集日志的目录(宿主机的目录)  /root/log 也可以直接采集容器目录
      - /var/log:/var/log #挂载到宿主机的/var/log
      - /mnt/config/docker-config.yaml:/etc/promtail/docker-config.yaml #配置文件拷贝到宿主机挂载到容器
      - promtail-config:/etc/promtail
    command: -config.file=/etc/promtail/docker-config.yaml
    networks:
      - loki

  grafana:
    image: grafana/grafana
    restart: always
    ports:
      - "3000:3000"
    depends_on:
      - loki
      - promtail
    volumes:
      - grafana-storage:/var/lib/grafana
    networks:
      - loki

networks:
  loki:

volumes:
  loki-config:
  promtail-config:
  grafana-storage:

启动
docker cp 0d0a90b5b7fa:/etc/promtail/docker-config.yaml /mnt/config/
docker-compose up -d
http://ip:3000/
登录密码admin/admin

  1. 部署
    本篇通过目前最新版微服务架构进行部署,部署工具是helm
    需要一套k8s集群,客户端,helm工具
    helm repo资源
https://barrett0828.com/%E6%9E%84%E5%BB%BAloki%E6%97%A5%E5%BF%97%E7%B3%BB%E7%BB%9F/
helm repo add grafana https://grafana.github.io/helm-charts
grafana/grafana
grafana/loki-distributed
grafana/promtail
kubectl create ns loki

helm pull grafana/loki-distributed
helm pull grafana/promtail
helm pull kubectl create ns loki
helm upgrade --install loki --namespace=loki ./loki-distributed
helm install promtail -n loki grafana/promtail --set config.clients[0].url=http://loki-loki-distributed-gateway/loki/api/v1/push
helm install loki-grafana --namespace=loki grafana/grafana


https://artifacthub.io/packages/helm/grafana/promtail #日志收集配置文件参考地址
mkdir -p /promtail/ci/test
vi promtail/ci/test/values.yaml

config:
  snippets:
    extraScrapeConfigs: |
      # Add an additional scrape config for syslog
      - job_name: journal
        journal:
          path: /var/log/journal
          max_age: 12h
          labels:
            job: systemd-journal
        relabel_configs:
          - source_labels:
              - __journal__hostname
            target_label: hostname

          # example label values: kubelet.service, containerd.service
          - source_labels:
              - __journal__systemd_unit
            target_label: unit

          # example label values: debug, notice, info, warning, error
          - source_labels:
              - __journal_priority_keyword
            target_label: level

# Mount journal directory and machine-id file into promtail pods
extraVolumes:
  - name: journal
    hostPath:
      path: /var/log/journal
  - name: machine-id
    hostPath:
      path: /etc/machine-id

extraVolumeMounts:
  - name: journal
    mountPath: /var/log/journal
    readOnly: true
  - name: machine-id
    mountPath: /etc/machine-id
    readOnly: true

更新升级
helm upgrade promtail ./promtail -f ./promtail/ci/test/values.yaml -i -n loki
查看admin密码

kubectl get secret --namespace loki loki-grafana -o jsonpath="{.data.admin-password}" | base64 --decode ; echo

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
添加数据源
http://loki-loki-distributed-gateway
查询日志
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

每日一题——删除字符串中的所有相邻重复项

每日一题 删除字符串中的所有相邻重复项 题目链接 思路 这是一道用栈解决的典型题目 我们先来看看栈的基本性质: 栈:是一种特殊的线性表,其只允许在固定的一端进行插入和删除元素的操作。进行数据插入和删除操作的一端称为栈顶&#xff0c…

解决Github上传或者下载时失败的问题

总是出现push不到GitHub的问题, 这里来记录一下每次的解决方法 文章目录 2023年05月28日出现问题2023年05月28日再次出现问题2023年05月29日出现问题 2023年05月28日出现问题 push代码时出现如下图所示的错误 Failed to connect to 127.0.0.1 port 1080 after 2052 ms: Conne…

08.Stack和Queue

栈:先进后出 队列:先进先出 JVM的栈就是平常所说的一块内存。 此处所说的栈是数据结构 1. 栈(Stack) 1.1 概念 栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈 顶&…

迪赛智慧数——柱状图(基本柱状图):全国美食类门店TOP10地区

效果图 中国“最会吃”的省份,广东榜上有名,看看有你的家乡吗? 广东美食门店开店数量保持较好状态,重庆、上海、北京、天津开店率在5%以上。广东拥有众多的美食文化,美食门店数量也是全国最多的省份有99万家美食门店&#xff0c…

SpringBoot SSE服务端主动推送事件详解

一、SSE概述 1、SSE简介 SSE(Server Sent Event),直译为服务器发送事件,也就是服务器主动发送事件,客户端可以获取到服务器发送的事件。 我们常见的 http 交互方式是客户端发起请求,服务端响应,然后一次请求完毕。但是…

Centos 7安装python 3.9.10

概述 Python是一种高级编程语言,它具有简单易学、可读性强、代码简洁等特点。Python由Guido van Rossum于1991年创造,最初被用作一种教学语言,但现在已经成为一种通用的编程语言。 Python支持多种编程范式,包括面向对象编程、函数…

如何运用R语言进行Meta分析在【文献计量分析、贝叶斯、机器学习等】多技术的融合

Meta分析是针对某一科研问题,根据明确的搜索策略、选择筛选文献标准、采用严格的评价方法,对来源不同的研究成果进行收集、合并及定量统计分析的方法,最早出现于“循证医学”,现已广泛应用于农林生态,资源环境等方面。…

【MySQL】MySql的底层数据结构

文章目录 前言索引结构及查找算法不适合做MySql的数据结构及其原因 一、BTree和BTree的引出1.1 BTree数据结构2.2 BTree数据结构 二、计算m阶,即BTree该取多少合适总结 前言 索引结构及查找算法 一个sql语句在mysql里究竟是如何运行的呢?又是怎么去查找…

如何在Linux系统中使用SCP命令传输文件和文件夹?

在Linux系统中,SCP(Secure Copy)是一种用于在本地和远程主机之间安全传输文件和文件夹的命令行工具。它基于SSH协议,并提供了加密和身份验证机制,确保数据的安全性和完整性。 本文将详细介绍如何使用SCP命令在Linux系统…

如何通过pytest进行更改自动化测试用例的执行顺序?

前言 在自动化测试中,自动化测试用例设计原则就是执行过程时不能存在依赖顺序,那么如果测试用例需要按照指定顺序执行,这个时候应该怎么做呢?目前单元测试框架中unittest没有办法改变测试用例的执行顺序,但是另一个单…

北京发布Web3.0白皮书!币圈扬言:国际金融格局即将重塑!

如今,虚拟资产已成为香港数字经济与金融创新的“桥头堡”。随着加密新政生效在即,市场暗流涌动,头部交易所争相布局,香港或将迎来新一轮的加密竞争。 多家交易所进军香港 5月28日,欧易(OKX)完成…

浅谈兼容性测试点和注意项

一:兼容性测试的概念:就是验证开发出来的程序在特定的运行环境中与特定的软件、硬件或数据相组合是否能正常运行、有无异常的测试过程。 二:兼容性测试的分类: (1)浏览器兼容性测试 指的是在浏览器上检…

one-stage目标检测方法

YOLO系列算法 从区域推荐到端到端 RCNN系列的方法和核心思想在于:先找出可能存在物体的区域,再确认物体的存在 这种思路归根溯源,来自传统的目标检测算法。 为了解决传统方法中的滑动窗口的方式,来找出可能存在目标的区域&…

自学软件测试到什么程度才可以去找工作...拿到阿里offer后才知道有这些就够了!!

如果是纯自学,建议先自学软件测试基础、功能测试等,然后找一个相关的工作,在工作中,边增长项目经验,边自学更难一点的自动化编程、性能测试等。自动化测试、性能测试如果没有老师带,自学的难度比较大&#…

uniapp 使用自定义icon图标

1.下载图标文件 阿里图标库位置:iconfont-阿里巴巴矢量图标库 eg: 搜索 “书签” 图标,点击加入购物车,再进入购物车,填写加入项目,也可以直接下载,点击编辑 编辑可以设置图片颜色,或像素大小…

immutable深拷贝:数据多层属性-不可变数据结构

一、为何要用immutable深拷贝? 1.浅拷贝(浅复制) //引用赋值-浅复制、浅拷贝 var obj{name:"溜溜球"}var obj2obj;obj2.name"刘刘球";console.log(obj);//name:"刘刘球"console.log(obj2);//name:"刘刘…

[C++][opencv]opencv填充透明色到不规则polygon区域

大家用yolov5-seg分割都知道官方演示分割结果会把分割区域半透明填充到原图里面,那么C如何实现呢。今天特地研究了下。由于分割点是变动的,所以我们需要用变量控制分割点数。 参考文章写的很不错,但是有个毛病,他这个是5点必须是…

MySQL---JDBC基础操作、SQL注入

1. JDBC JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API。 JDBC是Java访问数据库的标准规范,可以为不同的关系型数据库提供统一访问,它由一组用Java 语言编写的接口和类组成。 JDBC需要连接…

unreal 5.1 增强输入实现

在ue5.1版本增加了增强输入,并且废弃了之前的轴映射和操作映射。 官方文档地址:https://docs.unrealengine.com/5.1/zh-CN/enhanced-input-in-unreal-engine/ 输入动作(Input Actions) 更改后的区别我体验下来,它将…

探索 PlanetIX:解读区块链游戏运营的奥秘

作者: danielfootprint.network 熊市之中,PlanetIX 成长为最强的 Web3 游戏,在 Polygon 网络上独占鳌头。而其开发团队深度使用了 Footprint Analtics 的零代码数据分析平台和-GameFi 的数据 API 来提升用户的游戏体验。 近日,Footprint 与…