首页 > 其他分享 >日志收集系统PLG(Promtail+Loki+Grafana)部署

日志收集系统PLG(Promtail+Loki+Grafana)部署

时间:2024-04-11 09:55:05浏览次数:12  
标签:Promtail amd64 sh grafana PLG loki promtail 日志 Grafana

一、简 介

Loki是受Prometheus启发由Grafana Labs团队开源的水平可扩展,高度可用的多租户日志聚合系统。 开发语言: Google Go。它的设计具有很高的成本效益,并且易于操作。使用标签来作为索引,而不是对全文进行检索,也就是说,你通过这些标签既可以查询日志的内容也可以查询到监控的数据签,极大地降低了日志索引的存储。系统架构十分简单,由以下3个部分组成 :

Promtail 是代理,负责收集日志并将其发送给 loki 。

Loki 是主服务器,负责存储日志和处理查询 。

Grafana 用于 UI 展示。

只要在应用程序服务器上安装promtail来收集日志然后发送给Loki存储,就可以在Grafana UI界面通过添加Loki为数据源进行日志查询(如果Loki服务器性能不够,可以部署多个Loki进行存储及查询)。作为一个日志系统不光只有查询分析日志的能力,还能对日志进行监控和报警。

二、原理分析

promtail收集并将日志发送给loki的 Distributor 组件 Distributor会对接收到的日志流进行正确性校验,并将验证后的日志分批并行发送到Ingester Ingester 接受日志流并构建数据块,压缩后存放到所连接的存储后端 Querier 收到HTTP查询请求,并将请求发送至Ingester 用以获取内存数据 ,Ingester 收到请求后返回符合条件的数据 ; 如果 Ingester 没有返回数据,Querier 会从后端存储加载数据并遍历去重执行查询 ,通过HTTP返回查询结果

三、对比

PLG与ELK比较优势ELK虽然功能丰富,但规模复杂,资源占用高,操作苦难,很多功能往往用不上,有点杀鸡用牛刀的感觉。 Loki 不对日志进行全文索引。通过存储压缩非结构化日志和索引元数据,Loki 操作起来会更简单,更省成本。 通过使用与 Prometheus 相同的标签记录流对日志进行索引和分组,这使得日志的扩展和操作效率更高。 安装部署简单快速,且受 Grafana 原生支持。

四、下载

curl -O -L "https://github.com/grafana/loki/releases/download/v1.5.0/loki-linux-amd64.zip" 
curl -O -L "https://github.com/grafana/loki/releases/download/v1.5.0/promtail-linux-amd64.zip"
wget https://dl.grafana.com/enterprise/release/grafana-enterprise-8.3.3.linux-amd64.tar.gz

五、 安装loki、grafana、promtail

安装loki

先将loki-linux-amd64.zip和grafana-enterprise-8.3.3.linux-amd64.tar.gz上传到日志服务器(10.60.134.55);再将promtail-linux-amd64.zip上传到应用服务器(10.60.134.60、10.60.134.48、10.60.134.56)。

在日志服务器 上创建目录 /usr/local/logsCollect/loki用于安装loki,创建目录/usr/local/logsCollect/grafana用于安装grafana,如下:

mkdir  /data/loki
mkdir  /data/loki/{chunks,index}

在日志服务器 上创建目录,用于文件存储和索引存储。

解压unzip loki-linux-amd64.zip,并配置config.yaml

auth_enabled: false
server:
  http_listen_port: 8094
ingester:
  lifecycler:
    address: 10.60.134.55 #日志服务器ip,即本机地址
    ring:
      kvstore:
        store: inmemory
      replication_factor: 1
    final_sleep: 0s
  chunk_idle_period: 5m
  chunk_retain_period: 30s
schema_config:
  configs:
  - from: 2024-04-01
    store: boltdb
    object_store: filesystem
    schema: v11
    index:
      prefix: index_
      period: 168h   #每张表的时间范围7天
storage_config:
  boltdb:
    directory: /data/loki/index   #索引文件存储地址
  filesystem:
    directory: /data/loki/chunks  #块存储地址
limits_config:
  enforce_metric_name: false
  reject_old_samples: true
  reject_old_samples_max_age: 168h
chunk_store_config:
# 最大可查询历史日期 7天,这个时间必须是schema_config中的period的倍数,否则报错。
  max_look_back_period: 168h
# 表的保留期7天
table_manager:
  retention_deletes_enabled: true
  retention_period: 168h

并创建启动脚本start.sh和关闭脚本shutdown.sh

#!/bin/bash
nohup ./loki-linux-amd64 -config.file=./config.yaml >./server.log 2>&1 &
echo "$!" > pid
#!/bin/bash
kill -9 `cat pid`
echo "关闭成功!"

启动loki命令:sh start.sh。如下日志表示启动成功。

 

 

安装 grafana

首先解压grafana-enterprise-8.3.3.linux-amd64.tar.gz,创建启动脚本start.sh和关闭脚本shutdown.sh。注意conf/defaults.ini为grafana的配置文件,其中http_port为浏览器访问端口。

 启动grafana命令:sh start.sh。如下日志表示启动成功。

 

