搭建监控日志系统

news2024/11/19 12:34:20

在微服务或者集群架构中,一次请求的调用会跨多个服务(web,mysql,feign等)、多个模块(用户模块,商品模块等)、多个容器(用户模块可能有多个实例),这个时候去定位问题,通过传统的登陆服务节点逐一查看日志的方式,就会效率很低。分布式调用链就是为了解决以上几个问题而生,和jdbc接口规范一样,OpenTracing 是分布式调用链的一个轻量级的标准化层,提供统一规范。

1. prometheus

1.1什么是prometheus

Prometheus是一个开源的系统监控和报警系统,基于谷歌的borgemon使用go语言开发,使用TSDB数据库,所以支持云原生,现在已经加入到CNCF基金会,成为继k8s之后第二个在CNCF托管的项目,在kubernetes容器管理系统中,通常会搭配prometheus进行监控,同时也支持多种exporter采集数据,还支持pushgateway进行数据上报,Prometheus性能足够支撑上万台规模的集群。

1.2prometheus特点

  • 灵活的查询语言(PromQL):可以对采集的metrics指标进行加法,乘法,连接等操作;
  • 内置时间序列(pime series)数据库:Prometheus;外置的远端存储通常会用:InfluxDB、openTsDB等
  • 基于HTTP的pull(拉取)方式采集时间序列数据
  • 支持作为数据源接入Grafana
  • 做高可用,可以对数据做异地备份,联邦集群,部署多套prometheus,pushgateway上报数据

1.3prometheus适用场景

1.Prometheus是一款指际监控系统,不适合存储事件及日志等;它更多地展示的是趋势性的监控,而非精准数据;
2. Prometheus认为只有最近的监控数据才有查询的需要,其本地存储的设计初衷只是保存短期(例如一个月)数据,因而不支持针对大量的历史数据进行存储;若需要存储长期的历史数据,建议基于远端存储机制将数据保存于InfluxDB或openTsDB等系统中;
3. Prometheus的集群机制成熟度不高,可基于Thanos(和灭霸是一个单词)实现Prometheus集群的高可用及联邦集群

2. ELK

2.1什么是elk

ELK是Elasticsearch(ES) , Logstash, Kibana的结合,是一个主流的开源日志收集的解决方案,其中:
Elasticsearch(ES):开源分布式搜索引擎,提供搜集、分析、存储数据功能。用户将数据提交到 Elasticsearch 数据库中。通过分词控制器对对应的语句进行分词。将分词结果和权重(原始数据和分词内容的匹配度)一起存储,当用户搜索数据时,根据权重对搜索结果进行排名和打分(分数越高,匹配度就越高),最终将结果呈现给用户
Logstash:日志搜集、分析、过滤,支持大量数据获取。其自带输入(input)、过滤语法(grok)、输出(output)三部分。其输入有两种方式:①由各beat采集器输入,经过滤后输出到ES ②本机数据输入,经过滤后输出到ES。
Kibana:提供日志分析友好的 Web 界面。数据存储到ES中后,可以在Kibana页面上增删改查,交互数据,并生成各种维度表格、图形。
ES详细介绍
Kibana详细介绍
Logstash介绍

2.2elk适用场景

适合按照索引数据进行数据分析和聚合,查看明细数据,定位具体的错误日志和信息

3. skywalking

3.1如何自动采集日志

SkyWalking 采用了插件化(skywalking-plugin.def 文件,针对不同调用开发不同的plugin去做增强)+javaagent(Skywalking Agent) 的形式来实现了 Span 数据的自动采集。
这样可以做到对代码的无侵入性,插件化意味着可插拔,扩展性好(后文会介绍如何定义自己的插件)。

3.2分布式唯一id如何传递的

