Prometheus---图形化界面grafana(二进制)

前言

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

proetheus可以兼容网络,设备。容器的监控。告警系统。因为他和k8s是一个项目基金开发的产品,天生匹配k8s的原生系统。容器化和云原生服务适配性很高。

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

核心组件: prometheus server定期从静态配置的监控目标或者基于服务发现的自动配置目标中进行拉取数据。

拉取到数据会持久化的保存到存储设备之中。 先拉取数据,纳入到监控系统当中,才能进行时序数据采集,存储,告警和展示。

能够直接把api server作为服务发现系统使用。动态监控,动态发现。

Prometheus的特点:

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

2、时间序列的数据,按照时间的顺序记录系统,设备变化的数据,容器化的数据。每个数据都是一个样本。

服务器指标数据,应用程序的性能监控,网络数据数据都是时间序列数据。 3、通过静态,也可以通过服务自动发现收集数据。

4、Prometheus自带的原生数据展示不是很友好,数据化展示工具grafana。

prometheus的存储引擎:TSDB

1、能够存储的数据量很庞大 2、大部分都是写入操作。

3、大多数情况下,写入操作是一个时序添加

4、很少更新数据,采集到的数据在秒级或者分钟级会被写入数据库。

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

6、读操作,一般都是高并发的操作。

7、就是为了大数据,高并发而生的。

Prometheus的组件

核心组件:

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

一、prometheus server是核心,核心分为三部分

        1、retrieval:负责在目标主机抓取监控指标。

        2、Storage:存储,把采集的数据保存磁盘当中,默认只保存15天。

        3、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:图形化工具。

Prometheus的工作流程:

1、prometheus server为核心,收集和存储数据(时间序列数据),从监控目标中通过pull方式拉取数据。或者通过pushgateway把采集到数据,拉取到server当中。

2、拉取到的数据,保存到本地的磁盘当中。(监控指标数据)

3、如果监控的指标数据触发了告警,发送到altermanager模块,然后根据规则发送告警信息

4、通过Prometheus的自带uiweb页面,通过promql可以查询出监控用户数据。

5、grafana可以介入prometheus数据源,把监控数据以图形化的方式展示出来。

Prometheus和zabbix的对比

Prometheus的局限性

1、只是一款指标系统,不适合存储时间,也不适合保存日志,更多的是一种趋势性的监控和展示,并非一个准确的数据。

2、认为最近的数据才有查询的需要,保存在本地的数据默认只有15天,不支持大量的历史数据进行存储。也不支持查询过往的历史数据。基于远端存储,上传了到influxDB或者openTSDB系统。

3、集群化成都不高,一般都是单节点部署。

以及zabbix的对比

zabbix:是一个大而全的系统,而且功能非常完善,机制非常成熟。具有完善的web页面。可视化和告警。在界面上可以满足绝大部分的操作。上手难度很低,可以快速掌握。集成度台盖,定制化比较难,扩展也比较差。

Prometheus:最近几年比较火的监控系统,基于go语言开发的。只专注于监控的功能,提供一个简单的ui界面共用户查询。可视化-----------grafana,告警-----------Altermanager(第三方程序来实现,比较小巧灵活,但门槛高)

二者之间功能的比较:

zabbix指标收集方式:server和agent,agent部署在目标服务器,数据传送到server,基于tcp进行通信

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

Prometheus:基于客户端进行数据收集,server端定时于客户端交互,通过PULL方式获取监控数据。

数据存储:

zabbix使用外部的数据来保存数据。

Prometheus存储在内置的TSDB当中,时间序列数据库

查询性能:

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

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

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

Prometheus:就是容器化的监控,支持k8s的监控功能。难,不好学。PROMSL

二进制部署

