promethues

1、定义:promethues是一个开源的系统监控以及报警系统,整合zabbix的功能(监控系统、网络、设备),promethues可以兼容网络、设备、容器监控、告警系统。因为其与k8s是一个项目基金开发出来的产品,天生匹配k8s的原生系统、容器化和云原生服务适配性很高

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

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

4、特点

(1)多维的数据模型。根据不同的函数计算方法,对同一数据可以做出不同的结论

(2)时间序列的数据。按照时间的顺序记录系统、设备变化的数据、容器化的数据,每个数据都是一个样本,服务器指标数据、应用程序的性能监控、网络数据都是时间序列数据

(3)通过静态配置或服务器自动发现收集数据

(4)promethues自带的原生数据展示不友好,通过数据化展示工具Grafana进行展示

5、存储引擎:TSDB

①TSDB能够存储的数据量很庞大

②大部分都是写入数据(从设备上获取数据,写入到promethues的存储库中)

③写入操作是一个时序添加,大多数情况下按照时间排列

④很少更新数据,采集到的数据在秒级/分钟级后就会被写入数据库

⑤基本数据大,一般超过内存的大小,数据按照一定的时间区间展示,缓存在这里不起作用

promethues是实时化数据,对持久化要求低

⑥读操作一般都是高并发的操作

⑦为了大数据高并发而生的

6、promethues的组件

(1)核心组件

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

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

 Storage:存储,把采集到的数据存储到磁盘中。默认保存15天,15天后自动清除

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

②exports:负责在节点收集数据,Node-Exports负责收集服务器节点的状态数据。CPU、内存、网络、磁盘等都是由Node-Exports收集,默认端口是9100

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

④cadvisor:监控容器内部的资源信息。可选组件,但k8s1.20版本后自带此组件

⑤blackbox-exporter:监控业务容器的存活性(一般不用)

⑥Altermanager:独立的告警模块,从promethues server收到告警通知后,Altermanager进行重组、分类,再发送到对应的接收方(通过电子邮件、钉钉、企业微信等方式)

⑦pushgateway:类似于中转站,promethues server端只会pull的方式拉取数据,节点的数据只能以push的方式上传、发送,此时需要pushgateway,先把数据保存在pushgateway,promethues server统一从pushgateway拉取数据

⑧grafana:promethues的图形化工具。可选项

7、工作流程

第一步:promethues server收集和存储时间序列数据(从监控目标中通过pull方式拉取数据,或者从pushgateway中把采集到的数据拉取到server中)

第二步:拉取到的数据(监控指标数据)保存到本地磁盘中

第三步:若监控的指标数据触发告警,会发送到altermanager模块,根据规则发送告警信息

第四步:若不发送告警信息,只是查询信息,可以通过promethues自带的ui web页面promql查询出监控数据

第五步:因为promethues自带的展示页面不友好,Grafana可以接入promethues的数据源,把监控数据以图形化的方式展示出来

8、promethues的局限性

(1)promethues只是一款指标监控系统,不适合存储事件,也不适合保存日志,更多的是一种趋势性的监控和展示,并非是一个精准的数据

(2)promethues认为只有最近的数据才有查询的需要,保存在本地的数据默认只有15天,不支持大量的历史数据进行存储,也不支持过往的历史数据,若一定要保存,可以基于远端存储,上传到influxDB或openTSDB系统中

(3)promethues集群化成都不高,一般是单节点部署

9、promethues与zabbix的区别【面试】

(1)难度

zabbix:大而全系统,功能非常完善,机制也很成熟,并且具有完善的web页面和可视化以及告警。在界面上可以满足绝大部署的操作,难度低,可以快速掌握,但集成度太高,定制化较难,扩展性差

promethues:最近几年比较火的系统,基于go语言开发的,只专注于监控功能,提供一个简单的ui界面供用户查询,可视化由grafana,告警由altermanager这样的第三方程序来实现,比较小巧里灵活,但难度高

(2)功能

zabbix:server和agent,agent部署在目标服务器,数据传送到server,基于TCP协议进行通信,agent把数据推送到server,或者server主动发起请求获取agent数据

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

(3)数据存储

zabbix:使用外部数据来保存数据

promethues:存储在内置的TSDB中(时间序列数据库)

(4)查询性能

zabbix:查询性能较弱,只能在web界面做一些有限的操作

promethues:查询性能较强,自带查询语句,但查询结果都是以图形或表格数据展示

