Prometheus的相关概念和部署

(一)Prometheus的相关概念

1、Prometheus:是一个开源的系统监控以及报警系统,整合zabbix的功能、系统、网络、设备

2、Prometheus可以兼容网络、设备,进行容器监控、告警系统

3、因为Prometheus和k8s是一个项目基金开发的产品,天生匹配k8s的原生系统,容器化和云原生服务适配性很高

4、Prometheus是一个服务监控系统和时序数据库,提供了通用的数据模型和快捷数据采集,存储和接口查询

(1)核心组件:Prometheus server,定期从静态配置的监控目标或者基于服务发现的自动配置目标中进行拉取数据,拉取到数据会持久化的保存到存储设备之中
①先拉取数据,纳入到监控系统当中,才能进行时序数据采集、存储、告警和展示
②能够直接把apiserver作为服务发现系统使用,实现动态监控、动态发现

5、Prometheus的特点

(1)多维的数据模型:根据不同的函数计算方法,对同一数据可以作为不同的结论
①promQL是难点
(2)时间序列的数据:按照时间的顺序记录系统,设备变化的数据、容器化的数据,每个数据都是一个样本
①服务器指标数据、应用程序的性能监控、网络数据都是时间序列数据
(3)通过静态,也可以通过服务自动发现收集数据
(4)Prometheus自带的原生数据展示不是很友好,专门的数据化展示工具grafana

6、Prometheus的存储引擎:TSDB

(1)能够存储的数据量很庞大
(2)大部分都是写入操作
(3)写入操作是一个时序添加,大多数情况下都是按照时间排列
(4)很少更新数据,采集到的数据在秒级或者是分钟级后就会被写入数据库
(5)基本数据大,一般超过了内存的大小,数据按照一定的时间区间展示,缓存在这里不起作用
①Prometheus展示实时数据,对持久化要求不是很高
(6)读操作,一般都是高并发的操作
(7)就是为了大数据高并发而生的

7、Prometheus的组件

* 服务核心组件,采用pull方式采集监控数据,通过http协议进行传输,存储时间序列的数据,基于告警规则生成告警通知

Prometheus server

核心组件,核心分为三个部分

retrieval

负责在目标主机抓取监控指标数据

storage

存储,把采集的数据保存在磁盘当中,默认只保存15天

promQL

负责把数据按照一定的规则,通过指定的语法形成结果,最后展示出来grafana

exports

负责在节点收集数据

node-exports负责收集服务器节点的状态数据、CPU、内存、网络、磁盘等等都是其收集

默认端口:9100

client-library

客户端库,用于应用程序的内部测量系统,内部测试

cadvisor

监控容器内部的资源信息,但是k8s从1.20之后自带这个组件

blackbox-exporter

监控业务容器的存活性(一般不用)

altermanager

独立的告警模块,从Prometheus server收到告警通知之后,从altermanager进行重组、分类,发送到对应的接受方

电子邮件、钉钉、企业微信

pushgateway

类似于一个中转站,server端只会使用pull的方式拉取数据,节点的数据只能以push的方式上传,先把数据源保存在pushgateway,Prometheus server统一从pushgateway拉取数据

grafana

图形化工具

8、Prometheus的工作流程

(1)Prometheus server为核心,收集和存储数据(时间序列数据),从监控目标中通过pull方式拉取数据,或者通过pushgateway把采集到的数据,拉取到server当中
(2)拉取到的数据保存到本地的磁盘当中(监控指标数据)
(3)如果监控的指标数据触发了告警,发送到altermanager模块,然后根据规则发送告警信息
(4)通过Prometheus的自带UI的web页面,通过promQL可以查询出监控的数据
(5)grafana可以介入Prometheus数据源,把监控数据以图形化的方式展示出来

9、Prometheus的局限

(1)只是一款指标监控系统,不适合存储时间、也不适合保存日志,更多的是一种趋势性的监控和展示,并非是一个精准的数据
(2)认为只有最近的数据才有查询的需要,保存在本地的数据默认只有15天,不支持大量的历史数据进行存储,也不支持查询过往的历史数据。基于远端存储,上传到influxDB或者openTSDB系统
(3)集群化程度不高,一般都是单节点部署

10、Prometheus和zabbix的对比(重)

zabbix

Prometheus

特性

①优点:大而全的系统,而且功能非常完善,机制非常成熟,具有完善的web页面,可视化和告警,在界面可以满足绝大部分的操作,上手难度很低可以快速掌握

②缺点:高度集成导致其定制比较难,扩展也比较差

①优点:近几年比较火的监控系统,基于go语言开发的,只是专注于监控的功能,提供一个简单的UI界面供用户查询,可视化——grafana——altermanager,第三方程序实现,比较小巧灵活

②缺点:自带promQL语言,门槛高,学习难度大,上手难

功能

指标收集方式

