监控系统怎样做?

bb06e6f86d5a41e00330147093253756.png

监控类型自底向上分为资源监控、服务监控和业务监控。希望打造公司级的监控系统最好的时机是系统规划时,如果把监控设计往后放,将会面临一个巨大的难题:推行和现有不兼容的规范。

三种监控类型

资源监控

这个相对简单,随着k8s的兴起,目前比较流行的是Prometheus。zabbix和falcon也比较普遍。因为对业务侵入性较小,属于比较容易实现和维护的部分。

服务监控

中间件、数据库和安全漏洞扫描,这些软件依赖于软件本身自带的配套监控,因为是量身定做,监控效果取决于技术选型等因素,可以各个击破,不需要特殊的进行统筹考虑。

应用接口监控的健康检查是需要统一标准的。一般的做法是就算服务本身是基于websocket协议、dubbo协议等进行通信,但还是会暴露一个http接口用于统一进行健康检查的监控。这个接口对每个应用来说,请求路径、请求方式(一般是get请求),返回结构都相同。如果响应返回码属于200~399范围,‌则证明服务探活成功,‌否则探活失败。响应内容里通常还包含信息标识应用组件是否准备好开始处理用户请求。这对于启动时间较长的程序特别有用,‌如需要加载磁盘数据或依赖外部模块启动完成才能提供服务的情况。‌如果应用组件的就绪检查失败,‌集群会屏蔽请求访问该组件;‌若检查成功,‌则会开放对该应用组件的访问。‌‌

应用接口监控的耗时、QPS和成功率因为一旦协议确定,标准也确定。协议实现端通过切面等方式可以进行统一处理,只要引入相应的处理组件即可。

业务监控

业务监控不管是日志监控还是调用链监控,本质上都是基于日志埋点。

调用链监控需要在基于协议(比如http协议的请求头)和线程内部处理时(比如使用threadlocal)来传递和保持traceID,以便于在日志中将请求链路进行串联。

日志埋点总体来说分为两类:结构化日志和非结构化日志。

结构化日志里有一类重要日志是访问日志。这就要涉及开头说的巨大难题:推行和现有不兼容的规范。因为访问日志的最大作用是统计。统计系统状态、业务状态。我建议的规范是两码一态返回值结构。

{"sysCd":"00000000","sysMsg":"OK""biz":{"bizCd":"00000000", "bizMsg":"OK","data":{"serverTime": 1499827319559}}
}

明确标识出系统码和业务码。如果系统码显示有系统错误,业务码就不需要关注。系统码显示有问题,一定是需要系统维护人员处理的。系统码正常,业务码显示有问题,那理论上来说更可能是用户自身的问题,比如付款时余额不足等。系统码和业务码共同决定了请求的最终状态。这种设计在运维上提供了极大的方便:系统码显示的问题需要系统维护人员来处理,业务码显示有问题可以大胆的让用户自己检查,不用半夜将开发小哥哥叫起来。

结构化日志里还可以用来记录与第三方交互的结果。非结构化日志一般会打印两种:一种是控制台日志,一种是错误日志。大多数业务放在云上,看到的POD日志是控制台日志。特别是在程序发布时,如果日志滚动太快,有可能忽略重要信息。这时候怎样处理呢?建议把结构化日志内容单独文件打印,不输出到控制台。因为结构化日志查起来比较方便,控制台尽量只打印非结构化日志。

数据可视化

Grafana和Kibana都是开源的数据可视化和监控工具,但它们在设计目标、数据源和特性上有所不同。

Grafana

设计目标:Grafana是一个通用的开源数据可视化工具,主要用于监控和展示各种数据源的时间序列数据。它可以帮助用户快速创建、编辑和共享数据仪表板。

数据源:Grafana支持多种数据源,包括但不限于Graphite、InfluxDB、OpenTSDB、Elasticsearch、Prometheus、MySQL和PostgreSQL等。这使得Grafana可以灵活地集成到各种环境中。

特性:

灵活的查询和聚合:Grafana提供了一个强大的查询编辑器,允许用户根据需求定制查询,以及使用不同的聚合函数来处理数据。

丰富的图表类型:Grafana支持多种图表类型,如折线图、柱状图、饼图、散点图等,用户可以根据需要选择合适的图表来展示数据。

