基础监控理论

文章目录

  • 监控流程架构体系
    • 监控分类
  • 监控发展和技术
    • 企业中监控发展阶段
    • 通用技术和工具

监控流程架构体系

在这里插入图片描述

监控流程架构体系是确保信息系统健康、稳定运行的重要组成部分,它包括监控系统的设计、搭建、数据分析、数据采集、稳定性测试、自动化集成、部署上线以及图形化展示等关键环节。

  1. 监控系统设计:监控系统设计是整个监控流程的基础,需要考虑系统架构、业务流程、业务种类、监控目标、监控指标、警报阈值、数据存储与分析需求等因素。设计阶段的主要任务是确立一个清晰的监控目标,选择合适的技术栈和工具,以及设计一个可扩展、高效的数据处理流程。

  2. 监控系统搭建:根据设计阶段的规划,选择合适的监控工具和技术(如Prometheus、Grafana、Elasticsearch等),搭建监控系统的基础架构。搭建流程可分为:单点服务端的搭建、单点客户端的部署、单点客户端服务器测试、采集程序单点部署、采集程序批量部署、监控服务端HA/cloud、监控数据图形化搭建、报警系统测试、报警规则测试、监控+报警联合测试、正式上线监控

  3. 监控数据分析/算法:监控数据分析是将收集到的数据转化为有用信息的过程,涉及到数据清洗、聚合、分析等步骤。使用算法(如异常检测、时间序列分析等)对监控数据进行处理,以识别潜在的问题和趋势。

    • 监控数据的采集其实属于最基本的最小监控单位数据采集,例如,采集CPU的七种等待状态参数,采集用户每秒访问请求量QPS,对于这些采集属于“基本单位“的数据采集
    • 监控的数据分析和算法非常依赖运维架构师对Linux操作系统的各种底层知识的掌握
  4. 数据采集编写:数据采集是监控系统的关键组成部分,需要开发或配置监控代理来收集系统、应用和服务的运行数据。可选用的脚本类型

    • shell:运维的入门脚本,任何和性能/后台/界面无关的逻辑都可以实现最快速的开发(开发速度最快难度最低)
    • python:各种扩展功能扩展库功能丰富,伴随各种程序的展示+开发框架(如django)可以实现快速的中高档次的平台逻辑开发(火爆)
    • awk:在文本和标准输出处理上有很大的优势,结合shell脚本或者独立都可以使用。
    • lua:多用于nginx的模块结合(较新的语言)
    • php:老牌开发语言,在大型互联网开发中,在运维中工具开发依赖PHP
    • perl:对文本处理最快的脚本语言(代码可读性不强)
    • go:在各种后端服务逻辑的编写上开发速度快
  • 数据采集形式:
    • 一次性采集:开发逻辑简单、稳定性好,实现较容易,不容易出现性能瓶颈;不够智能、不准确、不直观
    • 后台式采集:数据准确性高,采集密度精细,管理方便;开发周期长,难度大,容易出现内存泄漏,僵尸进程,性能瓶颈等问题
    • 接式采集:以后台进程运行,但是采集不能独立,跟服务器关联以桥接方式收集采集数据。例如:NRPE for nagios

  1. 监控稳定测试:监控系统搭建完成后,需要对其进行全面的稳定性和性能测试,以确保监控系统在各种压力和故障情况下都能正常工作。测试内容可能包括数据采集的准确性、系统的处理能力、警报机制的响应时间等。
  2. 监控自动化集成:为了提高监控效率,需要将监控系统与CI/CD流程、告警通知系统(如Slack、Email)、票据系统等工具进行集成。自动化集成可以加快故障响应时间,提高系统的整体响应能力。
  3. 监控部署上线:在确保监控系统经过充分测试并且与其他系统集成后,将监控系统部署到生产环境。需要考虑监控系统的可用性、扩展性和安全性,确保监控系统的稳定运行。
  4. 监控图形化工作:图形化展示是监控系统的重要组成部分,将复杂的监控数据以直观的方式展示给用户。使用图表、仪表盘和地图等可视化工具(如Grafana)来展示实时数据、趋势分析和警报状态,帮助运维人员快速识别问题所在。

监控分类

  1. 监控分类(大类):业务级别监控、系统级别监控、网络监控、程序代码监控、日志监控、用户行为分析监控、其他种类监控
  2. 细小分类,例如:
    • 业务监控:包含用户访问QPS,DAU日活,访问状态,业务接口,产品转化率,充值额度,用户投诉等等
    • 系统监控:跟操作系统相关的基本监控项,CPU、内存、硬盘、IO、TCP链接、流量等等
    • 网络监控:例如:丢包率,延迟等等
    • 日志监控:往往单独设计和搭建,全部种类的日志都有需要采集·
    • 程序监控:需要和开发人员配合,程序中嵌入各种接口直接获取数据或者特质的日志格式