①zabbix:指标收集方式:server、agent

②agent:部署在目标服务器,数据传送到server,基于tcp协议进行通信

agent把数据推送到server,或者server主动发起请求,获取agent的数据

基于客户端进行数据收集,server端定时与客户端交互,通过pull的方式获取监控数据

查询性能

①查询的性能较弱,只能在web界面进行一些有限的操作

②查询功能强大,自带查询语句,查询结果都是以图形、表格数据展示

zabbix更成熟,上手难度低,对于传统的服务器、系统和网络都有优秀的监控能力,不适配云原生、不适配容器监控

Prometheus就是容器化监控,支持k8s的监控功能,查询语句难、不好学

(二)Prometheus基于二进制部署

1、部署压缩包

①配置文件的格式:cat prometheus.yml | grep -v "^#"

2、添加到系统服务:vim /usr/lib/systemd/system/prometheus.service

systemctl daemon-reload
systemctl restart prometheus.service

systemctl enable prometheus.service

3、访问:20.0.0.71:9090

4、配置时间同步

5、加入node节点(配置所有节点)

tar -xf node_exporter-1.5.0.linux-amd64.tar.gz
mv node_exporter-1.5.0.linux-amd64 node_exporter
mv node_exporter /usr/local/bin/

①添加至系统服务:vim /usr/lib/systemd/system/node_exporter.service

②查看端口:netstat -antp | grep 9100

③静态方式添加指定节点

6、配置grafana(配置在一个节点即可)

rpm -ivh grafana-enterprise-7.5.11-1.x86_64.rpm
systemctl start grafana-server.service
systemctl enable grafana-server.service
netstat -antp | grep 3000

①访问:http://20.0.0.71:3000/

7、网页配置

(1)下载模版:https://grafana.com/grafana/dashboards
(2)删除模版

8、总结:

(1)Prometheus:就是一个监控,时序数列的图形化监控的工具,不在意数据的持久化,只关注最近的需要查询的数据
(2)更适配k8s集群,也可以对服务器进行一般监控(内存、CPU、硬盘、读写、网络等)
(3)数据要复现,每天都会出现某种特定情况,例如占了大量CPU等等,这种情况需要关注,但是不是复现情况,可以不管,比如某时刻突然增高,但可以下降,如无特殊需求也可以不管,但必须记录在案

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

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

相关文章

服务攻防-开发组件安全JacksonFastJson各版本XStreamCVE环境复现

知识点 1、J2EE-组件Jackson-本地demo&CVE(数据处理) 2、J2EE-组件FastJson-本地demo&CVE(数据处理) 3、J2EE-组件XStream-本地demo&CVE(数据处理) 章节点: 1、目标判断-端口扫描…

浅谈桌面云

