Prometheus+Grafana搭建日志采集

介绍

一、什么是日志数据采集

日志数据采集是指通过各种手段获取应用程序运行时产生的各类日志信息,并将这些信息存储到特定的地方,以便后续分析和使用。通常情况下,这些日志信息包括系统运行状态、错误信息、用户操作记录等等。通过对这些信息的统计和分析,可以有效地监控应用程序的运行状况,及时发现和解决问题。

二、为什么需要进行日志数据采集

对于企业应用系统而言,日志数据采集至关重要。首先,在应用程序出现问题时,通过查看相关日志信息可以快速定位原因,并进行相应处理。其次,在系统运行期间,通过对日志信息的统计和分析,可以发现系统存在的潜在问题,进而进行优化和改进。此外,对于一些业务场景,如在线广告、电商等,日志数据采集更是必不可少,它可以帮助企业更好地了解用户行为、偏好等信息,从而提升营销效果和用户体验。

三、常见的日志采集方案

在这里插入图片描述

方案介绍

• Promtail 是日志收集器,负责收集应用的日志并发送给 Loki。
• Loki 用于日志的存储和解析,并提供查询 API 给下游展示。
• Grafana 负责将 Loki 的日志可视化
在这里插入图片描述

Grafana搭建

之前写过,见文章:Prometheus+Grafana搭建

Loki安装

下载

https://github.com/grafana/loki/releases

#规划:安装在/usr/local下面,数据放在/data下
#以root账号,在/usr/local创建文件夹loki,并将安装包放置在此目录下
mkdir loki
#新建存储路径,数据放在/data下
mkdir  /data
mkdir  /data/loki
mkdir  /data/loki/{chunks,index}
#将安装包loki-linux-amd64.zip移动到/usr/local下,解压
unzip loki-linux-amd64.zip
#解压后重新生成文件夹loki-linux-amd64 ,将文件移动到loki目录下
mv loki-linux-amd64 /usr/local/loki/

在/usr/local/loki目录下,修改配置,如没有则新增
vi config.yaml

#在编辑页面可以插入下述脚本,可自行调整部分配置
auth_enabled: false
server:http_listen_port: 3100
ingester:lifecycler:address: xx.xx.xx.xx #ip地址ring:kvstore:store: inmemoryreplication_factor: 1final_sleep: 0schunk_idle_period: 5mchunk_retain_period: 30sschema_config:configs:- from: 2022-07-01store: boltdbobject_store: filesystemschema: v11index:prefix: index_period: 168h   #每张表的时间范围7天storage_config:boltdb:directory: /data/loki/index   #索引文件存储地址filesystem:directory: /data/loki/chunks  #块存储地址limits_config:enforce_metric_name: falsereject_old_samples: truereject_old_samples_max_age: 168h
chunk_store_config:
#最大可查询历史日期 28天,这个时间必须是schema_config中的period的倍数,否则报错。max_look_back_period: 672h
#表的保留期28天
table_manager:retention_deletes_enabled: trueretention_period: 672h

#启动服务
nohup ./loki-linux-amd64 -config.file=./config.yaml >./loki.log 2>&1 &
#设置开机自启动
cd /etc/systemd/system/
vi loki.service

#可复制下述页面,调整文件路径即可
[Unit]
Description=loki
After=network.target [Service]
ExecStart=/usr/local/loki/loki-linux-amd64 \-config.file=/usr/local/loki/config.yaml &>> /usr/local/loki/loki.log
Restart=on-failure[Install]
WantedBy=multi-user.target

设置自启动

systemctl daemon-reload

启动服务

systemctl start loki #systemctl stop loki systemctl restart loki

查看启动结果

systemctl status loki

加入开机自启动

systemctl enable loki

部署promtail

需要到日志采集端部署

下载

wget https://github.com/grafana/loki/releases/download/v2.8.0/promtail-linux-amd64.zip
#规划:安装在/usr/local下面
#以root账号,在/usr/local创建文件夹promtail,并将安装包放置在此目录下
mkdir promtail
#将安装包promtail-linux-amd64.zip移动到/usr/local下,解压
unzip promtail-linux-amd64.zip
#解压后重新生成文件夹promtail-linux-amd64 ,将文件移动到promtail目录下
mv promtail-linux-amd64  /usr/local/promtail/

在/usr/local/promtail目录下,修改配置,如没有则新增
vi promtail.yaml