警报和通知:Grafana内置了警报功能,允许用户设置阈值,当数据达到或超过这些阈值时,Grafana会发送通知给相关人员。

强大的插件系统:Grafana有一个活跃的插件社区,用户可以通过安装插件来扩展其功能,比如添加新的数据源支持、图表类型等。

Kibana

设计目标:Kibana是一个为Elasticsearch设计的开源数据可视化和探索工具。它是ELK中的K,主要用于分析存储在Elasticsearch中的数据,特别是日志和时序数据。

数据源:Kibana主要依赖于Elasticsearch作为数据源,但也可以与Logstash和Beats等其他Elasticsearch生态系统组件集成,以提供更强大的日志处理和搜索功能。

特性:

日志分析:Kibana提供了一个强大的日志分析界面,允许用户通过简单的查询和过滤来探索和分析存储在Elasticsearch中的日志数据。

丰富的可视化选项:Kibana支持多种图表类型,如直方图、折线图、饼图等,用户可以根据需要选择合适的图表来展示数据。

按时间统计数据:Kibana允许用户在不同的时间范围内查看数据,这对于分析时间序列数据非常有用。

集成开发:Kibana还提供了许多集成开发功能,如代码高亮、自动完成等,使得在Kibana中编写和测试查询变得更加容易。

总结

Grafana和Kibana都是强大的数据可视化和监控工具,但Grafana更加通用,支持多种数据源,而Kibana则更专注于Elasticsearch和日志分析。

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

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

相关文章

【个人笔记】685. 冗余连接 II 的解释(并查集)

一棵树有n个点和n条边,返回一条能删除的边,使得剩下的图是有 n 个节点的有根树。 解释: 注意不冗余的有根树的特性!**根节点入度为0,其余结点只有一个入度!**所以冗余的两种情况如下: &#xff…

芯片基础 | Verilog仿真平台及数字逻辑仿真(上)

