架构师面试:怎样规划公司的监控架构?

大家好,我是君哥。

监控系统在科技公司非常重要,它可以让运维人员和研发人员提前发现问题、定位问题,进而解决问题。

在我们实际工作中,使用的监控往往五花八门,比较混乱,今天来聊一聊怎么规划公司的监控架构。

1.指标采集

监控指标采集为监控提供原始数据,是监控系统的基础。

1.1 系统指标

当我们使用 Prometheus 做监控时,我们可以使用 Node Exporter 收集系统指标进行监控,比如内存、CPU、磁盘、文件描述符等信息。

1.2 数据库/中间件

数据库和中间件故障对业务影响会非常大,极端情况下可能让业务停摆。因此必须有配套的数据库中间件监控。

对于数据库和中间件,采集数据库所在机器的系统信息如内存、CPU、磁盘是必须的。

对于数据库,也需要采集 SQL 执行时长、数据库日志等作为监控指标。

对于中间件,可以采集吞吐量、平均响应时长,以及中间件自己的一些指标。比如 kafka 的 ISRShrink/ISRExpand。

JVM 相关指标,比如堆内存、FULL GC 频率和时长、线程使用情况。

1.3 业务指标

业务系统的监控指标因为业务的复杂性,会非常复杂和庞大。

接口请求数量、平均响应时间、成功率。这部分指标可以使用网络抓包来获取。

业务整体运行情况,这部分指标有两种方式,一个是通过采集业务日志来获取,第二个业务代码主动推送执行,比如把运行情况抽象成指标保存数据库,或者通过消息队列发送给采集系统。

2.指标保存

收集到监控指标后,要想把这些指标展示给运维人员,就需要先把指标保存下来。Prometheus 将监控数据保存在 TSDB,一些公司选择引入外部时序数据库,比如 VictoriaMetrics 这款时序数据库就被很多公司采纳。

有些指标采集的量比较小,也可以采用关系数据库做存储,对研发运维人员来说学习成本比较低。

小公司一般使用开源的工具就可以满足指标保存的需求。在大公司,业务类型广泛,指标数据量较大,需要规划指标保存方案,引入多种保存方式。

3.指标加工

对于仅仅监控一些特定指标的情况下,只要采集到数据,正常展示出来,就可以实现监控目标。但这只能用于较简单的监控指标,比如一个接口的请求次数。

从宏观角度看,业务侧更关注的是总体数据,比如昨天交易成功的业务数量,失败的业务数量。他们只会花时间看监控大盘。这个时候就需要进行一些数据加工、汇总。

因此,指标加工也是非常重要的。这个工作也可以交给公司的大数据团队来承接。

4.指标展示

完成指标采集和加工后,怎样清晰优雅地展示给用户,是监控设计中的一个重要环节。

知名的监控工具比如 Prometheus、Zabbix 都有成熟的可视化界面,可以清晰地展示给用户。但要满足更复杂、更高要求的监控场景,这些工具很难满足需求。

这时候就需要技术团队自己开发指标可视化工具,这里不仅包括监控大盘,还包括给不同人员看的监控页面,比如给业务看的,给运维看的,给研发看的。

5.监控告警

有了指标采集、加工和展示,其实只完成了监控系统的准备工作,监控告警是我们规划监控系统的重要目标。

监控告警的目标是让相关人员能够提前感知到问题,及时采取措施,防止问题扩大。

为了节省系统资源,监控告警也是需要分级别的,根据问题严重程度、业务影响范围来规划告警级别。这就要求业务系统在需求阶段就要明确业务的重要性,辅助确定监控级别。

比如涉及金钱的交易系统、支付系统、账务系统,对于公司来说非常重要,可以把他们定义成严重级别,监控到问题后,通过短信、OA 消息通知到值班运维人员,这样值班运维人员可以根据问题情况及时通知到相关研发人员,即使问题发生在半夜也能很快地采取措施。

对于影响较小的业务系统、批量交易,可以定义成主要级别,发生问题后,短信或 OA 实时通知到系统负责人就可以。

对于没有业务影响的交易,可以定义成次要级别,问题发生后,只需要邮件通知到开发人员,而且不用实时通知,每天集中一次或者几次就可以。

6.应急方案

应急方案需要提前进行设计、演练,这样可以防患于未然。假如一个严重级别的告警半夜 2 点触发了,研发人员睡梦中被叫醒,如果没有应急方案,势必会非常慌乱。