#在编辑页面可以插入下述脚本,可自行调整部分配置
server:http_listen_port: 9080grpc_listen_port: 0positions:filename: ./positions.yamlclients:- url: http://xx.xx.xx.xx:3100/loki/api/v1/push   #loki地址,xx是ip地址scrape_configs:
##jobname- job_name: centername                         #jobnamestatic_configs:- targets: - xx.xx.xx.xx                           #xx是ip地址- labels:job: centername                          #jobnamehost: xx.xx.xx.xx                        #xx是ip地址__path__: /home/script/log/*.log        #监控的日志地址,你们根据具体情况选择自己的路径

Promtail默认端口是9080,启动完成后,可以采用上边的方式查看进程是否启动成功

nohup ./promtail-linux-amd64 -config.file=promtail-local-config.yaml > promtail.log 2>&1 &

同样按照上面loki自启动的写法,也可以加入自启动中去

Grafana展示

模版导入

配置Loki数据源,导入监控模版 13639
在这里插入图片描述

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

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

相关文章

牛客算法题 【HJ97 记负均正】 golang实现

题目 HJ97 记负均正 描述 首先输入要输入的整数个数n,然后输入n个整数。输出为n个整数中负数的个数,和所有正整数的平均值,结果保留一位小数。 0即不是正整数,也不是负数,不计入计算。如果没有正数,则平均…

大文件分片上传、分片进度以及整体进度、断点续传(一)

大文件分片上传 效果展示 前端 思路 前端的思路&#xff1a;将大文件切分成多个小文件&#xff0c;然后并发给后端。 页面构建 先在页面上写几个组件用来获取文件。 <body><input type"file" id"file" /><button id"uploadButton…

代码随想录-刷题第十五天

二叉树层序遍历 题目链接&#xff1a;102. 二叉树的层序遍历 思路&#xff1a;利用队列来存储遍历的节点&#xff0c;同时要定义size来保存当前层的节点个数。 时间复杂度O(n) 层序遍历的一般写法&#xff0c;通过一个 while 循环控制从上向下一层层遍历&#xff0c;for 循…

动态规划学习——回文串

目录 一&#xff0c;回文子串 1.题目 2.题目接口 3&#xff0c;解题代码及其思路 解题代码&#xff1a; 二&#xff0c; 分割回文串II 1&#xff0c;题目 2&#xff0c;题目接口 3&#xff0c;解题思路及其代码 一&#xff0c;回文子串 1.题目 给你一个字符串 s &…

模板初阶(2):函数模板的匹配原则,类模板的实例化

一、函数模板的匹配原则 int Add(const int& x, const int& y) {return x y; }template <class T> T Add(const T& x, const T& y) {return x y; }int main() {int a1 1, a2 2;Add(a1, a2);double d1 1.1, d2 2.2;Add(d1, d2);return 0; }一个非模…

Unity 加载本地图片的方法

Unity加载本地图片有不少方法&#xff0c;一般使用以下这些&#xff1a; 1、使用System.IO下的File.ReadAllBytes方法&#xff1a; //方法一void LoadTextureFromFile1(string filePath){// 创建一个Texture2DTexture2D texture new Texture2D(1, 1);// 加载图片数据byte[] i…

【搭建网站】搭建一个自己的网站

【搭建网站】搭建一个自己的网站 传送门&#xff1a;搭建一个自己的网站&#xff1f;看这个就够了&#xff01; P1&#xff0c;建站准备 P2&#xff0c;创建站点

汇编:call与ret/retf指令

一、call指令 ​​​​​​​ 1.1 依据位移进行转移&#xff1a;call 标号 1.2 实现段间转移&#xff1a;call far ptr 标号 1.3 转移地址在寄存器中&#xff1a;call 16位寄存器 1.4 转移地址在内存中 1.4.1 call word ptr 内存单元地址 1.4.2 call dword ptr 内存单元地址…

E/Acc有效加速主义与EA有效利他主义

隐形人工智能初创公司 Extropic 的创始人、前谷歌工程师 Guillaume Verdon 领导了席卷硅谷的“有效加速主义&#xff08;E/Acc&#xff09;”运动。 他在被人肉以后发布声明&#xff1a; 不幸地通过语音取证和网络侦查&#xff0c;被记者人肉搜索了我的身份和秘密初创公司。当…

NVMe Over Fabrics with iRDMA总结 - 2