结论:zabbix更成熟,难度低,对于传统的服务器、系统和网络都有优秀的监控能力,但不适配云原生、容器监控(可以监控,但适配性不好);promethues就是容器监控,支持k8s的监控,难度高

二进制部署prometheus实验

1、安装prometheus——9090

scrape_interval: 15s

采集数据的间隔时间。默认1分钟

evaluation interval: 15s

告警间隔时间。默认1分钟

scrape timeout

数据采集的超时时间。默认10秒钟采集不到即超时

rules_files:

-"first rules.yml"

-"second rules .yml"

配置告警规则

scrape contigs

参数时序数据的源,配置采集的主机。静态、动态

- job name: "prometheus "

每一个监控实例都是以-job_name来表示监控的集合

metrics path defaults to '/metrics'

指标采集的默认路径

static configs:

静态配置发现实例(目标节点服务器)

• 添加系统服务

• 启动promethues• 测试(浏览器输入20.0.0.17:9090)

• 安装时间同步

yum install ntpdate -y

ntpdate ntp.aliyun.com2、部署node节点——9100• 测试• node1、node2节点重复以下操作

vim /usr/lib/systemd/system/node_exporter.service

[Unit]

Description=node exporter

Documentation=https://prometheus.io/

After=network.target

[Service]

Type=simple

ExecStart=/usr/local/bin/node_exporter \

--collector.ntp \

--collector.mountstats \

--collector.systemd \

--collector.tcpstat

ExecReload=/bin/kil -HUP $MAINPID

Restart=on-failure

[Install]

WantedBy=multi-user.target• 刷新targets3、部署grafana——3000• 浏览器输入http://20.0.0.17:3000/

4、导入模板,并将数据库导入grafana

• 导入数据

• 导入数据

下载模板:https://grafana.com/grafana/dashboards

删除模板

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

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

相关文章

汽车网络安全管理体系框架与评价-汽车网络安全管理体系评价

当前 , 随若汽车联网产品渗透率、 智能传感设备搭载率的提升, 以及汽车与通信、互联网等行业的融合创新发展, 汽车行业面临愈发严峻的网络安全风险, 对消费者人身财产安全、 社会安全乃至国家安全产生威胁, 是产业发展…

【Spark系列1】DAG中Stage和Task的划分全流程

一、整体流程 每个Aciton操作会创建一个JOB,JOB会提交给DAGScheduler,DAGScheduler根据RDD依赖的关系划分为多个Stage,每个Stage又会创建多个TaskSet,每个TaskSet包含多个Task,这个Task就是每个分区的并行计算的任务。…

头戴式耳机哪个牌子音质好?2024音质超好的百元头戴式耳机品牌推荐

在当今数字化的时代,音乐已成为我们生活中不可或缺的一部分,而头戴式耳机因其优质的音效和舒适的佩戴感,成为了许多音乐爱好者的首选,在众多品牌中,究竟哪个牌子的头戴式耳机音质最好呢?今天我就来给大家推…

echarts坐标轴文字样式

https://echarts.apache.org/zh/option.html#xAxis.nameTextStyle xAxis. nameTextStyle、 yAxis: {type: value,// max: -0.15,name: 沉降累计值/mm,nameTextStyle: {padding: [0, 0, 0, 10],color: #93B8E2,fontSize: 12,fontFamily: Alibaba-PuHuiTi-R},splitLine: {show:…

procmethues 二进制安装

pormethues是一个开源的系统监控以及报警系统。整合zabbix的功能,系统,网络,设备。 procmeteus可以兼容网络,设备。容器监控。告警系统。因为他和k8s是一个项目开发的产品,天生匹配k8s的原生系统。容器化和云原生服务…

【Java基础】JVM关闭回调函数(ShutdownHook)的应用场景

文章目录 一.ShutdownHook介绍二.ShutdownHook被调用场景三.ShutdownHook如何使用四.ShutdownHook实践 一.ShutdownHook介绍 ShutdownHook就是一个简单的 已初始化 但是 未启动 的 线程 。当虚拟机开始关闭时,它将会调用所有已注册ShutdownHook的回调函数&#xff0…

Gnuplot安装与配置

安装默认选项,下一步配置环境变量 找到系统环境变量,找到PATH 新建 浏览 将bin目录加进去 如图 再按winR,输入cmd打开终端,输入gnuplot,如果提示以下信息就可以绘图 如果要在Visual Studio中结合代码使用,需…

【局部自动数据增强】YOCO:将图片一分为二,各自增强后拼合为一