监控发展和技术

企业中监控发展阶段

  • 早期企业:无监控,基本是人工查看服务器
  • 中前期企业:半自动脚本监控,利用shell脚本这种类似的形式,做简单的监控脚本。循环登陆机器查看状态,人工记录,无报警,无自动化,无监控图形
  • 中期企业:自动化程序、脚本、软件、监控脚本更新换代开始使用各种开源非开源软件程序进行监控的搭建和开发;监控形成图形化,加入报警系统,有一定的监控自动化实现,监控开始逐步成型,但仍然缺乏精确度和稳定程度报警的精细度
  • 中后期企业:集群式监控,各种外援监控方案,监控开始自成体系加入各种自动化;除去自身开发和搭建监控系统外,还会大量使用各种外围监控(各种商品监控,例如云计算监控监控宝友盟等等)。
    • 监控发展出内监控,外监控。内监控是企业自己搭建的自用监控;外监控是使用外援的商业监控产品,往往对产品的最外层接口和用户行为进行更宏观的监控
  • 未来的监控:监控准确性,真实性;监控高度集成,自动化无人值守;监控成本的日益降低,监控和CMDB的集成化以及自愈系统的发展

通用技术和工具

  • 脚本监控(使用原始脚本运行的形式采集和监控)
  • 开源、非开源工具监控:Nagios、Cacti、icinga、Zabbix、Ntop、prometheus、
  • 报警系统:Pagerduty、自建语音报警系统、自建邮件系统、自建短信通知、各种商业报警产品

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

LAMP 世界上使用最广泛的框架(安装LAMP框架)快照

说是框架就不只是一个东西。L:Linux,一种操作系统类型,专为服务器领域服务. A:Apache,web 服务器。 M:MySQL,数据库,存储项目的元数据,真实数据会存放在硬盘中。 P:PHP,一种编程语言&#xff0…

mongoDB7.0.6版安装与使用(最新版踩坑记录)

这里写自定义目录标题 0.前言1.MongoDB下载与安装2.启动服务及验证3.命令行访问4.navicat访问5.停止服务 0.前言 本文总结了最近版mongoDB下载安装的过程及简单的应用,整个过程不涉及修改配置文件,甚至不用设置用户名密码也不用登录认证,在进…

Knife4j的相关知识点!!

一、基础概念 knife4j是为Java MVC框架集成Swagger生成Api文档的增强解决方案,前身是swagger-bootstrap-ui,取名kni4j是希望它能像一把匕首一样小巧,轻量,并且功能强悍! Knif4j(原名为 Swagger-Bootstrap-UI)是一款基于 Swagger 实现的文档管理工具&am…

Linux命令之Tmux

1. Tmux是什么? Tmux是一个终端复用器(terminal multiplexer),属于常用的开发工具,学会了之后可以大大的提高工作效率。 1.1 基本概念 在使用tmux之前我们先了解关于tmux的几个名词: session&#xff0c…

[Qt] 点击QTableWidget item项后键盘输入导致崩溃

复现场景 Qt版本 5.9.8 #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget) {ui->setupUi(this);ui->tableWidget->setRowCount(1);ui->tableWidget->setColumnCount(2);Q…

【数据结构取经之路】栈

目录 引言 栈的性质 顺序栈 栈的基本操作 初始化 销毁 插入 删除 判空 取栈顶元素 栈的大小 完整代码: 引言 栈(stack),可以用数组实现,也可以用链表实现。用数组实现的栈叫顺序栈,用链表实现的栈叫链式栈&#…

PriorityQueue集合源码分析

PriorityQueue集合源码分析 文章目录 PriorityQueue集合源码分析前置知识一、字段分析二、构造函数分析三、方法分析四、总结 PriorityQueue 优先级队列,是基于堆的结构来构建的。而堆是基于完全二叉树来实现的,而二叉树除了可以用节点来实现也可以用数组…

移动WEB开发之流式布局

一、移动端基础 1、浏览器 总结:兼容移动端主流浏览器,处理webkit内核浏览器即可。 2、移动端调试方法 Chrome devtools(谷歌浏览器)的模拟手机调试 搭建本地web服务器,手机和服务器一个区域网内,通过手机…

