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/prometheus
 
cat /usr/local/prometheus/prometheus.yml | grep -v "^#"
global:					#用于prometheus的全局配置,比如采集间隔,抓取超时时间等
  scrape_interval: 15s			#采集目标主机监控数据的时间间隔,默认为1m
  evaluation_interval: 15s 		#触发告警生成alert的时间间隔,默认是1m
  # scrape_timeout is set to the global default (10s).
  scrape_timeout: 10s			#数据采集超时时间,默认10s
 
alerting:				#用于alertmanager实例的配置,支持静态配置和动态服务发现的机制
  alertmanagers:
    - static_configs:
        - targets:
          # - alertmanager:9093
 
rule_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-lifecycle
  
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure
 
[Install]
WantedBy=multi-user.target
EOF
 
 
systemctl start prometheus
systemctl enable prometheus
 
netstat -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.tcpstat
 
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure
 
[Install]
WantedBy=multi-user.target
EOF
 
(3)启动 
systemctl start node_exporter
systemctl enable node_exporter
 
netstat -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.tcpstat
 
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure
 
[Install]
WantedBy=multi-user.target
EOF
 
(3)启动 
systemctl start node_exporter
systemctl enable node_exporter
 
netstat -natp | grep 9100

(3)修改 prometheus 配置文件,加入到 prometheus 监控中
vim /usr/local/prometheus/prometheus.yml
#在尾部增加如下内容
  - job_name: nodes
    metrics_path: "/metrics"
    static_configs:
    - targets:
	  - 192.168.10.10:9100
	  - 192.168.10.20:9100
	  - 192.168.10.30:9100
      labels:
        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.rpm

systemctl start grafana-server
systemctl enable grafana-server

netstat -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.mfbz.cn/a/361059.html

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

相关文章

iOS App审核状态和审核时间管理指

引言 对于一款开发完成并准备上架的 iOS 应用程序来说&#xff0c;通过苹果公司的审核是非常重要的一步。苹果公司会对应用程序进行严格的检查&#xff0c;以确保应用程序的质量和安全性。本文将介绍 iOS 应用程序审核的流程和时间&#xff0c;希望能够帮助开发者更好地了解和…

《Is dataset condensation a silver bullet for healthcare data sharing?》

一篇数据浓缩在医疗数据集应用中的论文。 其实就是在医疗数据集上使用了data condensation的方法&#xff0c;这里使用了DM的方式&#xff0c;并且新增了浓缩时候使用不同的网络。 1. 方法 数据浓缩DC的目的是&#xff1a; E x ∼ P D [ L ( φ θ O ( x ) , y ) ] ≃ E x ∼…

CPU-Cache结构查看

参考【Ubuntu 查看 CPU 缓存】 本文主要介绍cpu的cache查看&#xff0c;以供读者能够理解该技术的定义、原理、应用。 &#x1f3ac;个人简介&#xff1a;一个全栈工程师的升级之路&#xff01; &#x1f4cb;个人专栏&#xff1a;计算机杂记 &#x1f380;CSDN主页 发狂的小花…

【昕宝爸爸小模块】深入浅出详解之常见的语法糖

深入浅出详解之常见的语法糖 一、&#x1f7e2;关于语法糖的典型解析二、&#x1f7e2;如何解语法糖&#xff1f;2.1&#x1f7e2;糖块一、switch 支持 String 与枚举2.2&#x1f4d9;糖块二、泛型2.3&#x1f4dd;糖块三、自动装箱与拆箱2.4&#x1f341;糖块四、方法变长参数…

什么是图形组态软件?可视化组态工具的特点

组态软件的定义 组态软件主要作为SCADA系统及其他控制系统的上位机人机界面的开发平台&#xff0c;为用户提供快速地构建工业自动化系统数据采集和实时监控功能服务。它使用灵活的组态方式&#xff0c;提供快速构建工业自动控制系统监控功能的通用层次的软件工具。 组态软件的…

【学网攻】 第(17)节 -- 命名ACL访问控制列表

系列文章目录 目录 前言 一、ACL(访问控制列表)是什么&#xff1f; 二、实验 1.引入 总结 文章目录 【学网攻】 第(1)节 -- 认识网络【学网攻】 第(2)节 -- 交换机认识及使用【学网攻】 第(3)节 -- 交换机配置聚合端口【学网攻】 第(4)节 -- 交换机划分Vlan【学网攻】 第…

对于this.$nextTick代码的理解

我们都知道DOM的更新是异步的,Vue的绑定原理就是用数据区驱动视图,视图也能驱动数据&#xff0c;两者是双向绑定的。 如何立马获取到更新之后的DOM呢&#xff1f; 可以使用: <template><div class"" ref"aa">{{ a }}<button click"f…

TortoiseSVN各版本汉化包下载

首先进入下载版本列表 1.下载地址&#xff1a;https://sourceforge.net/projects/tortoisesvn/files ​ 2.选择自己版本进入​ 3.选择Language Packs进入&#xff0c;选择对应语言包下载。 ​ 4.在TortoiseSVN根目录下点击安装即可。 ​