被测试器件DUT是一个二选一多路器,测试程序(testbench)提供测试激励及验证机制 Testbench使用行为级描述,DUT采用门级描述 下面将给出Testbench的描述、DUT的描述及如何进行混合仿真(行为级+门级) DUT (Device Under Test) module mux2_1(//Port declarations 端口声明outp…

Linux常见配置

linux 常见配置 一、配置固定IP, 主机名映射二、配置环境变量三、vim配置四、ssh配置 一、配置固定IP, 主机名映射 1、修改主机名 hostnamectl set-hostname xxx2、Centos配置固定IP 使用vim编辑/etc/sysconfig/network-scripts/ifcfg-ens33文件,填入下图信息 …

AI伦理之舟:航行于隐私、公正与真实的海域

🌈所属专栏:【其它】✨作者主页: Mr.Zwq✔️个人简介:一个正在努力学技术的Python领域创作者,擅长爬虫,逆向,全栈方向,专注基础和实战分享,欢迎咨询! 您的点…

数据编织 VS 数据仓库 VS 数据湖

目录 1. 什么是数据编织?2. 数据编织的工作原理3. 代码示例4. 数据编织的优势5. 应用场景6. 数据编织 vs 数据仓库6.1 数据存储方式6.2 数据更新和实时性6.3 灵活性和可扩展性6.4 查询性能6.5 数据治理和一致性6.6 适用场景6.7 代码示例比较 7. 数据编织 vs 数据湖7.1 数据存储…

Linux-CentOS7忘记密码找回步骤

虚拟机版本 一、进入开机页面,先按上下(↑↓)键,以免系统自动启动。 二、按“e”键进入编辑页面,找到如下图位置,输入:init/bin/sh 按CTRLX 进入单用户模式。 三、 输入 mount -o remount,rw / 然后按 ent…

ctfshow-web入门-php特性(web127-web131)

目录 1、web127 2、web128 3、web129 4、web130 5、web131 1、web127 代码审计: $ctf_show md5($flag); 将 $flag 变量进行 MD5 哈希运算,并将结果赋值给 $ctf_show。 $url $_SERVER[QUERY_STRING]; 获取当前请求的查询字符串(que…

js继承之构造函数继承

最近在看js红宝书,学到了继承这一章节,看到了下图这段代码根据自己理解不明白为什么两次实例的colors值不一样 又是自己画图又是查找资料看别人如何理解的,今天才按自己的理解搞明白为啥。可能我的理解也是有偏差错误的,希望佬可以…

爬虫(一)——爬取快手无水印视频

前言 最近对爬虫比较感兴趣,于是浅浅学习了一些关于爬虫的知识。爬虫可以实现很多功能,非常有意思,在这里也分享给大家。由于爬虫能实现的功能太多,而且具体的实现方式也有所不同,所以这里开辟了一个新的系列——爬虫…

“卓越级”!火山引擎边缘云持续推动行业标准与生态建设,获多项权威认可

7月18日,由中国通信标准化协会主办的第四届云边协同大会暨首届分布式算力论坛在北京成功召开,大会聚焦算力多元泛在化发展趋势及“人工智能”前沿探索,围绕行业技术标准、行业前沿实践、行业发展规划等主题方向发布了诸多成果、标杆、计划等。…

ts报错|| Warning: Failed prop type:xxx but its value is `undefined`

场景 分析 可选链(?.) 可选链操作符允许你安全地访问对象的嵌套属性,即使其中间的一个属性可能不存在也不会抛出错误。如果globalAlertDetail是一个对象并且它有isShow属性,那么globalAlertDetail?.isShow会返回该属性的值。如果globalAlertDetail不…

Python机器学习、深度学习技术提升气象、海洋、水文领域实践技术

Python是功能强大、免费、开源,实现面向对象的编程语言,能够在不同操作系统和平台使用,简洁的语法和解释性语言使其成为理想的脚本语言。除了标准库,还有丰富的第三方库,Python在数据处理、科学计算、数学建模、数据挖…

如何使用AI辅助开发

自从踏上AI辅助开发这条不归路,就回不了头,只能勇往直前!就算是简单的智能提示、补充代码、自动多语言补全等功能,就已经让你离不开它,更何况强大的代码生成成功。如果还没有开始使用AI辅助开发,那么赶快为…

C++复习的长文指南

C复习的长文指南 一、入门语法知识1.预备1.1 main函数1.2 注释1.3 变量1.3 常量1.4 关键字1.5 标识符明明规则 2. 数据类型2.1 整型2.1.1 sizeof关键字 2.2 实型(浮点型)2.3 字符型2.4 转义字符2.5 字符串型2.6 布尔类型bool2.7 数据的输入 3. 运算符3.1…

windows 11 PC查询连接过的wlan密码

1:管理员打开cmd 2:输入netsh wlan show profiles 3:netsh wlan show profiles Shw2024-5G keyclear 密码关键内容:12345678

函数返回右值的一点学习研究

https://zhuanlan.zhihu.com/p/511371573?utm_mediumsocial&utm_oi939219201949429760 下面情况下不会调用: DPoint3d fun1() {return DPoint3d{1,2,3}; // 默认构造 }int main() {DPoint3d&& a fun1();a.y 20;int i 0;i; } 下面情况下&#xff0c…

Stable Diffusion:质量高画风清新细节丰富的二次元大模型二次元插图

今天和大家分享一个基于Pony模型训练的二次元模型:二次元插图。关于该模型有4个不同的分支版本。 1.5版本:loar模型,推荐底模型niji-动漫二次元4.5。 xl版本:SDXL模型版本 mix版本:光影减弱,减少SDXL版本…

[职场] MARKETINGSPECIALIST是什么 #笔记#微信#知识分享

MARKETINGSPECIALIST是什么 MARKETINGSPECIALIST,即市场营销专员,他们需要具备一定的专业知识和技能,以适应快速变化的市场环境。接下来,我们将详细探讨这个职位的工作内容、必备技能以及发展前景。 一、MARKETINGSPECIALIST是什么…

Postfix搭建安装教程:解决配置难题攻略!

Postfix搭建安装教程的详解!如何优化邮件服务器性能? Postfix是一款广泛使用的电子邮件服务器软件,以其高效、可靠和安全性而闻名。许多企业和个人站点都选择Postfix来处理邮件传输任务。AokSend将提供一个详尽的Postfix搭建安装教程。 Pos…

我在高职教STM32——串口通信(1)

大家好,我是老耿,高职青椒一枚,一直从事单片机、嵌入式、物联网等课程的教学。对于高职的学生层次,同行应该都懂的,老师在课堂上教学几乎是没什么成就感的。正是如此,才有了借助头条平台寻求认同感和成就感…