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.mzph.cn/news/658234.shtml

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

相关文章

详解OpenHarmony各部分文件在XR806上的编译顺序

大家好&#xff0c;今天我们来谈一谈编程时一个很有趣的话题——编译顺序。我知道&#xff0c;一提到编译可能大家会感到有点儿头疼&#xff0c;但请放心&#xff0c;我不会让大家头疼的。我们要明白&#xff0c;在开始写代码之前&#xff0c;了解整个程序的编译路径是十分有必…

Linux进程间通信(IPC)机制之一:共享内存

&#x1f3ac;慕斯主页&#xff1a;修仙—别有洞天 ♈️今日夜电波&#xff1a;Nonsense—Sabrina Carpenter 0:50━━━━━━️&#x1f49f;──────── 2:43 &#x1f504; ◀️ ⏸ ▶️ …

智能小程序事件系统——SJS响应事件实现方案

背景信息 如有频繁用户交互&#xff0c;在小程序上表现是比较卡顿的。例如&#xff0c;页面有 2 个元素 A 和 B&#xff0c;用户在 A 上做 touchmove 手势&#xff0c;要求 B 也跟随移动&#xff0c;movable-view 就是一个典型的例子。一次 touchmove 事件的响应过程为&#x…

可以举一反三的动态规划问题(最短编辑问题)

给定两个字符串 A 和 B&#xff0c;现在要将 A经过若干操作变为 B&#xff0c;可进行的操作有&#xff1a; 删除–将字符串 A 中的某个字符删除。插入–在字符串 A 的某个位置插入某个字符。替换–将字符串 A 中的某个字符替换为另一个字符。 现在请你求出&#xff0c;将 A 变…

第9章 安全漏洞、威胁和对策(9.1-9.2)

9.1 共担责任(shared responsibility) 共担责任是安全设计的原则&#xff0c;表明任何机构都不是孤立运行的。 相反&#xff0c;它们与世界有着千丝万缕的联系。我们使用相同的基本技术&#xff0c;遵循相同的通信协议规范&#xff0c;在同一个互联网上漫游&#xff0c;共用操…

Shell脚本——免交互

目录 一、Here Document免交互 1、免交互概述 2、语法格式 2.1示例&#xff1a;免交互方式实现对行数的统计&#xff0c;将要统计的内容置于标记EOF之间&#xff0c;直接将内容传给wc-l来统计 3、变量设定 ①变量图换成实际值 ②整行内容作为变量并输出结果 ③使输出内…

基于深度学习的鸟类识别系统matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1 卷积神经网络基础 4.2 GoogLeNet模型 4.3 鸟类识别系统 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 ............................…

STM32 IIC电量计LTC2944

1 描述 LTC2944 可在便携式产品应用中测量电池充电状态、电池电压、电池电流及其自身温度。宽输入电压范围允许使用高达 60V 的多节电池。精密库仑反向积分电流通过电池正极端子与负载或充电器之间的检测电阻器。 电压、电流和温度由内部 14 位无延迟 ΔΣ™ ADC 测量。测量结…

Linux:理解信号量以及内核中的三种通信方式

文章目录 共享内存的通信速度消息队列msggetmsgsndmsgrcvmsgctl 信号量semgetsemctl 内核看待ipc资源单独设计的模块ipc资源的维护 理解信号量总结 本篇主要是基于共享内存&#xff0c;延伸出对于消息队列和信号量&#xff0c;再从内核的角度去看这三个模块实现进程间通信 共享…

【教学类-44-04】20240130 print dashed(虚线字体)制作的数字描字帖

作品展示&#xff1a;背景需求&#xff1a; 制作绿色数字的数字描字帖 选用字体&#xff1a;print dashed&#xff08;虚线字体&#xff09; 【教学类-44-03】20240111阿拉伯数字字帖的字体&#xff08;三&#xff09;——德彪钢笔行书&#xff08;实线字体&#xff09;和pri…

如何使用Docker部署JSON Crack

文章目录 1. 在Linux上使用Docker安装JSONCrack2. 安装Cpolar内网穿透工具3. 配置JSON Crack界面公网地址4. 远程访问 JSONCrack 界面5. 固定 JSONCrack公网地址 JSON Crack 是一款免费的开源数据可视化应用程序&#xff0c;能够将 JSON、YAML、XML、CSV 等数据格式可视化为交互…

Kafka运维相关知识

目录 一、基本概念 二、技术特性 三、设计思想 四、运维建议 一、基本概念 Apache kafka 是一个分布式的基于push-subscribe的消息系统&#xff0c;它具备快速、可扩展、可持久化的特点。它的最大的特性就是可以实时的处理大量数据以满足各种需求场景&#xff1a;比如基于h…

Mysql基础篇笔记

数据表 链接&#xff1a;https://pan.baidu.com/s/1dPitBSxLznogqsbfwmih2Q 提取码&#xff1a;b0rp --来自百度网盘超级会员V5的分享 sql的执行顺序 根据顺序 也就是说 select后面的字段别名 只能在order by中使用 mysql不支持sql92的外连接 mysql不支持满外连接 可以…

java反射常用方法

反射思维导图 使用案例 package Reflection.Work.WorkTest01;import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.Arrays;public class WorkDe…

10-Nacos-灰度发布配置

用于生产上线后&#xff0c;针对指定主机IP做定向测试 1、在配置编辑中&#xff0c;勾选Beta发布&#xff0c;在文本框中勾选需要下发服务的IP地址&#xff0c;多个用英文逗号分隔。 正式版&#xff1a;这个是针对除了Beta版中指定的IP服务生效Beta版&#xff1a;灰度配置&am…

粤Z车牌申请需要什么条件?

深圳湾口岸: 上一年度纳税数额达到15万元以上的&#xff0c;可以申办1个商务车指标 上一年度的纳税数额达到50万元以上的&#xff0c;可以申办第2个商务车指标; 上一年度的纳税数额达到100万元以上的&#xff0c;可以申办第3个商务车指标; 从申办第4个商务车指标起&#xff0c;…

yolov8:pt 转 onnx

yolov8官方教程 1.安装包 我使用的是虚拟环境&#xff0c;yolov8包已经下载到本地了&#xff0c;因此直接在anaconda prompt 命令行继续安装 首先激活自己的虚拟环境&#xff0c;然后执行安装命令 pip install ultralytics yolov8中没有requirement.txt文件&#xff0c;直接…

RTC实时时钟之读取时间

1. RTC 基本介绍 RTC(Real Time Clock) 即实时时钟&#xff0c;它是一个可以为系统提供精确的时间基准的元器件&#xff0c;RTC一般采用精度较高的晶振作为时钟源&#xff0c;有些RTC为了在主电源掉电时还可以工作&#xff0c;需要外加电池供电 2. RTC 控制器 2.1 RTC的特点是:…

知识点积累系列(四)Kubernetes篇【持续更新】

云原生学习路线导航页&#xff08;持续更新中&#xff09; 本文是 知识点积累 系列文章的第四篇&#xff0c;记录日常学习中遇到的 Kubernetes 相关的知识点 1.Kubernetes琐碎知识点 1.1.为什么要有annotations annotation中除了能够记录一些额外信息&#xff0c;还可以解决k…

[BUUCTF]-PWN:cmcc_pwnme2解析

保护 ida 完整exp&#xff1a; from pwn import* context(log_leveldebug) #premote(node5.buuoj.cn,26964) pprocess(./pwnme2) addhome0x8048644 addflag0x8048682 getfile0x80485CB main0x80486F8 pop_ebp0x8048680 ret0x80483f2 pop_ebx0x8048409 pop_edi_ebp0x804867f st…