桌面云是一种通过网络将可伸缩、弹性的共享物理或虚拟资源池按需供应和交付桌面的云服务模式。桌面操作系统运行于共享物理或虚拟资源池,用户可使用瘦客户机端或其他任何与网络相连的设备(即终端设备,包括云终端、笔记本、普通PC、智能终端等…

脉宽调制器

1. pwm脉宽调制器 脉宽调制器: 一种硬件设备, 用于 动态调制 方波 的 一些属性, 方波的周期,频率,占空比 占空比? : 有效电平占 整个周期的比值 可以使用PWM 控制功率, 控制频率 用于 开关电源 或 逆变器 1.1 原理 PWM原理: 如图所示 本质就是一个定时器: 由原理…

【玩转Node.JS】=>(内置文件系统)fs模块

文章目录 概念:文件写入writeFile (异步写入)writeFileSync(同步写入)appendFile (异步追加写入)appendFileSync(同步追加写入)createWriteStream (文件流式写…

服务攻防-开发框架安全SpringBootStruts2LaravelThinkPHPCVE复现

知识点: 1、PHP-框架安全-Thinkphp&Laravel 2、J2EE-框架安全-SpringBoot&Struts2 章节点: 1、目标判断-端口扫描&组合判断&信息来源 2、安全问题-配置不当&CVE漏洞&弱口令爆破 3、复现对象-数据库&中间件&开发框架&am…

Spring Boot通过配置文件支持数据库自定义表名

直接上干货: 例如一个叫xxx的项目,yml文件里加上这段 xxxproject:db:xxxTable: xxx_dbname #自定义的数据库表名创一个Configuration类放表名和Mapper // XxxProjectAutoConfiguration.javaConfiguration MapperScan(basePackages "cn.com.xxxp…

Vue3-插槽(本质也是组件间的交流)

默认插槽 当你在父组件中,有标签需要插入子组件中显示,就需要默认插槽 具名插槽 当你在父组件中,有多个标签需要放置子组件的不同位置时,就需要具名插槽 具名-----》 v-slot:s2 作用域插槽 父组件在插槽中想要使用子组件的值&…

Less-1(sqlmap自动注入攻击)--sqli

环境准备 打开火狐浏览器,进入sqli第一关的页面 工具准备 sqlmap 参数解释 -u URL 指定目标URL进行注入测试。--dataDATA指定POST请求的数据进行注入测试--cookieCOOKIE指定用于身份验证的cookie进行注入测试-p PARAMETER指定要测试的参数--levelLEVEL设置测试的深…

你不知道的Tomcat

Tomcat基本概念 Tomcat是一个Servlet容器,也是一个web容器。我们的请求通过浏览器进入到Tomcat,Tomcat再把请求分发对应的Servlet。 Tomcat核心组件 Connector: 连接器负责处理进入Tomcat的传入连接和请求,然后将它们传递给Server服务对象中…

Qt无边框窗口拖拽和阴影

先看下效果: 说明 自定义窗口控件的无边框,窗口事件由于没有系统自带边框,无法实现拖拽拉伸等事件的处理,一种方法就是重新重写主窗口的鼠标事件,一种时通过nativeEvent事件处理。重写事件相对繁琐,我们这里推荐nativeEvent处理。注意后续我们在做win平…

MySQL知识点总结(二)——explain执行计划、SQL优化

MySQL知识点总结(二)——explain执行计划、SQL优化 explain执行计划typepossible_keyskeysextra SQL优化SQL优化的流程SQL优化技巧范围查询优化排序优化分组查询优化distinct优化分页查询优化join关联查询优化排序分页 关联查询分组 关联查询 排序in与…

手把手带你Git入门,从下载到精通,常用git命令

文章目录 Git概述什么是GitGit历史Git是什么 为什么要使用Git什么是版本控制系统 Git和SVN对比SVN集中式SVN优缺点 Git分布式Git优缺点 Git工作流程四个工作区域工作流程 Git下载与安装下载window版下载64位软件包安装Git Git基础环境配置设置用户信息查看配置信息 文件的两种状…

ES6.8.6 创建索引配置分词器、映射字段指定分词器、查询数据高亮显示分词结果(内置分词器、icu、ik、pinyin分词器)

文章目录 ES环境内置分词器,以simple分词器示例查询创建索引simple_news,修改分词器为simple插入模拟数据分词查询:返回通过分词查询到的结果、高亮分词分词匹配:写一次示例,其他分词和匹配思路基本一致第一步&#xf…

DMA 和 零拷贝技术 到 网络大文件传输优化

文章目录 DMA 控制器的发展无 DMA 控制器 IO 过程DMA 控制器 传统文件传输性能有多糟糕?如何优化文件传输性能零拷贝技术mmap writesendfileSG-DMA(The Scatter-Gather Direct Memory Access) 零拷贝技术的应用 大文件传输应该用什么方式Pag…

后台管理系统模板搭建/项目配置

1 项目初始化 一个项目要有统一的规范,需要使用eslintstylelintprettier来对我们的代码质量做检测和修复,需要使用husky来做commit拦截,需要使用commitlint来统一提交规范,需要使用preinstall来统一包管理工具。 1.1 环境准备 1…

idea 创建 spring boot

1.创建步骤 2. 编码添加 2.1 这是自动生成的启动函数 package com.example.comxjctest4;import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;SpringBootApplication public class Application {publi…

MySql的使用方法

一.什么是MySql MySql是一种数据库管理系统,是用来存储数据的,可以有效的管理数据,数据库的存储介质为硬盘和内存。 和文件相比,它具有以下优点: 文件存储数据是不安全的,且不方便数据的查找和管理&#xf…

【3分钟开服】幻兽帕鲁服务器一键部署保姆教程,PalWorld开服联机教程

在帕鲁的世界,你可以选择与神奇的生物「帕鲁」一同享受悠闲的生活,也可以投身于与偷猎者进行生死搏斗的冒险。帕鲁可以进行战斗、繁殖、协助你做农活,也可以为你在工厂工作。你也可以将它们进行售卖,或肢解后食用。 想要部署属于自…

从零开发短视频电商 Tesseract OCR识别增强

文章目录 概要图像预处理阶段默认反转图像重新缩放二值化噪音消除膨胀/腐蚀旋转/偏移校正边框缺少边框边框太大扫描边框去除 透明度/Alpha通道 引擎处理阶段语言模型配置提高识别速度词典、单词列表和模式表格识别 使用 Tesseract OCR 的 GUI 和其他项目 原文如下: …

TypeScript实战系列之合理运用类型

目录 介绍any 和 unknownerve 的用途断言type 和 interfacedeclare 关键字的作用联合类型 和 类型守卫交叉类型 介绍 这篇主要介绍下ts 常用的基本类型和一些常用的技巧性技能 any 和 unknow any 和 unknown 是两个类型关键字,它们用于处理类型不确定或未知的情况…