首页 > 其他分享 >基础监控理论

基础监控理论

时间:2024-03-18 14:02:24浏览次数:35  
标签:系统 理论 报警 基础 采集 监控 数据 搭建

文章目录

监控流程架构体系

在这里插入图片描述

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

  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、自建语音报警系统、自建邮件系统、自建短信通知、各种商业报警产品

标签:系统,理论,报警,基础,采集,监控,数据,搭建
From: https://blog.csdn.net/yang2330648064/article/details/136805815

相关文章

  • 动态规划基础知识点(包含文档)
    动态规划知识点我也不知道为啥要收fei,我普通上传,但是平台好像不能直接看,大家可以试看,因为该文档就两页,还没完善1.动态规划与贪心的区别(1)求解问题区别:贪心:顾名思义,就是尽量的贪心使得结果利益最大化,从局部最优推出全局最优,比如:桌子上有三张钞票,面额各不相同,你只能取两次,每......
  • Nginx底层基础数据结构
    基础数据结构ngx_int_t32位操作系统4字节,64位操作系统8字节解决跨平台以及,普通int类型在x86和x64操作系统上面是4字节,在类型转换时造成内存浪费(如在x64下面转换long类型)typedefintptr_tngx_int_t;#ifdef_WIN64typedef__int64intptr_t;#elsetype......
  • 波奇学Linux:网络基础
    网卡相当于文件,通过网络传输,相同于写到不同的文件中。协议:一种约定,像是0表示低电平,1表示高电平一样如何定位主机的问题如何处理发来的数据如何保证数据到达准确下一个设备每层都有自己的协议发送数据时必然有多一些数据,这些数据可能是管理信息,这些就是协议,表现形式就是......
  • Java基础——抽象类和接口详细解读
    文章目录前言一、抽象类1、什么是抽象类?2、抽象类的定义规范和要求2.1、抽象类不能被实例化2.2、抽象类内的属性和方法定义2.2、抽象类的修饰符要求2.4、继承类要求3、抽象类的应用3.1、实现共有特性特征和行为3.2、代码复用4、抽象类总结二、接口1、什么是接口?2、接......
  • 服务器监控新利器:ServerBee带你看透服务器运行状态
    近年来,随着互联网的飞速发展,服务器已经成为企业运营中不可或缺的一部分。然而,服务器出现故障或者性能下降可能会给企业带来巨大的损失。因此,如何及时有效地监控服务器状态成为了企业管理者关注的焦点之一。今天,我将向大家介绍一款强大的服务器监控工具——ServerBee。Serv......
  • Linux 服务监控脚本
    Linux服务监控脚本个人搭建的zabbix服务器因性能问题总是关闭,所以写了个脚本对zabbix-server服务进行监控。当服务停止时,脚本会自动拉起服务并记录日志,方面定位排查。[root@elttwl~]#vim/opt/scripts/zabbix-monitor.sh#!/bin/bashSERVICE=zabbix-serverwhiletruedo......
  • Yarn Workspace 基础
    使用YarnWorkspace的原因多项目,需要共享代码基础目录testpackagesaindex.jspackage.jsonbindex.jspackage.jsonpackage.json根目录package.json{"name":"test","private":true,"workspaces&......
  • Java SE入门及基础(45)
    目录I/O流(中)3.字符流Writer常用方法FileWriter构造方法Reader常用方法FileReader构造方法综合练习4.缓冲流BufferedOutputStream构造方法BufferedInputStream构造方法BufferedWriter构造方法BufferedReader构造方法Java SE文章参考:JavaSE入门及......
  • 内网渗透基础【下】——— monowall 搭二级内网
    monowall搭二级内网安装monowallVMware镜像添加网卡安装到硬盘防火墙配置1.分配端口2.局域网ip3.网页配置网络配置Centos8边界服务器Kail2023.3WindowsServer2012R2测试Centos8、monowallWin2012R2、monowallKail、monowallCentos8、KailKail、Win2012......
  • 注入js编程应该知道的一些基础知识,以防混淆造成的错误
    假设我现在用的是chrome extension的方式注入javascript来控制网页,例如有一个元素,原始的网页制作者已经给他注册了各种事件,但是我想得到当这个元素发生改变时,会触发一个我自己能控制的事件,有没有什么办法?要在不干扰原有网页事件的前提下,为元素添加自定义事件处理程序,你可以使用M......