应急方案可以根据系统的实际情况进行设计,比如重启服务、接口限流、熔断、集群扩容、故障节点摘除等。

7.总结

监控系统对于科技公司来说,非常重要。我们可以从指标采集、指标保存、指标加工、指标展示、监控告警、应急方案这些方面来进行设计。希望本文对你设计监控架构有所帮助。

图片

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

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

相关文章

QT开发:深入掌握 QtGui 和 QtWidgets 布局管理:QVBoxLayout、QHBoxLayout 和 QGridLayout 的高级应用

目录 引言 1. QVBoxLayout:垂直布局管理器 基本功能 创建 QVBoxLayout 添加控件 添加控件和设置对齐方式 设置对齐方式 示例代码与详解 2. QHBoxLayout:水平布局管理器 基本功能 创建 QHBoxLayout 添加控件 添加控件和设置对齐方式 设置对齐…

【CTF刷题9】2024.10.19

[MoeCTF 2021]babyRCE 考点&#xff1a;关键词过滤&#xff08;绕过方法参考往期博客&#xff09; 来源&#xff1a;nssctf <?php$rce $_GET[rce]; if (isset($rce)) {if (!preg_match("/cat|more|less|head|tac|tail|nl|od|vi|vim|sort|flag| |\;|[0-9]|\*|\|\%|\&g…

京存助力北京某电力研究所数据采集

北京某电力研究所已建成了一套以光纤为主&#xff0c;卫星、载波、微波等多种通信方式共存&#xff0c;分层级的电力专用的网络通信架构体系。随着用电、配电对网络的要求提高&#xff0c;以及终端通信入网的迅速发展&#xff0c;迫切地需要高效的通信管理系统来应对大规模、复…

Kaggle竞赛——森林覆盖类型分类

目录 1. 竞赛简要2. 数据分析2.1 特征类型统计2.2 四个荒野区域数据分析2.3 连续特征分析2.4 离散特征分析2.5 特征相关性热图2.6 特征间的散点关系图 3. 特征工程3.1 特征组合3.2 连续特征标准化 4. 模型搭建4.1 模型定义4.2 绘制混淆矩阵和ROC曲线4.3 模型对比与选择 5. 测试…

python爬虫案例——selenium爬取淘宝商品信息,实现翻页抓取(14)