SCI一区 | Matlab实现GWO-TCN-BiGRU-Attention灰狼算法优化时间卷积双向门控循环单元融合注意力机制多变量时间序列预测

SCI一区 | Matlab实现GWO-TCN-BiGRU-Attention灰狼算法优化时间卷积双向门控循环单元融合注意力机制多变量时间序列预测 目录 SCI一区 | Matlab实现GWO-TCN-BiGRU-Attention灰狼算法优化时间卷积双向门控循环单元融合注意力机制多变量时间序列预测预测效果基本介绍模型描述程序…

框架篇常见面试题

1、Spring框架的单例bean是线程安全的吗? 2、什么是AOP? 3、Spring的事务是如何实现的? 4、Spring事务失效的场景 5、SpringBean的声明周期 6、Spring的循环依赖 7、SpringMVC的执行流程 8、SpringBoot自动配置原理 9、Spring常见注解

解决MySQL “Lock wait timeout exceeded; try restarting transaction“ 错误

在处理MySQL数据库时,我们偶尔会遇到一个棘手的错误消息:“Lock wait timeout exceeded; try restarting transaction”。这通常表明我们的一个事务在尝试获取资源时被阻塞了太长时间。在并发环境中,多个事务同时竞争相同的资源可能会导致这种…

安卓手机切换国内IP地址的几种方法详解

随着互联网的普及和移动设备的广泛使用,IP地址已经成为了日常生活中不可或缺的一部分。IP地址不仅可以帮助大家在互联网上找到目标设备,还可以为网络安全提供一定的保障。然而,在某些情况下,可能需要切换国内IP地址,例…

SpringCloud Bus 消息总线

一、前言 接下来是开展一系列的 SpringCloud 的学习之旅,从传统的模块之间调用,一步步的升级为 SpringCloud 模块之间的调用,此篇文章为第八篇,即介绍 Bus 消息总线。 二、概述 2.1 遗留的问题 在上一篇文章的最后,我…

源码部署LAMP架构

LAMP 文章目录 LAMP1. lamp简介2. web服务器工作流程2.1 cgi与fastcgi2.2 httpd与php结合的方式2.3 web工作流程 3. LAMP平台构建3.1 安装httpd3.2 安装mysql3.3 安装php3.4 验证 1. lamp简介 有了前面学习的知识的铺垫,今天可以来学习下第一个常用的web架构了。 …

腾讯云服务器按月收费价格表,优惠价格5元一个月起

2024腾讯云服务器多少钱一个月?5元1个月起,腾讯云轻量服务器4核16G12M带宽32元1个月、96元3个月,8核32G22M配置115元一个月、345元3个月,腾讯云轻量应用服务器61元一年折合5元一个月、4核8G12M配置646元15个月、2核4G5M服务器165元…

● 647. 回文子串 ● 516.最长回文子序列 ● 动态规划总结篇

● 647. 回文子串 1.dp数组含义。 之前的题目,差不多都是求什么就怎么定义dp数组,最后返回dp的最后一个元素。但是这里如果定义一维数组dp[i]是[0,i]范围的回文子串的个数的话,怎么根据dp[i-1]得到dp[i]?发现很难找到递归关系…

窗口函数(sample database classicmodels _No.8 )

窗口函数(sample database classicmodels _No.8 ) 准备工作,可以去下载 classicmodels 数据库具体如下 点击:classicmodels 也可以去 下面我的博客资源下载 https://download.csdn.net/download/tomxjc/88685970 文章目录 窗口函…

Java八股文(RabbitMQ)

Java八股文のRabbitMQ RabbitMQ RabbitMQ RabbitMQ 是什么?它解决了哪些问题? RabbitMQ 是一个开源的消息代理中间件,用于在应用程序之间进行可靠的异步消息传递。 它解决了应用程序间解耦、消息传递、负载均衡、故障恢复等问题。 RabbitMQ …

鸿蒙开发学习:【appspawn应用孵化组件】

功能简介 应用孵化器,负责接受应用程序框架的命令孵化应用进程,设置其对应权限,并调用应用程序框架的入口。 基本概念 appspawn注册的服务名称为“appspawn”。appspawn 通过监听本地socket,接收来自客户端的请求消息。消息类型…

Linux-MDK can电机带导轨 C++封装

我使用的是MKS的52D can电机带导轨,现在我要根据电机说明书将运动指令封装,有一个限位开关, 闭合时高电平 滑块需要运动在限位开关左侧,所以限位归零的方向为顺时针 根据说明书,我要设置的命令应该是: ca…