Leetcode—1265. 逆序打印不可变链表【中等】Plus

2024每日刷题&#xff08;一零三&#xff09; Leetcode—1265. 逆序打印不可变链表 实现代码 /*** // This is the ImmutableListNodes API interface.* // You should not implement it, or speculate about its implementation.* class ImmutableListNode {* public:* v…

Django模型(六)

一、其它查询 文档:https://docs.djangoproject.com/zh-hans/4.1/ref/models/querysets/#count 1.1、排序 Queryset.order_by(*fields) 默认情况下,QuerySet 返回的结果是按照模型 Meta 中的 ordering 选项给出的排序元组排序的 可以通过使用 order_by 方法在每个 QueryS…

《QDebug 2024年1月》

一、Qt Widgets 问题交流 1. 二、Qt Quick 问题交流 1.Repeator 的 delegate 在 remove 移除时的注意事项 Qt Bug Tracker&#xff1a;https://bugreports.qt.io/browse/QTBUG-47500 Repeator 在调用 remove 函数之后&#xff0c;对应的 Item 会立即释放&#xff0c;后续就…

百川终入海 ,一站式海量数据迁移工具 X2Doris 正式发布

在大数据分析领域&#xff0c;Apache Doris 作为广受认可的开源实时数据仓库&#xff0c;已经在越来越多行业用户的真实业务场景中得到广泛应用&#xff0c;成为许多企业数据分析基础设施的重要基座。尤其在过去一年多的时间里&#xff0c;越来越多企业选择基于 Apache Doris 进…

【Linux驱动】块设备驱动(一)—— 注册块设备

针对块设备驱动将分为两部分介绍&#xff0c;第一部分是注册块设备&#xff0c;即将块设备成功添加到内核&#xff1b;第二部分是介绍如何读写块设备&#xff0c;因为没有实际块设备&#xff0c;这里选择使用内存来模拟块设备。 一、认识块设备 1、什么是块设备 块设备针对的…

抵御.360勒索病毒威胁:解密文件的有效方法与预防措施

导言&#xff1a; 近来&#xff0c;网络犯罪的一种新型形式——.360勒索病毒&#xff0c;备受关注。这种病毒通过加密用户文件&#xff0c;要求支付赎金以获取解密密钥。本文91数据恢复将深入介绍.360勒索病毒的特点&#xff0c;同时提供一些有效的恢复方法&#xff0c;并分享…

盘点那些硬件+项目学习套件:STM32MP157 Linux开发板及入门常见问题解答

华清远见20岁了~过去3年里&#xff0c;华清远见研发中心针对个人开发板业务&#xff0c;打造了多款硬件项目学习套件&#xff0c;涉及STM32单片机、嵌入式、物联网、人工智能、鸿蒙、ESP32、阿里云IoT等多技术方向。华清远见20岁了~过去3年里&#xff0c;华清远见研发中心针对个…

资深Android逆袭、华为鸿蒙为安卓程序员开辟了一条新道路

本文章主要从以下5个方面来展开聊聊这个话题&#xff1a; 1.什么是鸿蒙 2.鸿蒙系统发展时间线 3.鸿蒙是套壳Android吗&#xff1f; 4.鸿蒙的生态&#xff08;用户以及开发者&#xff09; 5.一些建议 1月18日&#xff0c;在鸿蒙生态千帆启航仪式上&#xff0c;华为宣布了继鸿蒙4…

【排序算法】C语言实现随机快排,巨详细讲解

文章目录 &#x1f680;前言&#x1f680;快排的核心过程partition&#xff08;划分过程&#xff09;&#x1f680;快排1.0&#x1f680;随机快速排序&#x1f680;稳定性 &#x1f680;前言 铁子们好啊&#xff01;继续我们排序算法今天要讲的是快排&#xff0c;通常大家所说…

ROS方向第二次汇报(2)

文章目录 1.本方向内学习内容&#xff1a;1.1.动作&#xff1a;1.1.1.案例接口定义:1.1.2.案例通信模型&#xff1a;1.1.3.服务器端代码&#xff1a;1.1.4.客户端源代码&#xff1a;1.1.5.动作命令行操作&#xff1a; 1.2.参数&#xff1a;1.2.1.查看参数列表&#xff1a;1.2.2…

14篇最新Transformer热门论文!涵盖注意力机制、架构改进、适用性扩展等

在深度学习技术的飞速发展中&#xff0c;Transformer模型无疑成为了当今研究的热点&#xff0c;它凭借其独特的架构和强大的表达能力&#xff0c;在自然语言处理、计算机视觉和语音识别等领域取得了令人瞩目的成果。 今天&#xff0c;特意为大家整理了14篇Transformer热门论文&…

locust--python实现的分布式性能测试工具

1.locust特点&#xff1a; 1.1 支持Python编写测试用例方案&#xff1b; 1.2 使用requests发送http请求&#xff1b; 1.3 使用协程实现&#xff0c;高并发时消耗更低&#xff1b; 1.4 使用Flask提供 Web UI&#xff1b; 1.5 有第三方插件支持扩展&#xff1b; 2.创建locust 性能…
最新文章