如果只是在网关中传递,我们知道使用ThreadLocale就可以实现,但是存在tomcat基于netty导致nio线程复用的问题,所以skywalking在跨进程调用之前,当前进程会通过 inject()方法将当前 Context 的全部内容注入到指定的 ContextCarrier,然后才能将当前 Context 的信息发送出去。当跨进程调用的接收方接收请求后,会通过 extract()方法将收到的 Context 从 ContextCarrier 中提取出来
参考DUBBO的plugin实现:
在这里插入图片描述
指定切面,切点,要对哪个类的哪个方法进行增强
在这里插入图片描述
intercepter具体处理逻辑

在这里插入图片描述

3.3TraceId 如何保证全局唯一

SkyWalking 采用的是Snowflow 算法,为了防止时间回拨的问题,判断当前时间小于上次记录的最小时间,就进行随机数处理。具体分布式唯一id算法可以参考本篇文章
在这里插入图片描述

3.4skywalking集成和使用

集成springboot和使用经验
按需使用,一般是使用skywalking agent进行log日志上报和追加traceId,日志分析查看还是Kibana,监控也单独搭建和配置,不用默认ui,支持性较少,指标不完善

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

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

相关文章

【科普】干货!带你从0了解移动机器人(二)—— 移动机器人硬件组成

移动机器人是一个多功能于一体的综合系统,内容涵盖了传感器技术、自动化技术、信息处理、电子工程等,它集环境感知、动态决策与规划于一体,是目前科学技术发展最活跃的领域之一。移动机器人的各种组件之间需要协同工作才能实现机器人的自主移…

【源码解析】RuoYi-Vue-Plus翻译功能 Translation 源码分析

类说明功能Translation通用翻译注解标注需要翻译的字段,用于实体类字段上TranslationType翻译类型注解标注翻译字段的实现类型,用于实现类上标注TransConstant翻译常量TranslationType 类型常量TranslationConfig翻译模块配置类配置初始化,设…

深度学习基础入门篇[9.2]:卷积之1*1 卷积(残差网络)、2D/3D卷积、转置卷积数学推导、应用实例

【深度学习入门到进阶】必看系列,含激活函数、优化策略、损失函数、模型调优、归一化算法、卷积模型、序列模型、预训练模型、对抗神经网络等 专栏详细介绍:【深度学习入门到进阶】必看系列,含激活函数、优化策略、损失函数、模型调优、归一化…

一文了解customRef 自定义ref使用

概念 按照文档中的说明:customRef 可以用来创建一个自定义的 ref,并对其依赖项跟踪和更新触发进行显式控制。它需要一个工厂函数,该函数接收 track 和trigger函数作为参数,并且应该返回一个带有 get 和 set 的对象。 其实大致意思…

公有云——阿里云ECS服务器入门精通(IaaS)(2)

作者简介:一名云计算网络运维人员、每天分享网络与运维的技术与干货。 座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页​​​​​​ 目录 一.ECS 实例规格族介绍 1.实例的架构类型、规格分类,详细信息 2.企业…

网络互联与互联网 - IP 子网划分详解

文章目录 1 概述1.1 划分目的1.2 划分原则1.3 子网掩码 2 IP 子网划分示例3 网工软考真题3.1 判断网络号和主机号3.2 计算可容纳的主机数3.3 子网划分 1 概述 IP 子网划分:实际上就是设计 子网掩码 的过程。原因:由于在五类的IP地址中,网络号…

【SpringBoot】数据校验API

个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ 数据校验API SpringBoot数据校验数据校验API的…

智能电动「唱主角」,哪些供应商在「领跑」智驾域控制器赛道

新势力,从哪里突围? 造车新势力在过去几年的成绩,已经代表了未来趋势:新能源汽车,尤其是纯电动。而对于智能化软硬件供应商,尤其是新势力供应商来说,亦是如此。 高工智能汽车研究院监测数据显…

深度学习框架-Tensorflow2:特点、架构、应用和未来发展趋势

引言 深度学习是一种新兴的技术,已经在许多领域中得到广泛的应用,如计算机视觉、自然语言处理、语音识别等。在深度学习中,深度学习框架扮演着重要的角色。Tensorflow是一种广泛使用的深度学习框架,已经成为深度学习的事实标准。…

