一、Prometheus介绍及部署

目录

一、什么是Prometheus?

二、特点

三、prometheus 的生态组件:

四、Prometheus架构图

五、prometheus 的工作模式

六、Prometheus 的工作流程

七、部署Prometheus

 1、prometheus配置文件介绍

2、配置文件详解

3、配置systemd服务 用systemctl来管理prometheus


一、什么是Prometheus?

Prometheus是由SoundCloud开发的开源监控报警系统和时序列数据库(TSDB)

二、特点

  1. 强大的多维度数据模型
    1. 时间序列数据通过metric和标签labels 键值对来区分
    2. 所有的metrics都可以设置任意的多维标签
  2. 强大的查询语句
  3. 易于管理
    1. prometheus server 是一个单独的二进制文件,可以直接在本地工作,不依赖于分布式存储
  4. 高效的存储
  5. 可以采用 push gata way的方式把时间序列数据推送至Prometheus server端
  6. 可以通过服务发现或者静态配置去获取监控的 targets
  7. 有多重可视化图形界面,一般和grafana配合使用

三、prometheus 的生态组件:

  1. prometheus server:用于收集和存储 时间序列数据。由3部分组成:
    1. Retrieval :负责在活跃的target主机上抓取监控指标数据
    2. storage:存储,主要是吧采集到的数据存储到磁盘
    3. promql:是prometheus 提供的查询语模块
  2. Client Library: 客户端库
  3. Push gateway:各个目标主机可上报数据到pushgateway,然后prometheus server统一从pushgateway拉取数据。
  4. exporters:收集监控样本数据,并以标准格式向P 提供
  5. alertmanager:从 Prometheus server 端接收到 alerts 后,会进行去重,分组,并路由到相应的接收方,发出报警,常见的接收方式有:电子邮件,微信,钉钉, slack等。
  6. grafana:监控仪表盘,可视化监控数据

四、Prometheus架构图

五、prometheus 的工作模式

  • Retrieval是负责定时去暴露的目标页面上去抓取采样指标数据。
  • Storage 是负责将采样数据写入指定的时序数据库存储。
  • PromQL 是Prometheus提供的查询语言模块。可以和一些webui比如grfana集成。
  • Jobs / Exporters:Prometheus 可以从 Jobs 或 Exporters 中拉取监控数据。Exporter 以 Web API 的形式对外暴露数据采集接口。
  • Prometheus Server:Prometheus 还可以从其他的 Prometheus Server 中拉取数据。
  • Pushgateway:对于一些以临时性 Job 运行的组件,Prometheus 可能还没有来得及从中 pull 监控数据的情况下,这些 Job 已经结束了,Job 运行时可以在运行时将监控数据推送到 Pushgateway 中,Prometheus 从 Pushgateway 中拉取数据,防止监控数据丢失。
  • Service discovery:是指 Prometheus 可以动态的发现一些服务,拉取数据进行监控,如从DNS,Kubernetes,Consul 中发现, file_sd 是静态配置的文件。
  • AlertManager:是一个独立于 Prometheus 的外部组件,用于监控系统的告警,通过配置文件可以配置一些告警规则,Prometheus 会把告警推送到 AlertManager。

六、Prometheus 的工作流程

  1. Prometheus 以Prometheus server 为核心,用于收集和存储时间序列数据。 Prometheus Server 从监控目标中通过 pull 方式拉取指标数据,或通过 pushgateway 把采集的数据拉取到 Prometheus server 中。
  2. Prometheus server 把采集到的监控指标数据通过 TSDB 存储到本地 HDD/SSD 中。
  3. Prometheus 采集的监控指标数据按时间序列存储,通过配置报警规则,把触发的告警通知发送到 Alertmanager。
  4. Alertmanager 通过配置报警接收方,发送报警到邮件、钉钉或者企业微信等。
  5. Prometheus 自带的 Web UI 界面提供 PromQL 查询语言,可查询监控数据。
  6. Grafana 可接入 Prometheus 数据源,把监控数据以图形化形式展示出。

七、部署Prometheus

下载安装包
官网:https://prometheus.io/
[root@rabbitmq_2 prometheus]# wget https://github.com/prometheus/prometheus/releases/download/v2.45.1/prometheus-2.45.1.linux-amd64.tar.gz
解压:
[root@rabbitmq_2 prometheus]# tar -xvf prometheus-2.45.1.linux-amd64.tar.gz 
移动到opt/
[root@rabbitmq_2 prometheus]# mv prometheus-2.45.1.linux-amd64 /opt/prometheus/prometheus
创建prometheus 用户
[root@rabbitmq_2 prometheus]# useradd -M -s /usr/sbin/nologin prometheus
[root@rabbitmq_2 prometheus]# id prometheus
uid=1001(prometheus) gid=1001(prometheus) 组=1001(prometheus)
给这个目录授权
[root@rabbitmq_2 prometheus]# chown prometheus:prometheus -R /opt/prometheus

 1、prometheus配置文件介绍