(1)上传 prometheus-2.45.0.linux-amd64.tar.gz,并解压
mkdir -p /opt/prometheus
cd /opt/prometheus
tar xf prometheus-2.45.0.linux-amd64.tar.gz
mv prometheus-2.45.0.linux-amd64 /usr/local/prometheuscat /usr/local/prometheus/prometheus.yml | grep -v "^#"
global:					#用于prometheus的全局配置,比如采集间隔,抓取超时时间等scrape_interval: 15s			#采集目标主机监控数据的时间间隔,默认为1mevaluation_interval: 15s 		#触发告警生成alert的时间间隔,默认是1m# scrape_timeout is set to the global default (10s).scrape_timeout: 10s			#数据采集超时时间,默认10salerting:				#用于alertmanager实例的配置,支持静态配置和动态服务发现的机制alertmanagers:- static_configs:- targets:# - alertmanager:9093rule_files:				#用于加载告警规则相关的文件路径的配置,可以使用文件名通配机制# - "first_rules.yml"# - "second_rules.yml"scrape_configs:			#用于采集时序数据源的配置# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.- job_name: "prometheus"		#每个被监控实例的集合用job_name命名,支持静态配置(static_configs)和动态服务发现的机制(*_sd_configs)# metrics_path defaults to '/metrics'metrics_path: '/metrics'    #指标数据采集路径,默认为 /metrics# scheme defaults to 'http'.static_configs:				#静态目标配置,固定从某个target拉取数据- targets: ["localhost:9090"]
(2) 将Prometheus加入到系统服务 
cat > /usr/lib/systemd/system/prometheus.service <<'EOF'
[Unit]
Description=Prometheus Server
Documentation=https://prometheus.io
After=network.target[Service]
Type=simple
ExecStart=/usr/local/prometheus/prometheus \
--config.file=/usr/local/prometheus/prometheus.yml \
--storage.tsdb.path=/usr/local/prometheus/data/ \
--storage.tsdb.retention=15d \
--web.enable-lifecycleExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure[Install]
WantedBy=multi-user.target
EOFsystemctl start prometheus
systemctl enable prometheusnetstat -natp | grep 9090
(3)进行界面访问

http://192.168.10.10:9090(主机IP) ,访问到 Prometheus 的 Web UI 界面 

访问:http://192.168.10.10:metrics,查看prometheus的数据采集信息