全民拼购为什么能躺赢

大家好!我叫小鱼 新商业,新模式 新机会! 我们在拼购过程中 往往都觉得商家在亏钱 事实如此吗? 随着全球经济下行,党中央、国务院 高度重视发展流通扩大消费。 为推动流通创新发展,促进商业繁荣,…

回文子串问题

一:最长回文子串(leetcode 5) 给你一个字符串 s,找到 s 中最长的回文子串。 如果字符串的反序与原始字符串相同,则该字符串称为回文字符串。 示例 1: 输入:s "babad" 输出&#x…

盛元广通疾病预防控制中心检测管理信息系统

近些年,在疾病预防控制领域,公共卫生事件的发生都是通过信息化手段在日常工作中加以应用以及广泛深入的探索,加快疾控实验室信息化建设进程,可以有效把控不同类型检测任务中的每个节点,严防不同系统填报多次出现信息误…

SpringBoot——热部署

简单介绍: 在之前我们的项目中,当我们在编写了一个新的类并且要应用的时候,需要手动重启服务器重新部署一下,这个过程需要我们手动去完成,但是很多时候,比如我们在做测试,需要反复的修改代码&a…

第14章_视图

第14章_视图 1. 常见的数据库对象 对象描述表(TABLE)表是存储数据的逻辑单元,以行和列的形式存在,列就是字段,行就是记录数据字典就是系统表,存放数据库相关信息的表。系统表的数据通常由数据库系统维护,程序员通常不…

【Http协议②】http协议格式,请求格式,常见请求方法,请求报文,请求正文

前言: 大家好,我是良辰丫,上一篇文章我们已经了解过了http协议,这篇文章我将带领大家去学习http协议的一些属性,http协议格式,请求格式,常见请求方法,请求报文,请求正文.跟随我的脚步,一起遨游http的海洋.💞💞 🧑个人主页:良辰针不…

第14届蓝桥杯省赛真题剖析-2023年5月7日Scratch编程初级组

[导读]:超平老师的《Scratch蓝桥杯真题解析100讲》已经全部完成,后续会不定期解读蓝桥杯真题,这是Scratch蓝桥杯真题解析第135讲。 第14届蓝桥杯Scratch省赛真题,这是2023年5月7日举办的省赛,比赛仍然采取线上形式。试…

Spring Boot 的 Starter 以及实现一个自定义Starter

一、了解 Spring Boot Starter Spring Boot Starter 是 Spring Boot 中一个重要概念,它是一种提供依赖项的方式,简化 Spring 应用程序依赖管理,将一组相关的依赖项打包在一起,并提供一个依赖项描述文件,使开发人员可以…

视觉-激光融合SLAM :LVI - SAM与LIO - SAM的环境配置

目录 1.LIO-SAM配置 1.1 ROS 安装 1.2 安装gtsam 4.0.2 1.3 安装LIO-SAM 1.4 运行LIO-SAM 2. LVI - SAM安装 2.1 一些依赖库的安装 2.2 安装ceres1.1.14 2.3 安装LVI-SAM 1.LIO-SAM配置 机器:Ubuntu 18.04 内存:>16G CPU:Intel &…

电脑看不了视频?这样做,可以快速解决!

案例:我的电脑播放不了视频,这是什么原因。如何才能在电脑上播放视频?有没有解决的办法? 【我工作和学习都离不开电脑,今天工作的时候,我用电脑打开一个视频,却发现视频无法播放,怎…

擎创动态 | 来自华为的深度认可,擎创再获华为鲲鹏技术认证

在数字中国的信息技术应用国产化进程中,擎创科技除持续投入自主产品研发外,还深度适配了涵盖芯片、服务器、操作系统、数据库、中间件、云服务、应用等领域的国产化产品,与华为的合作适配便是其中重要的一环。近期,擎创夏洛克智能…