Prometheus监控(一)

文章目录

  • 监控对于企业和运维工作的重要性
    • 监控?
    • 告警?
    • 数据采集
  • Prometheus介绍
    • Prometheus相对于老牌监控的优势和不足
  • 理想的监控系统的实现
    • 监控系统设计(架构师)
    • 监控系统的搭建
    • 数据采集的编写
    • 监控数据分析和算法
    • 稳定性测试
    • 监控自动化
    • 图形化展示

监控对于企业和运维工作的重要性

监控?

监控,就是对服务器的行为状态进行观察、记录的一套动作。

告警?

告警,是对监控到的行为数据进行分析,一旦监控数据出现异常或是,出现预期之外的服务器动作,告警机制则会通过某种方式将该信息传达至运维或是服务器管理人员。

监控和告警的关系

在这里插入图片描述

数据采集

监控所需要的数据需要通过数据采集得来,而数据采集会为监控提供抓手、分析用户行为和制定安全策略等能力。

在这里插入图片描述

Prometheus介绍

Prometheus相对于老牌监控的优势和不足

优势

  • 监控数据的精细程度:1~4秒
  • 使用监控脚本部署集群的速度快
  • 插件丰富功能多样,包括exporter、pushgateway等
  • 本身基于数学模型,有大量的实用模型,可以实现很多复杂功能的监控业务逻辑
  • 图形展示优美,可视化出众

不足

  • 如果集群数量太大,那么单点的监控有性能瓶颈 目前尚不支持集群 只能
    workaround
  • 对磁盘资源也是耗费的较大,这个具体要看 监控的集群量 和 监控项的多少 和保存时间的长短

理想的监控系统的实现

在这里插入图片描述

监控系统设计(架构师)

整体的系统设计是形成系统尤为重要的事,设计的不好,整个监控系统就不会实现其该有的功能。

设计部分包括如下的内容:

• 评估系统的业务流程 业务种类 架构体系
各个企业的产品不同,业务方向不同,程序代码不同,系统架构更不同
对于各个地方的细节 都需要有一定程度的认知 才可以开起设计的源头

• 分类出所需的监控项种类
一般可分为 : 业务级别监控 、 系统级别监控 、网络监控 、程序代码监控、日志监控 、用户行为分析监控、其他种类监控

监控种类划分

业务监控

可以包含用户访问QPS,DAU日活,访问状态(http code), 业务接入(登陆,注册,聊天,上传,留言,短信,搜索),产品转化率,充值额度,用户投诉等等这些很宏观的概
念(上层)

系统监控

主要是跟操作系统相关的,基本监控项 CPU/ 内存 / 硬盘 / IO / TCP链接 / 流量 等等(Nagios - plugins, prometheus)

网络监控