(2)将 node_exporter添加到系统服务中
cat > /usr/lib/systemd/system/node_exporter.service <<'EOF'
[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.tcpstatExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure[Install]
WantedBy=multi-user.target
EOF(3)启动 
systemctl start node_exporter
systemctl enable node_exporternetstat -natp | grep :9100

部署 Exporters ,添加监控主机

部署 Node Exporter 监控系统级指标(对每一个node节点)

(1)上传 node_exporter-1.3.1.linux-amd64.tar.gz 进行解压
mdkir -p /opt/prometheus
cd /opt/prometheus
tar xf node_exporter-1.5.0.linux-amd64.tar.gz
mv nnode_exporter-1.5.0.linux-amd64/node_exporter /usr/local/bin
(2)将 node_exporter添加到系统服务中
cat > /usr/lib/systemd/system/node_exporter.service <<'EOF'
[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.tcpstatExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure[Install]
WantedBy=multi-user.target
EOF(3)启动 
systemctl start node_exporter
systemctl enable node_exporternetstat -natp | grep 9100

(3)修改 prometheus 配置文件,加入到 prometheus 监控中
vim /usr/local/prometheus/prometheus.yml
#在尾部增加如下内容- job_name: nodesmetrics_path: "/metrics"static_configs:- targets:- 192.168.10.10:9100- 192.168.10.20:9100- 192.168.10.30:9100labels:service: kubernetes(5)重新载入配置
curl -X POST http://192.168.10.10:9090/-/reload
或
systemctl reload prometheus
浏览器查看 Prometheus 页面的 Status -> Targets

部署 grafana 

(1)安装grafana 

rpm -ivh grafana-enterprise-7.5.11-1.x86_64.rpmsystemctl start grafana-server
systemctl enable grafana-servernetstat -natp | grep :3000浏览器访问:http://192.168.73.108:3000 ,默认账号和密码为 admin/admin

(2)配置数据源

 Configuration -> Data Sources -> Add data source -> 选择 Prometheus
HTTP -> URL 输入 http://192.168.10.10:9090
点击 Save & Test

(3)添加监控模版

https://grafana.com/grafana/dashboards

模版网站。找模版,填写模版id

此处可用

12633
11074
15172

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

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

相关文章

极限的运算法则【高数笔记】

【定理】 1. 无穷小量 * 有界 无穷小量 简单理解为&#xff1a;0 乘以任何数都等于 0 &#xff0c;因为常数 0 是无穷小量 2. 设 lim f&#xff08;x&#xff09; a , lim g (x) b 加减&#xff1a;lim[f(x) g(x) ] lim f(x) g(x) a b 乘&#xff1a;lim[f(x)…

Spring Bean 定义常见错误

Spring 的核心是围绕 Bean 进行的。不管是 Spring Boot 还是 Spring Cloud&#xff0c;只要名称中带有 Spring 关键字的技术都脱离不了 Bean&#xff0c;而要使用一个 Bean 少不了要先定义出来&#xff0c;所以定义一个 Bean 就变得格外重要了。 当然&#xff0c;对于这么重要…

【深入浅出SpringCloud原理及实战】「Netflix系列之Hystrix」针对于限流熔断组件Hystrix的回退降级实现方案和机制

针对于限流熔断组件Hystrix的回退降级实现方案和机制 依赖隔离依赖隔离之线程&线程池高延迟请求的例子 线程池的优势线程池的弊端线程池的开销线程池开销 信号量 依赖隔离 Hystrix通过使用『舱壁模式』&#xff08;注&#xff1a;将船的底部划分成一个个的舱室&#xff0c;…

186205-33-4,Cyanine2 NHS Ester,广泛应用于荧光标记和生物成像领域

您好&#xff0c;欢迎来到新研之家 文章关键词&#xff1a;186205-33-4&#xff0c;Cyanine2 NHS Ester&#xff0c;Cy2 NHS&#xff0c;Cyanine2 NHS Ester&#xff0c;Cy2 NHS 一、基本信息 产品简介&#xff1a;Cyanine2 NHS Ester can be widely used in the fields of …

C#中的WebApi响应Accept头,自动返回xml或者json

Global.asax.cs中的Application_Start方法添加 GlobalConfiguration.Configuration.Formatters.Clear(); GlobalConfiguration.Configuration.Formatters.Add(new XmlMediaTypeFormatter()); GlobalConfiguration.Configuration.Formatters.Add(new JsonMediaTypeFormatter())…

【零基础学习CAPL】——CAN报文的发送(按下按钮同时周期性发送)

🙋‍♂️【零基础学习CAPL】系列💁‍♂️点击跳转 文章目录 1.概述2.面板创建3.系统变量创建4.CAPL实现4.1.函数展示4.2.全量报文展示5.效果1.概述 本章主要介绍使用CAPL和Panel在按下按钮时发送周期性CAN报文。 本章主要在“【零基础学习CAPL】——CAN报文的发送(配合P…

MQ面试题之Kafka

前言 前文介绍了消息队列相关知识&#xff0c;并未针对某个具体的产品&#xff0c;所以略显抽象。本人毕业到现在使用的都是公司内部产品&#xff0c;对于通用产品无实际经验&#xff0c;但是各种消息中间件大差不差&#xff0c;故而本次选择一个相对较熟悉的Kafka进行详细介绍…

Spring的事件监听机制

这里写自定义目录标题 1. 概述&#xff08;重点&#xff09;2. ApplicationEventMulticaster2.1 SimpleApplicationEventMulticaster2.2 AbstractApplicationEventMulticaster 3. ApplicationListener3.1 注册监听器3.2 自定义 4. SpringApplicationRunListeners 1. 概述&#…

【软件设计师笔记】计算机系统基础知识考点

&#x1f413; 计算机系统组成 计算机系统是由硬件和软件组成的&#xff0c;它们协同工作来运行程序。计算机的基本硬件系统由 运算器、控制器、存储器、输入设备和输出设备5大部件组成。运算器、控制器等部件被集成 在一起统称为中央处理单元&#xff08;Central Processing …

小白级教程,10秒开服《幻兽帕鲁》

在帕鲁的世界&#xff0c;你可以选择与神奇的生物「帕鲁」一同享受悠闲的生活&#xff0c;也可以投身于与偷猎者进行生死搏斗的冒险。帕鲁可以进行战斗、繁殖、协助你做农活&#xff0c;也可以为你在工厂工作。你也可以将它们进行售卖&#xff0c;或肢解后食用。 前言 马上过年…

Maven讲解

介绍 Maven是一个流行的构建工具和项目管理工具&#xff0c;它主要用于Java项目的构建、依赖管理和项目报告生成。Maven通过提供一致的项目结构、自动化的构建过程和强大的依赖管理&#xff0c;简化了项目的开发和维护过程。 下面是一些Maven的主要特点和用途&#xff1a; 项…

MFC串行化的应用实例

之前写过一篇MFC串行化的博文;下面看一个具体例子; 新建一个单文档应用程序;在最后一步,把View类的基类改为CFormView; 然后在资源面板编辑自己的字段; 然后到doc类的头文件添加对应变量, public:CString name;int age;CString sex;CString dept;CString zhiwu;CStrin…

go语言socket编程

1.互联网分层模型 过程分析&#xff1a; 2.Socket图解 Socket是应用层与TCP/IP协议族通信的中间软件抽象层。在设计模式中&#xff0c;Socket其实就是一个门面模式&#xff0c;它把复杂的TCP/IP协议族隐藏在Socket后面&#xff0c;对用户来说只需要调用Socket规定的相关函数&a…

助力水下潜行:浮力调节系统仿真

01.建设海洋强国 海洋蕴藏着丰富的资源&#xff0c;二十大报告强调&#xff0c;要“发展海洋经济&#xff0c;保护海洋生态环境&#xff0c;加快建设海洋强国”。建设海洋强国旨在通过科技创新驱动、合理开发利用海洋资源、强化海洋环境保护与生态修复、提升海洋经济质量等多个…

测试access和trunk口的区别(华为)

思科设备参考&#xff1a;测试access和trunk口的区别&#xff08;思科&#xff09; 一&#xff0c;实验目的 实现同一 Vlan 内的主机互通&#xff0c;不同 Vlan 间的主机隔离。 二&#xff0c;配置前测试 PC1分别ping PC2、PC3、PC4都能通&#xff0c;因为四台PC默认同处于v…

AOP+Redisson 延时队列,实现缓存延时双删策略

一、缓存延时双删 关于缓存和数据库中的数据保持一致有很多种方案&#xff0c;但不管是单独在修改数据库之前&#xff0c;还是之后去删除缓存都会有一定的风险导致数据不一致。而延迟双删是一种相对简单并且收益比较高的实现最终一致性的方式&#xff0c;即在删除缓存之后&…

强化学习原理python篇07——策略梯度法

强化学习原理python篇07——策略梯度法 Average state valueAverage rewardMonte Carlo policy gradient (REINFORCE)REINFORCE示例在torch里面编写这段代码1、用随机权重初始化策略网络2、运行N个完整的片段&#xff0c;保存其(s,a,r,s)状态转移3、对于每个片段k的每一步t&…

Web中的转发与重定向

转发与重定向 一、转发和重定向的概念1.转发2.重定向 二、JavaWeb 中的转发和重定向三、SpringMVC 中的转发和重定向1.转发(1) 默认的方式(2) 完整的方式 2.重定向 四、总结 一、转发和重定向的概念 在 Web 应用中&#xff0c;转发和重定向都是用于将请求从一个页面传递到另一…

故障诊断 | 一文解决,CNN卷积神经网络故障诊断(Matlab)

文章目录 效果一览文章概述专栏介绍源码设计参考资料效果一览 文章概述 故障诊断 | 一文解决,CNN卷积神经网络故障诊断(Matlab) 专栏介绍 订阅【故障诊断】专栏,不定期更新机器学习和深度学习在故障诊断中的应用;订阅

外星人入侵(python)

前言 代码来源《python编程从入门到实践》Eric Matthes 署 袁国忠 译 使用软件&#xff1a;PyCharm Community Editor 2022 目的&#xff1a;记录一下按照书上敲的代码 alien_invasion.py 游戏的一些初始化设置&#xff0c;调用已经封装好的函数方法&#xff0c;一个函数的…