在应用服务器安装 promtail

在应用服务器 上创建目录 /usr/local/logsCollect/promtail用于安装promtail。

解压promtail-linux-amd64.zip,并配置promtail.yaml

server:
  http_listen_port: 9080
  grpc_listen_port: 0

positions:
  filename: ./positions.yaml

clients:
  - url: http://10.60.134.55:8094/loki/api/v1/push #日志服务器loki地址和端口

scrape_configs:
#ucenter1
 - job_name: zcbackend-172.29.21.22-1
   static_configs:
   - targets:
       - 10.60.134.60
   - labels:
      job: zcbachend-172.29.21.22-1
      host: 10.60.134.60
      __path__: /jiuqi/zichan/zichanyitihuazhenghexiangmu-8084/backend/server.log  #本机日志路径

并创建启动脚本start.sh和关闭脚本shutdown.sh

 启动promtail命令:sh start.sh。如下日志表示启动成功。

 

打开grafana。默认密码admin/admin。

 添加数据源

 测试连接

 查询日志

 

标签:Promtail,amd64,sh,grafana,PLG,loki,promtail,日志,Grafana
From: https://www.cnblogs.com/xiangpeng/p/18127120

相关文章

  • PLGA (50:50) 是聚乳酸 (PLA) 和聚乙醇酸 (PGA) 的共聚物 | MedChemExpress (MCE)
    PLGA(50:50)|聚乳酸-羟基乙酸共聚物中文名:聚乳酸-羟基乙酸共聚物CAS:34346-01-5品牌:MedChemExpress(MCE)存储条件:Powder:-20°C,3years;4°C,2years.Insolvent:-80°C,6months;-20°C,1month.生物活性:PLGA(50:50)(poly(lactic-co-glycolicacid)(50:5......
  • Grafana+Prometheus监控网络设备
    使用Grafana+Prometheus监控网络设备在Linux下安装Granfna+Prometheus集成环境通过snmp协议监控网络设备安装前提Granfa软件包Grafana官方地址:https://grafana.com/Grafana官方文档地址:https://grafana.com/docs/Grafana官方下载地址:https://grafana.com/grafana/download?......
  • jmeter+influxdb+grafana 进行压测
    一、准备工作安装jdk8,配置java环境变量下载解压Jmeter,Apache官网最新版本为5.4.1。这里给大家提供一个我们目前在用的Jmeter5.1.1的包,直接下载解压即可......
  • grafana使用变量过滤时间序列
    这里我们为Dashboard创建了一个名为node的变量,并且指定其类型为Query。Query类型的变量,允许用户指定数据源以及查询表达式,并通过正则匹配(Regex)的方式对查询结果进行处理,从而动态生成变量的可选值函数作用label_values(label)返回Promthues所有监......
  • 利用Grafana监控influxdb表中数据有效性
    目标把时序数据(如车辆指标)写入influxdb之后,我们想知道指标值是否异常(如累计里程大于1亿)、新增数据量是否合理(如半个小时表中没有新增数据,大概率服务故障了)方案概述influxdb本身提供了alert功能,但是比较简陋。如不支持把报警消息发送到飞书。因此我就尝试用GrafanaAlert......
  • grafana+prometheus+cadvisor监控容器指标数据
    前言整理技术,在这篇文章中,将会搭建grafana+prometheus+cadvisor监控容器,并使用一个热门数据看板,再监控容器的性能指标dashboard效果这个是node-exporter采集到的数据,我没装node-exporter,而且这也不是本文的内容,所以这个看板就没东西这个是容器性能指标这个性能指标里......
  • Grafana源码启动
    Grafana源码启动因为项目用到Grafana,但是用iframe嵌入前端。想研究一下源码看有没有可能直接用组件嵌入,然后用API调用Grafana的服务。GrafanabackendGrafana的后端服务是用Go写的,新语言,有待学习。Grafanafrontend前端使用React、Angular编写的Typescript项目。框架没学习过......
  • Grafana添加下拉框变量
    背景在做完通过process-exporter采集指定进程的资源使用情况后发现Grafana提供的监控图标是将所有机器的进程都存放在一起,不支持单独查看某台机器的进程情况,所以决定对Grafana图表进行修改。Grafanav10.3.1步骤步骤1:点击设置--->添加变量步骤2:设置变量变量类型、常规信......
  • Grafana的render失败的简单处理
    Grafana的render失败的简单处理背景周五周六两天研究了使用grafanarender的方式渲染图片.但是周六晚上收到的邮件发现图片重复了.当时立马就有点懵逼了.手工查看渲染的页面发现会报错:Renderingfailed.没办法,只能周天重新研究一下查看日志"failedtoloador......
  • Grafana将监控信息渲染成图片并且邮件发送的过程
    Grafana将监控信息渲染成图片并且邮件发送的过程背景去年12月份时自己创建了一套Grafana监控可以监控redis,hikari,启动时间,补丁更新时间等等事项.但是因为后续的事情比较多,一直有一点荒废了.最近折腾阿里云,让阿里云给自己发了一个简单的大屏展示.突然想其实自己也可......