文章目录 1、任务目标2、网页分析3、代码编写3.1 代码分析3.2 完整代码1、任务目标 目标网站:淘宝(https://www.taobao.com/) 任务要求:通过selenium实现自动化抓取 淘宝美食 板块下的所有商品信息,并实现翻页抓取,最后以csv格式将数据保存至本地;如: 2、网页分析 首先…

Qt-系统文件相关介绍使用(61)

目录 描述 输⼊输出设备类 打开/读/写/关闭 使用 先初始化&#xff0c;创建出大致的样貌 输入框设置 绑定槽函数 保存文件 打开文件 提取文件属性 描述 在C/C Linux 中我们都接触过关于文件的操作&#xff0c;当然 Qt 也会有对应的文件操作的 ⽂件操作是应⽤程序必不…

wpf grid 的用法

WPF中的Grid是一种布局控件&#xff0c;可用于将子控件按照行和列的方式排列。 以下是Grid控件的用法&#xff1a; 在XAML文件中&#xff0c;添加一个Grid控件&#xff1a; <Grid> </Grid>在Grid控件中&#xff0c;添加行和列定义&#xff1a; <Grid><…

Spring Cloud-Nacos版 学习理解

注册中心 Nacos 下载安装包 bin目录输入 cmd 进入命令行&#xff0c;输入startup.cmd -m standalone 启动 浏览器输入 http://127.0.0.1:8848/nacos/index.html&#xff0c;进入启动页面 账号密码均默认nacos 服务提供者 NacosProvider、服务调用者 NacosConsumer 服务提…

第五届计算机、大数据与人工智能国际会议(ICCBD+AI 2024)

第五届计算机、大数据与人工智能国际会议&#xff08;ICCBDAI 2024&#xff09;将于2024年11月1日-3日在江西景德镇召开。本届会议由景德镇陶瓷大学主办&#xff0c;西安交通大学、暨南大学、南京邮电大学、长沙学院、景德镇学院、ELSP&#xff08;爱迩思出版社&#xff09;、E…

Python Django 数据库优化与性能调优

Python Django 数据库优化与性能调优 Django 是一个非常流行的 Python Web 框架&#xff0c;它的 ORM&#xff08;对象关系映射&#xff09;允许开发者以简单且直观的方式操作数据库。然而&#xff0c;随着数据量的增长&#xff0c;数据库操作的效率可能会成为瓶颈&#xff0c…

使用 PyTorch 构建 LSTM 股票价格预测模型

目录 引言准备工作1. 训练模型&#xff08;train.py&#xff09;2. 模型定义&#xff08;model.py&#xff09;3. 测试模型和可视化&#xff08;test.py&#xff09;使用说明模型调整结论 引言 在金融领域&#xff0c;股票价格预测是一个重要且具有挑战性的任务。随着深度学习…

Linux文件操作基础

目录 Linux文件操作基础 引入 回顾C语言文件操作 系统调用接口 open函数 read函数和write函数 close函数 模拟C语言接口 文件描述符 如何理解Linux下一切皆文件 文本读写与二进制读写 Linux文件操作基础 引入 在Linux第一章提到过&#xff0c;在Linux中&#xff0…

快速创建一个vue项目并运行

前期准备工作: 1.安装node 2.安装npm 3.设置淘宝镜像 4.全局安装webpack 5.webpack 4.X 开始&#xff0c;需要安装 webpack-cli 依赖 6.全局安装vue-cli 正文开始: 1.创建项目 ,回车 vue init webpack vue-svg > Project name vue-demo 项目名称 回车 > Pro…

电脑桌面自己变成了英文Desktop,怎么改回中文

目录 前言找到Desktop查看位置查找目标修改文件名为桌面重启电脑 或 重启 Windows 资源管理器CtrlShiftEsc 打开任务管理器找到 Windows 资源管理器重启 Windows 资源管理器 查看修改结果 前言 许多人在使用电脑的时候发现&#xff0c;我们经常使用的桌面&#xff0c;不知道因为…

安卓流式布局实现记录

效果图&#xff1a; 1、导入第三方控件 implementation com.google.android:flexbox:1.1.0 2、布局中使用 <com.google.android.flexbox.FlexboxLayoutandroid:id"id/baggageFl"android:layout_width"match_parent"android:layout_height"wrap_co…

震惊!原来贡献开源代码这么简单,分分钟上手!

文章目录 前言一、什么是 Fork 和 PR&#xff1f;1. Fork&#xff08;分叉&#xff09;2. PR&#xff08;Pull Request&#xff0c;拉取请求&#xff09; 二、两种常见的贡献代码方式1. Fork 后通过 PR 提交代码2. 直接在项目分支中修改 三、如何 Fork 和发起 Pull Request&…

高效车辆管理:SpringBoot实现指南

1系统概述 1.1 研究背景 随着计算机技术的发展以及计算机网络的逐渐普及&#xff0c;互联网成为人们查找信息的重要场所&#xff0c;二十一世纪是信息的时代&#xff0c;所以信息的管理显得特别重要。因此&#xff0c;使用计算机来管理车辆管理系统的相关信息成为必然。开发合适…

蜗牛兼职网的设计与实现(论文+源码)_kaic

摘 要 随着科学技术的飞速发展&#xff0c;社会的方方面面、各行各业都在努力与现代的先进技术接轨&#xff0c;通过科技手段来提高自身的优势&#xff0c;蜗牛兼职网当然也不能排除在外。蜗牛兼职网是以实际运用为开发背景&#xff0c;运用软件工程原理和开发方法&#xff0c…

Unity开发Hololens项目

Unity打包Hololens设备 目录Visual Studio2019 / Visual Studio2022 远端部署设置Visual Studio2019 / Visual Studio2022 USB部署设置Hololens设备如何查找自身IPHololens设备门户Unity工程内的打包设置 目录 记录下自己做MR相关&#xff1a;Unity和HoloLens设备的历程。 Vi…

智能家居的“眼睛”:计算机视觉如何让家更智能

引言 在不远的未来&#xff0c;当我们走进家门&#xff0c;灯光自动亮起&#xff0c;空调已经调至最舒适的温度&#xff0c;甚至音乐也播放着我们最喜欢的歌曲。 这一切&#xff0c;都得益于智能家居系统的发展。而在这个系统中&#xff0c;计算机视觉技术扮演着至关重要的角色…