5.0 Configure NVMe over Fabrics Target (Storage Server) 配置 NVMe over Fabrics 目标机(存储服务器) 5.1 Install NVMe over Fabrics Tools安装 NVMe over Fabrics 工具 5.1.1 Install nvme-cli安装 nvme-cli Download nvme-cli from: 从以下网址下载 nvme-cli:https:…

基于springboot2 mysql Mybatis拦截器 实现 数据库脱敏

在 Spring Boot 2 中使用 MySQL 和 MyBatis 实现数据库脱敏&#xff0c;你可以考虑借助 MyBatis 的拦截器机制来实现。下面是一个简单的示例&#xff0c;演示如何在查询数据时进行脱敏处理。 假设有一个实体类 User&#xff0c;其中包含需要脱敏的字段&#xff0c;比如 name 和…

ZooKeeper 如何保证数据一致性?

在分布式场景中&#xff0c;ZooKeeper 的应用非常广泛&#xff0c;比如数据发布和订阅、命名服务、配置中心、注册中心、分布式锁等。 ZooKeeper 提供了一个类似于 Linux 文件系统的数据模型&#xff0c;和基于 Watcher 机制的分布式事件通知&#xff0c;这些特性都依赖 ZooKee…

【开源】基于JAVA语言的桃花峪滑雪场租赁系统

项目编号&#xff1a; S 036 &#xff0c;文末获取源码。 \color{red}{项目编号&#xff1a;S036&#xff0c;文末获取源码。} 项目编号&#xff1a;S036&#xff0c;文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 游客服务2.2 雪场管理 三、数据库设…

Redis数据存储:高效、灵活、实时

目录 引言 1. Redis概述 1.1 什么是Redis&#xff1f; 1.2 Redis的数据结构 1.3 Redis的持久化机制 2. Redis的使用场景 2.1 缓存 2.2 会话存储 2.3 发布/订阅系统 2.4 计数器和排行榜 3. Redis最佳实践 3.1 数据模型设计 3.2 键的命名规范 3.3 事务和原子操作 3…

国产AI边缘计算盒子,双核心A55丨2.5Tops算力

边缘计算盒子 双核心A55丨2.5Tops算力 ● 2.5TopsINT8算力&#xff0c;支持INT8/INT4/FP16多精度混合量化。 ● 4路以上1080p30fps视频编解码&#xff0c;IVE模块独立提供图像基础算子加速。 ● 支持Caffe、ONNX/PyTorch深度学习框架&#xff0c;提供resnet50、yolov5等AI算…

西南科技大学模拟电子技术实验四(集成运算放大器的线性应用)预习报告

一、计算/设计过程 说明:本实验是验证性实验,计算预测验证结果。是设计性实验一定要从系统指标计算出元件参数过程,越详细越好。用公式输入法完成相关公式内容,不得贴手写图片。(注意:从抽象公式直接得出结果,不得分,页数可根据内容调整) 反相比例运算电路(1)实验…

【开源视频联动物联网平台】j2mod 库写一个Modbus RTU 服务器

J2Mod是一个Java编写的Modbus通信库&#xff0c;可以用于实现Modbus RTU服务器。以下是一个简单的示例&#xff0c;演示如何使用J2Mod库创建一个Modbus RTU服务器&#xff1a; 添加J2Mod库依赖项&#xff1a; 首先&#xff0c;确保在项目中包含J2Mod库。你可以将J2Mod库添加到…

C++包装类

C包装类是为了统一解决一些调用问题&#xff0c;在C中&#xff1a;“函数指针回调、仿函数、lambda表达式”都属于可调用对象&#xff0c;他们都可以达到函数函数的行为&#xff0c;达到回调函数和事件处理的功能。 但他们各有优缺点&#xff1a; 函数指针&#xff1a;符合C/…

QT 中 QDateTime::currentDateTime() 输出格式备查

基础 QDateTime::currentDateTime() //当前的日期和时间。 QDateTime::toString() //以特定的格式输出时间&#xff0c;格式 yyyy: 年份&#xff08;4位数&#xff09; MM: 月份&#xff08;两位数&#xff0c;07表示七月&#xff09; dd: 日期&#xff08;两位数&#xff0c…

合成相机模型【图形学】

相机在计算机图形学中有两个方面的考虑&#xff1a;相机的位置和相机的形状。 要了解后者&#xff0c;我们需要了解相机的工作原理。 NSDT工具推荐&#xff1a; Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器 - R…