【自动数据增强】YOCO:将图片一分为二,各自增强后拼合为一 核心思想好在哪里?切哪里、切几次?何时用? 总结 核心思想 论文:https://arxiv.org/pdf/2201.12078.pdf 代码:https://github.com/Ju…

MySql的使用方法

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

Python网络拓扑库之mininet使用详解

概要 网络工程师、研究人员和开发人员需要进行各种网络实验和测试,以评估网络应用和协议的性能,以及解决网络问题。Python Mininet是一个功能强大的工具,它允许用户创建、配置和仿真复杂的网络拓扑,以满足各种实际应用场景。本文…

SQL注入:二次注入

SQL注入系列文章: 初识SQL注入-CSDN博客 SQL注入:联合查询的三个绕过技巧-CSDN博客 SQL注入:报错注入-CSDN博客 SQL注入:盲注-CSDN博客 目录 什么是二次注入? 二次注入演示 1、可以注册新用户 2、可以登录->…

C++ 类与对象(上)

目录 本节目标 1.面向过程和面向对象初步认识 2.类的引入 3.类的定义 4.类的访问限定符及封装 4.1 访问限定符 4.2 封装 5. 类的作用域 6. 类的实例化 7.类对象模型 7.1 如何计算类对象的大小 7.2 类对象的存储方式猜测 7.3 结构体内存对齐规则 8.this指针 8.1 thi…

前言:穿越迷雾,探索C语言指针的奇幻之旅

各位少年,大家好,我是博主那一脸阳光,今天给大家分享指针,内存和地址的使用,以及使用。 前言: 在编程的世界中,若论灵活多变、深邃神秘的角色,非“指针”莫属。如同哈利波特手中的魔…

C++ 数论相关题目 求组合数I

直接按照公式求解会超时。 常用组合数递推式。 因此用递推式先预处理出来&#xff0c;然后查表。 #include <iostream> #include <algorithm>using namespace std;const int N 2010, mod 1e9 7;int c[N][N];void init() {for(int i 0; i < N; i )for(in…

C/C++ - 函数进阶(C++)

目录 默认参数 函数重载 内联函数 函数模板 递归函数 回调函数 默认参数 定义 默认参数是在函数声明或定义中指定的具有默认值的函数参数。默认参数允许在调用函数时可以省略对应的参数&#xff0c;使用默认值进行替代。 使用 默认参数可以用于全局函数和成员函数。默认参…

RDMA技术赋能:构建高速网络基础设施,加速大型模型高效训练

深入剖析RDMA在高速网络环境中的应用价值与实现方式 远程直接内存访问&#xff08;RDMA&#xff09;作为超高速网络内存访问技术的领军者&#xff0c;彻底颠覆了传统程序对远程计算节点内存资源的访问模式。其卓越性能的核心在于巧妙地绕过了操作系统内核层&#xff08;如套接…

npm v10.4.0 is known not to run on Node.js v14.21.3

问题起因 vue项目在打包的时候突然报如下错误&#xff0c;项目原来打包的时候是没问题的。 request to https://registry.npm.taobao.org/acorn failed, reason: certificate然后找到了一篇帖子&#xff0c;淘宝npm镜像地址https证书到期了&#xff0c;发现确实是这个问题。在…

Redis客户端之Redisson(三)Redisson分布式锁

一、背景&#xff1a; 高效的分布式锁设计应该包含以下几个要点&#xff1a; 1、互斥&#xff1a; 在分布式高并发的条件下&#xff0c;我们最需要保证&#xff0c;同一时刻只能有一个线程获得锁&#xff0c;这是最基本的一点 2、防止死锁&#xff1a; 在分布式高并发的条…

骑砍战团MOD开发(41)-LOD渲染技术

一.LOD技术 LOD技术&#xff0c;即Level Of Details&#xff0c;是一种在3D图形渲染中常用的技术&#xff0c;主要用于优化渲染性能。 通过在建模时添加LOD模型(低模模型,面数较少),游戏引擎通过计算模型的远近和光照等情况选择性加载原模型(高模)/LOD模型(低模),实现游戏…

D3485——+5V工作电压,内置失效保护电路等功能高达10Mbps的传输速率,可应用在智能电表,安防监控等产品上

D3485 是一款 5V 供电、半双工的 RS-485 收发器&#xff0c;芯片内部包含一路驱动器和 一路接收器。D3485 使用限摆率驱动器&#xff0c;能显著减小 EMI 和由于不恰当的终端匹 配电缆所引起的反射&#xff0c;并实现高达10Mbps 的无差错数据传输。 D3485 内置失效保 护电路&…