# my global config
global:scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.# scrape_timeout is set to the global default (10s).# Alertmanager configuration
alerting:alertmanagers:- static_configs:- targets:- localhost:9093# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:- "alert.yml"# - "first_rules.yml"# - "second_rules.yml"# A scrape configuration containing exactly one endpoint to scrape:
# 抓取配置列表
scrape_configs:# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.- job_name: "prometheus"# metrics_path defaults to '/metrics'# scheme defaults to 'http'.static_configs:- targets: ["localhost:9090"]# node_exporter配置- job_name: "node_exporter"scrape_interval: 15sstatic_configs:- targets: ["localhost:9100"]labels:instance: Prometheus服务器- targets: ["192.168.134.132:9100"]labels:instance: test主服务器

2、配置文件详解

# 配置文件解释
global:scrape_interval:15s //每次数据采集的时间间隔,默认为1分钟scrape_timeout:采集请求超时时间,默认为10秒evaluation_interval:执行rules的频率,默认为1分钟scrape_configs:主要用于配置被采集数据节点操作,每一个采集配置主要由以下几个参数job_name:全局唯一名称scrape_interval:默认等于global内设置的参数,设置后可以覆盖global中的值scrape_timeout:默认等于global内设置的参数
metrics_path:从targets获取meitric的HTTP资源路径,默认是/metrics
honor_labels:Prometheus如何处理标签之间的冲突。若设置为True,则通过保留变迁来解决冲突;若设置为false,则通过重命名;
scheme:用于请求的协议方式,默认是http
params:数据采集访问时HTTP URL设定的参数
relabel_configs:采集数据重置标签配置
metric_relabel_configs:重置标签配置
sample_limit:对每个被已知样本数量的每次采集进行限制,如果超过限制,该数据将被视为失
败。默认值为0,表示无限制全局配置 global
global: 用于设置全局配置项,这些配置项会应用于所有的抓取配置和路由规则scrape_interval: 定义 Prometheus 服务器定期抓取指标的时间间隔,默认为 1 分钟(1m)evaluation_interval: 定义 Prometheus 服务器执行规则评估的时间间隔,默认为 1 分钟(1m)external_labels: 定义 Prometheus 实例应用于所有接收的指标的标签列表。这些标签可用于识别不同的 Prometheus 实例,或标识集群、环境等信息scrape_configs:主要用于配置被采集数据节点操作,每一个采集配置主要由以下几个参数job_name:全局唯一名称scrape_interval:默认等于global内设置的参数,设置后可以覆盖global中的值scrape_timeout:默认等于global内设置的参数
告警通知 alerting
alerting: 触发告警后通知方式alertmanagers: 定义了告警管理器的地址,触发告警后会委托给管理器处理。在上面的例子中,告警管理器的地址是 localhost:9093,并且这个地址是静态配置的,也就是说 Prometheus 不会动态地发现新的告警管理器
规则文件加载 rule_files
rule_files: 加载告警规则文件列表在这个示例中,定义了 Prometheus 加载的规则文件列表,包括了一个名为 memory_usage.rules 的告警规则文件和一个名为 disk_usage.rules 的记录规则文件
根据正则表达式加载规则文件,如 /opt/bitnami/prometheus/rules/*rule.yml 是以 /etc/prometheus/rules/ 目录下的所有以 rules 结尾的文件都将作为规则文件进行加载scrape_configs:抓取目标的指标 scrape_config: 定义数据抓取目标的配置job_name: 用于定义要抓取的目标的名称,可以是单个目标或者多个目标。这些目标可以是HTTP、HTTPS、DNS、SNMP、JMX等协议。Prometheus会使用这个名称进行区分,当一个目标被成功抓取时,Prometheus会给它一个时间戳并存储相应的指标。在查询时,可以使用job_name来选择要查询的指标源metrics_path: 用于指定指标数据的路径,上面的例子中的 JVM 是从 /actuator/prometheus 路径获取对应的指标。如果没有可以去掉或者注释掉 #metrics_path: '/actuator/prometheus'static_configs: 是一种配置方式,用于定义一组静态的目标列表targets: 用于定义需要抓取指标的目标的列表。它指定了要监控的目标的IP地址和端口号,让Prometheus定期去访问这些地址,抓取相应的指标数据labels: 可以为每个job_name和target添加一些labels,以便更好地描述和区分指标数据,可以通过这些labels来查询和过滤指标数据,并在报警规则中使用这些labels来进行更加精准的报警。在上述例子的 JVM 则是用于标识各类环境或分组。
注意 : labels 如果要使用中文,必须确认文件格式是否为 UTF-8,可以的话尽量使用 vscode 查看一下,不然可能会导致 Prometheus 启动失败

3、配置systemd服务 用systemctl来管理prometheus

vim  /usr/lib/systemd/system/prometheus.service
[Unit]
Description=Prometheus Server
Documentation=https://prometheus.io
After=network.target[Service]
Type=simple
User=prometheus
Group=prometheus
Restart=on-failure
ExecStart=/opt/prometheus/prometheus/prometheus \
--config.file=/opt/prometheus/prometheus/prometheus.yml \
--storage.tsdb.path=/opt/prometheus/prometheus/data/ \
--storage.tsdb.retention=60d \
--web.enable-lifecycle[Install]
WantedBy=multi-user.target配置完之后 启动
[root@rabbitmq_2 system]# systemctl start prometheus.service [root@rabbitmq_2 system]# systemctl status prometheus.service 
● prometheus.service - Prometheus ServerLoaded: loaded (/usr/lib/systemd/system/prometheus.service; disabled; vendor preset: disabled)Active: active (running) since 三 2023-11-22 16:41:35 CST; 4s ago
查看web界面是否正常
http://192.168.153.129:9090/
监控指标:
http://192.168.153.129:9090/metrics
都正常

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

十天学会单片机可能吗?单片机入门需要多久?

在开始前我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「单片机的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“888”之后私信回复“888”&#xff0c;全部无偿共享给大家&#xff01;&#xff01;&#xff01; 十天学“会”单片机&#xf…

【Vue3进阶】- Pinia

什么是Pinia Pinia 是 Vue 的专属状态管理库&#xff0c;它允许你跨组件或页面共享状态。它提供了类似于 Vuex 的功能&#xff0c;但比 Vuex 更加简单和直观。 需要在多个组件之间共享状态或数据时使用 Pinia 的 store&#xff0c;这样可以避免 props 和 eventBus 等传统方法…

计算机毕业设计 | vue+springboot线上考试 在线测试系统(附源码)

1&#xff0c;项目介绍 项目背景 在线考试借助于网络来进行&#xff0c;传统考试所必备的考场和监考对于在线考试来说并不是必要项目&#xff0c;因此可以有效减少组织考试做需要的成本以及设施。同时&#xff0c;由于在线考试系统本身具有智能阅卷的功能&#xff0c;也大大减…

不容错过的秘籍:JavaScript数组的创建和使用详解

在编程的世界里&#xff0c;数据是构建一切的基础。而在JavaScript中&#xff0c;有一种特殊且强大的数据结构&#xff0c;它就是——数组。 今天&#xff0c;我们就来一起探索数组的奥秘&#xff0c;从创建到使用&#xff0c;一步步掌握这个重要的工具。 一、什么是数组 数…

AI原生实践:测试用例创作探索

测试用例作为质量保障的核心&#xff0c;影响着研发-测试-发布-上线的全过程&#xff0c;如单元测试用例、手工测试用例、接口自动化用例、UI 自动化用例等&#xff0c;但用例撰写的高成本尤其是自动化用例&#xff0c;导致了用例的可持续积累、更新和迭代受到非常大制约。长久…

振弦采集仪在岩土工程监测中的数据处理与结果展示

振弦采集仪在岩土工程监测中的数据处理与结果展示 河北稳控科技振弦采集仪是岩土工程监测中常用的一种设备&#xff0c;用于采集地下土体振动信号&#xff0c;通过对数据的处理与结果的展示&#xff0c;可以有效地评估土体的动力特性和工程的稳定性。 振弦采集仪通过安装在土体…

(44)5.11第五章树和二叉树(树的基本概念)

1.树的基本概念 2.基本术语 2.1结点之间的关系 2.2结点&#xff0c;树的属性描述 2.3数和森林 2.4有序树和无序树 小结 3.树的性质 3.1树的常考性质 小结

又一位互联网大佬转行当网红,能写进简历么?

最近半个月&#xff0c;有两个中年男人仿佛住进了热搜。 一个是刚刚辟谣自己“卡里没有冰冷的 40 亿”的雷军&#xff0c;另一个则是在今年年初就高呼“如果有可能&#xff0c;企业家都要去当网红”的 360 创始人周鸿祎。 他也确实做到了。 先是作为当年 3Q 大战的当事人&…

手机格式化后数据还能恢复吗?恢复指南来了!

“手机被人捡走了&#xff0c;找回来后发现被格式化了&#xff0c;照片和聊天记录所有数据都没有了。手机格式化后数据还能恢复吗&#xff1f;难过到无法自拔&#xff0c;有没有类似情况但是恢复了数据的朋友回答一下&#xff1f;” 手机格式化是指将存储设备上的所有数据批量…

数据中心运维智能化管理 效果多炸裂?

从人工走向智能&#xff0c;一切的变化来源于数据中心规模化、系统复杂性和设备多样性的挑战&#xff0c;将平台运维的重要性推到了高点。 #01 为何要智能化&#xff1f; — 企业IT建设不断深入和完善&#xff0c;业务对系统稳定性和连续性的依赖&#xff0c;智能化将是更好…

Substrate 入门课第 14 期圆满结束,岗位内推直达知名 Web3 项目!

Substrate&#xff0c;一个完全免费且开源的框架&#xff0c;利用 Rust 语言的强大功能和安全性&#xff0c;为全球开发者提供了一个高效和灵活的开发环境。借助其模块化的设计&#xff0c;即使是新手开发者也能在短短 15 分钟内搭建起定制化的区块链。自 2020 年以来&#xff…

AIGC|将GPTBots与10000+主流软件连接,实现应用场景全覆盖

一、自动化工作流的无限可能&#xff0c;由AI带来 当前市场上存在许多自动化工作流工具&#xff0c;这些工具在很大程度上提升了人们的工作效率&#xff0c;为企业节省了大量时间和人力成本。然而&#xff0c;这些工具并非万能&#xff0c;它们在实际应用中仍存在一定的局限性…

课程设计 大学生竞赛系统

课程设计 大学生竞赛系统 wx:help-assignment 学生用户&#xff1a; wx:help-assignment 首页&#xff1a;推荐一些竞赛&#xff0c;热门活动等&#xff1b; 广场&#xff1a;用户可以通过广场来发表动态&#xff0c;同时也可以查看别人发布的动态&#xff0c;并且可以 关注…

2D-3D 转换中,为什么世界坐标要扩充成四维, 图像坐标要扩充成三维?

总结 在计算机视觉和图形学中&#xff0c;将世界坐标扩充成四维&#xff0c;以及图像坐标扩充成三维&#xff0c;是为了便于运用齐次坐标&#xff08;homogeneous coordinates&#xff09;进行坐标变换。这样的做法简化了投影变换的数学表示和计算&#xff0c;特别是在三维场景…

软件从立项申报到验收交付全资料整理(项目经理)

软件文档交付清单是指在软件开发项目完成后&#xff0c;开发团队需要准备的一份详细清单&#xff0c;用于确保交付的软件产品符合客户需求并达到预期的质量标准。以下是软件文档交付清单中可能包含的一些关键要素 项目启动阶段&#xff1a; 项目计划书/立项报告&#xff1a;描…

来看一段有趣的代码

最近实现发票连续打印时&#xff0c;直接copy其他项目代码来用&#xff0c;主要是对文件的处理&#xff0c;这部分可以不涉及数据库操作&#xff0c;这种功能也很方便写单元测试。在写单元测试图片转PDF功能时&#xff0c;发现了一段有趣的代码&#xff1a; protected void sc…

瑞芯微 rk3588 Linux系统备份还原 StepbyStep

1.系统备份 1.1 将瑞芯微平台嵌入式系统的root ssh 权限开通 step1:sudo vi /etc/ssh/sshd_config step2: 找到PermitRootLogin,把开关打开&#xff1a; PermitRootLogin yes step3:重启ssh服务 sudo systemctl restart sshd 1.2.使用瑞芯微的打包脚本把嵌入式系统系统打包 这…

操作系统实战(二)(linux+C语言)

实验内容 通过Linux 系统中管道通信机制&#xff0c;加深对于进程通信概念的理解&#xff0c;观察和体验并发进程间的通信和协作的效果 &#xff0c;练习利用无名管道进行进程通信的编程和调试技术。 管道pipe是进程间通信最基本的一种机制,两个进程可以通过管道一个在管道一…

代码审计平台sonarqube的安装及使用

docker搭建代码审计平台sonarqube 一、代码审计关注的质量指标二、静态分析技术分类三、使用sonarqube的目的四、sonarqube流程五、docker快速搭建sonarqube六、sonarqube scanner的安装和使用七、sonarqube对maven项目进行分析八、sonarqube分析报告解析九、代码扫描规则定制十…

激光雷达赋能盲人导航:精准安全与实施挑战并存

在当今科技的推动下&#xff0c;一款名为“蝙蝠避障”专门为盲人设计的辅助应用正逐渐成为他们独立出行的重要工具&#xff0c;特别是那些融入了激光雷达技术的应用&#xff0c;为盲人导航提供了前所未有的支持。然而&#xff0c;任何技术都有其两面性&#xff0c;接下来我们将…