(IDC)对网络状态的监控(交换机,路由器,防火墙,VPN) 互联网公司必不可少 但是很多时候又被忽略。例如:内网之间(物理内网,逻辑内网 可用区 创建虚拟机 内网IP 外网 丢包率、延迟等等

日志监控

监控中的重头戏(Splunk,ELK),往往单独设计和搭建,全部种类的日志都有需要采集 (syslog, soft, 网络设备,用户行为)

程序监控

一般需要和开发人员配合,程序中嵌入各种接又 直接获取数据 或者特质的日志格式

监控系统的搭建

包括一下步骤:

  • 单点服务端的搭建(Prometheus)
  • 单点客户端部署
  • 单点客户端服务器的测试
  • 采集程序单点部署
  • 采集程序集群部署
  • 监控端HA/cloud
  • 监控端数据可视化,grafana
  • 报警系统测试,paperduty
  • 报警规则测试
  • 监控+报警联合测试
  • 正式上线监控

数据采集的编写

实用脚本编写数据采集工具
shell、python、PHP、go语言等

数据采集的方式

  • 一次性采集的模式
    稳定性较好 不容易出现各种错误 和性能瓶颈,且开发逻辑简单、实
    现快速;对于有些采集项目实现起来不够智能、也不够到位、例如:日志的实时采集
    (使用一次性采集 日志文件 200/5xx diff grep 也可以实现 但是很low 不够准确 不够直观)
  • 后台式采集: 采集程序以守护进程运行在Linux后台,持续不断的采集数据pormetheus exporter 例如,python/go开发的daemon程序 后台持续不断的采集
    优点: 后台采集程序,数据准确性高,采集密度精细,管理方便
    缺点:后台采集程序 如果开发过程不够仔细 可能会出现各种 内存泄漏 僵尸进程 性能瓶颈的问题, 且开发周期较长
  • 桥接式采集: 本身以后台进程运行 但是采集不能独立 依然跟服务器关联 以桥接方式收集采集数据
    例如:NRPE for nagios

监控数据分析和算法

需要一个非常专业的数据计算团队才可以给出一个最合理的算法协助我们的报警规则。
业务级别监控的算法,运维自身无法做到十分专业。因为本身跟操作系统无关,是跟数据算法相关。
举个例子:如果我想通过Prometheus实现对用户访问QPS的 精确监控,那么对于 监控图形 曲线 QPS上涨 QPS下跌,QPS凸起,QPS和历史数据的比较方法 等等这些 都属于业务级别的监控阈值类型,需要有专业的数据分析人员的协助 才可以算出优良的算法。

稳定性测试

不管是一次性采集,还是后台采集,只要是在Linux上运行的东西 都会多多少少对系统产生一定的影响。

而稳定性测试,就是通过一段时间的单点部署来观察对线上有没有任何影响。

监控自动化

监控客户端的批量部署,监控服务端的HA再安装,监控项目的修改,监控项目的监控集群变化种种,这些地方都需要大量的人工自动化的引进,会很大程度上缩短我们对监控系统的维护成本。

这里给出几个实例:
Puppet(配置文件部署)
Jenkins(CI 持续集成部署)
CMDB(运维自动化的最高资源管理平台和理念 )等
利用好如上这几个聚的例子,就可以实现对监控自动化的掌控

图形化展示

采集的数据和准备好的监控算法,最终需要一个好的图形展示才能发挥最好的作用

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

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

相关文章

IPC进程间通信及示例代码

一. 什么是进程通信 进程通信( InterProcess Communication,IPC)就是指进程之间的信息交换。实际上,进程的同步与互斥本质上也是一种进程通信(这也就是待会我们会在进程通信机制中看见信号量和 PV 操作的原因了&#x…

什么?内存爆了?详细解读虚拟内存机制

不知道大家在运行自己写的程序时,有没有发现一个问题:就是物理机器明明只有8G内存,但是我们运行的程序却可以申请到16G的内存?或者说机器上运行的多个进程,占用的总内存已经远超物理内存了,却还能正常工作。…

pdf转换成图片免费软件用哪个?pdf转换成图片就用它

随着技术的发展,现在企业办公运用到的电子文档各种各样,我们日常需要掌握的技能越来越高要求,其中pdf和图片是我们经常接触的文件格式之一,而且这两个文件格式我们会经常将它们进行转换,那么pdf转换成图片怎么操作呢?…

LDAP服务器如何重启

1、find / -name ldap 该命令只会从根路径下查看ldap文件夹 find / -name ldap2、该命令会从根路径/查看所有包含ldap路径的文件夹,会查询出所有,相当于全局查询 find / -name *ldap*2、启动OpenLADP 找到LDAP安装目录后,执行以下命令 #直…

数字孪生智慧仓储的关键特点和优势有哪些

数字孪生智慧仓储是一种基于数字孪生技术的智能仓储解决方案。数字孪生是指使用数字模型来模拟和仿真现实世界中的物理实体或系统的技术。在智慧仓储的上下文中,数字孪生被用来创建虚拟的仓储环境,以实时监测、优化和管理仓储操作。 数字孪生智慧…

vue3升级了些什么

Vue 3 升级了以下几个方面的内容: 响应式系统:Vue 3 使用了 Proxy 对象来替代 Vue 2 中的 Object.defineProperty,这使得响应式系统更加高效和灵活。Vue 3 的响应式系统可以追踪更细粒度的依赖关系,提供了更好的性能和更细致的响应…

Apache的简单介绍(LAMP架构+搭建Discuz论坛)

文章目录 1.Apache概述1.1什么是apache1.2 apache的功能及特性1.2.1功能1.2.2特性 1.3 MPM 工作模式1.3.1 prefork模式1.3.2 worker模式1.3.3 event模式 2.LAMP概述2.1 LAMP的组成2.2 LAMP各组件的主要作用2.3 LAMP的工作过程2.4CGI和FastCGI 3.搭建Discuz论坛所需4.编译安装Ap…

BEVFusion复现 (Ubuntu RTX3090)

https://github.com/ADLab-AutoDrive/BEVFusion 1.环境安装 我的机器是RTX3090,CUDA11.1 1.创建虚拟环境 conda create -n bevfusion python3.8.3 2.安装PyTorch 和 torchvision pip install torch1.8.0cu111 torchvision0.9.0cu111 torchaudio0.8.0 -f https://…

C# 如何将使用的Dll嵌入到.exe应用程序中?

文章目录 前言详细实操简要步骤 前言 有没有想自己开发的exe保留一点神秘,不想让他人知道软件使用了哪些dll; 又或许是客户觉得一个软件里面的dll文件太多了,能不能简单一点,直接双击.exe就可以直接运行了,别搞那么多乱七八糟的。…

vue3-vuex持久化实现

vue3-vuex持久化实现 一、背景描述二、实现思路1.定义数据结构2.存值3.取值4.清空 三、具体代码1.定义插件2.使用插件 四、最终效果 一、背景描述 有时候我们可能需要在vuex中存储一些静态数据,比如一些下拉选项的字典数据。这种数据基本很少会变化,所以…

webassembly003 ggml ADAM (暂记)

Adam优化器的工作方式是通过不断更新一阶矩估计和二阶矩估计来自适应地调整学习率,并利用动量法来加速训练过程。这种方式可以在不同的参数更新方向和尺度上进行自适应调整,从而更有效地优化模型。 https://arxiv.org/pdf/1412.6980.pdf 参数 这些参数…

CSS实现白天/夜晚模式切换

目录 功能介绍 示例 原理 代码 优化 总结 功能介绍 在网页设计和用户体验中,模式切换功能是一种常见的需求。模式切换可以为用户提供不同的界面外观和布局方案,以适应其个人偏好或特定环境。在这篇博客中,我们将探索如何使用纯CSS实现一…

Python所有方向的学习路线图!!

学习路线图上面写的是某个方向建议学习和掌握的知识点汇总,举个例子,如果你要学习爬虫,那么你就去学Python爬虫学习路线图上面的知识点,这样学下来之后,你的知识体系是比较全面的,比起在网上找到什么就学什…

数据结构——哈希表

哈希表 这里没有讲哈希表底层的概念,什么转红黑树,什么链表的,这篇文章主要讲的是如何用C实现哈希表,以及哈希表的基本概念。后面我会出一篇文章来讲C中hashmap中的底层逻辑的知识。 哈希表的概念 哈希表是一种数据结构&#xff0…

Unity3D 如何在ECS架构下,用Unity引擎进行游戏开发详解

前言 Unity3D是一款强大的游戏引擎,它提供了丰富的功能和工具,可以帮助开发者快速构建高质量的游戏。而Entity Component System(ECS)是Unity3D中一种新的架构模式,它可以提高游戏的性能和可扩展性。本文将详细介绍在…

一米ip流量池系统

PC端快速切换移动网络IP 支持全网通sim卡槽,国内三大运营商IP池动态切换,实现真实移动端IP切换。从此换IP再也不用vpn或代理,一个设备搞定 1.兼容国内电信,移动,联通三网通的sim卡4G连接,快速稳定2.可直接…

layui框架学习(40:数据表格_主要事件)

Layui数据表格模块主要通过各类事件响应工具栏操作、单元格编辑或点击等交互操作,本文学习table数据表格模块中的主要事件及处理方式。   头部工具栏事件。通过代码“table.on(‘toolbar(test)’, function(obj))”获取lay-filter属性为test的数据表格的头部工具栏…

MySQL中日期、时间直接相减的坑

前言 在牛客网上写一道 SQL 题时,需要计算两个日期之间相隔的秒数,我在写的时候直接将两个日期进行相减,得出来的值却不是相差的秒数。 情景再现 我在 MySQL 中进行了测试,得出的结论是:如果日期类型直接相减&#…

LeetCode 面试题 02.04. 分割链表

文章目录 一、题目二、C# 题解 一、题目 给你一个链表的头节点 head 和一个特定值 x,请你对链表进行分隔,使得所有 小于 x 的节点都出现在 大于或等于 x 的节点之前。 你不需要 保留 每个分区中各节点的初始相对位置。 点击此处跳转题目。 示例 1&#…

【实操干货】如何开始用Qt Widgets编程?(四)

Qt 是目前最先进、最完整的跨平台C开发工具。它不仅完全实现了一次编写,所有平台无差别运行,更提供了几乎所有开发过程中需要用到的工具。如今,Qt已被运用于超过70个行业、数千家企业,支持数百万设备及应用。 在本文中&#xff0…