Linux之prometheus安装和使用简介(一)
一、prometheus简介
普罗米修斯Prometheus是一个开源系统监控和警报工具包,最初构建于SoundCloud。自2012年成立以来,许多公司和组织都采用了普罗米修斯,该项目拥有非常活跃的开发人员和用户社区。它现在是一个独立的开源项目,独立于任何公司进行维护。为了强调这一点,并澄清该项目的治理结构,普罗米修斯于2016年加入云原生计算基金会,成为继Kubernetes之后的第二个托管项目。以下是普罗米修斯的主要特点和优势:
- 强大的指标收集:Prometheus能够从各种目标系统中收集丰富的监控指标。
- 多维数据模型:它支持通过标签对数据进行灵活的分类和查询。
- 灵活的配置:可以方便地定义监控目标和采集规则。
- 实时查询:提供快速的实时数据查询功能。
- 社区活跃:拥有庞大且活跃的社区,不断推动其发展和完善。
- 与多种工具集成:能与许多其他系统和工具进行良好的集成。
- 可视化支持:常与Grafana等可视化工具搭配,实现直观的监控展示。
- 与Zabbix的区别:Prometheus采用多维数据模型,主要基于主动拉取数据,社区非常活跃,扩展性好,告警管理相对简洁,在云原生环境中广泛应用。相比之下,Zabbix使用传统的监控项和值的方式,支持主动和被动两种监控方式,也有活跃社区但Prometheus在云原生领域更流行,扩展性也不错但可能相对复杂一些,有较为完善的告警配置和管理体系,也在不断适应云原生场景但最初并非为云原生设计。
Prometheus的主要组件包括Prometheus Server、Exporters、Alertmanager和Pushgateway。这些组件共同构成了Prometheus的监控生态系统,使得用户可以方便地收集、存储、查询和处理各种监控数据。下面详细解释每个主要组件的作用和重要性:
- Prometheus Server:Prometheus Server是整个监控系统的核心,负责从各种监控目标(如Kubernetes集群、Docker容器、主机等)中定期拉取(pull)监控指标数据,并将其存储在本地的时间序列数据库中。它还提供了灵活的查询语言(PromQL),用于对存储的数据进行查询和分析。此外,Prometheus Server支持多种服务发现机制,如文件、DNS、Consul、Kubernetes等,能够动态管理监控目标。
- Exporters:Exporters是一组工具,用于将那些本身不支持直接暴露监控指标的应用程序或服务的指标数据转换为Prometheus可以抓取的格式。例如,Node Exporter用于收集服务器节点的物理指标状态数据(如CPU、内存、磁盘使用情况等),而MySQL Exporter则用于收集MySQL数据库的指标数据。其他常见的Exporter还包括Blackbox Exporter(用于网络探测)、Process Exporter(用于监控进程状态)等。
- Alertmanager:Alertmanager是Prometheus体系中处理报警的组件,它根据Prometheus Server中定义的警报规则接收警报通知,然后根据配置的处理流程将警报通知发送给指定的接收者(如邮件、Slack、企业微信、钉钉等)。Alertmanager支持告警的去重、分组和路由配置,以及告警的沉默和抑制功能,以减少不必要的告警噪音。
- Pushgateway:Pushgateway是一个可选的组件,主要用于接收由短期作业或批处理作业生成的指标数据,并允许Prometheus Server从Pushgateway中拉取这些数据。当某些作业或服务由于网络限制或其他原因无法直接被Prometheus Server访问时,可以使用Pushgateway作为中间缓存层来收集和转发这些指标数据。
- 除了上述核心组件外,Prometheus生态系统中还有一些其他的工具和集成选项,如Grafana(用于数据可视化和监控平台的开源工具,可与Prometheus无缝集成),以及各种客户端库(Client Libraries),它们为开发者提供了在应用程序中实现自定义指标的方式。
总的来说,Prometheus通过这些组件的协同工作,为用户提供了一个强大且灵活的监控和告警解决方案,特别适合于云原生环境,如Kubernetes集群的监控。了解这些组件的功能和工作原理对于有效使用Prometheus至关重要。
二、安装步骤
博文实验环境如下:
- 操作系统:centos7.6
- Prometheus版本:2.52.0
- node-exporter版本:1.8.1
1、创建部署目录
[root@s76 opt]# mkdir prometheus
2、官网下载prometheus最新安装包
博主安装部署时最新版本是2.52.0,发布日期是2024年5月7日,我们可以访问普罗米修斯官网下载最新版本。
[root@s76 prometheus]# wget https://github.com/prometheus/prometheus/releases/download/v2.52.0/prometheus-2.52.0.linux-amd64.tar.gz
3、解压安装包
[root@s76 prometheus]# tar -zxvf prometheus-2.52.0.linux-amd64.tar.gz
[root@s76 prometheus]# ln -s prometheus-2.52.0.linux-amd64/ prometheus
4、启动程序
[root@s76 prometheus]# ./prometheus --version
prometheus, version 2.52.0 (branch: HEAD, revision: 879d80922a227c37df502e7315fad8ceb10a986d)
build user: root@1b4f4c206e41
build date: 20240508-21:56:43
go version: go1.22.3
platform: linux/amd64
tags: netgo,builtinassets,stringlabels
[root@s76 prometheus]# ./prometheus
5、开通防火墙策略
[root@s76 prometheus]# firewall-cmd --zone=public --add-port=9090/tcp --permanent
[root@s76 prometheus]# firewall-cmd --reload
[root@s76 prometheus]# setenforce 0
6、访问Prometheus WEB页面
三、使用简介(添加node节点监控目标)
1、修改配置文件prometheus.yml
[root@s76 prometheus]# vim prometheus.yml
2、重新启动程序
[root@s76 prometheus]# ./prometheus
3、查看targets
4、被监控节点下载node-exporter
如下第4、5、6步是在被监控主机上执行。
[root@mytool opt ]# wget https://github.com/prometheus/node_exporter/releases/download/v1.8.1/node_exporter-1.8.1.linux-amd64.tar.gz
5、解压软件包并启动
[root@mytool opt]# tar -zxvf node_exporter-1.8.1.linux-amd64.tar.gz
[root@mytool opt]# ln -s node_exporter-1.8.1.linux-amd64 node_exporter
[root@mytool opt]# cd node_exporter
[root@mytool node_exporter]# ./node_exporter
6、查看监听端口服务
7、再次查看targets
再次登录Prometheus服务器WEB控制台查看监控目标状态,发现mytool监控节点status变为绿色up状态。
四、开机自启动配置
1、创建软链接
[root@s76 prometheus]# ln -s /opt/prometheus/prometheus-2.52.0.linux-amd64 /usr/local/prometheus
2、添加Prometheus用户并授权
[root@s76 prometheus]# groupadd prometheus
[root@s76 prometheus]# useradd -g prometheus -s /sbin/nologin prometheus
[root@s76 prometheus]# chown -R prometheus:prometheus /usr/local/prometheus/
3、设置开机启动参数
参照如下配置文件,创建开机自启动服务配置文件。
[root@s76 prometheus]# touch /usr/lib/systemd/system/prometheus.service
[root@s76 prometheus]# chown prometheus:prometheus /usr/lib/systemd/system/prometheus.service
[root@s76 prometheus]# vim /usr/lib/systemd/system/prometheus.service
[Unit]
Description=Prometheus
Documentation=https://prometheus.io/
After=network.target[Service]
# Type设置为notify时,服务会不断重启
Type=simple
User=prometheus
# --storage.tsdb.path是可选项,默认数据目录在运行目录的./dada目录中
ExecStart=/usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml --storage.tsdb.path=/usr/local/prometheus/data
Restart=on-failure[Install]
WantedBy=multi-user.target
4、启动Prometheus服务
[root@s76 prometheus]# systemctl start prometheus
5、查看Prometheus服务状态
[root@s76 prometheus]# netstat -tnpl |grep 9090
tcp6 0 0 :::9090 ::😗 LISTEN 47654/prometheus
6、Prometheus管理
配置了开机启动服务配置文件后,我们就可以通过systemctl命令进行管理Prometheus服务的启动、停止和状态查看啦。
相关文章:

Linux之prometheus安装和使用简介(一)
一、prometheus简介 普罗米修斯Prometheus是一个开源系统监控和警报工具包,最初构建于SoundCloud。自2012年成立以来,许多公司和组织都采用了普罗米修斯,该项目拥有非常活跃的开发人员和用户社区。它现在是一个独立的开源项目,独立…...
orcle数据表空间操作sql
orcle数据表空间操作sql 1.查询表空间路径: select t1.name,t2.name from v$tablespace t1,v$datafile t2 where t1.ts#t2.ts#2.删除表空间和空间里的表: drop tablespace LTSYSDATA01 including contents and datafiles;1、表空间的路径、名称查询&…...

【Unity Android】Unity链接安卓手机调试
一、物理连接手机 1.USB数据线链接 2.打开开发者模式 大部分手机在手机设置->系统管理->关于手机->软件版本型号中,点击7次以上,来开启系统管理中的开发者模式选项。 3.打开USB调试 打开开发者模式后,开启USB调试 二、Unity中…...

数据结构与算法笔记:高级篇 - 概率统计:如何利用朴素贝叶斯算法过滤垃圾短信?
概述 上篇文章我们讲到,如何用位图、布隆过滤器,来过滤重复数据。本章,我们再讲一个跟过滤相关的问题,如果过滤垃圾短信? 垃圾短信和骚扰电话,我想每个人都收到过吧?买房、贷款、投资理财、开…...

vue3中通过vditor插件实现自定义上传图片、录入echarts、脑图、markdown语法的编辑器
1、下载Vditor插件 npm i vditor 我的vditor版本是3.10.2,大家可以自行选择下载最新版本 官网:Vditor 一款浏览器端的 Markdown 编辑器,支持所见即所得(富文本)、即时渲染(类似 Typora)和分屏 …...

揭示数据库内核的奥秘--手写数据库toadb开源项目
揭示数据库内核的奥秘–手写数据库toadb 数据为王的时代 在信息化时代,数据已成为企业和应用不可或缺的核心,而数据库不仅是数据的仓库,更是支撑业务决策、系统运行的基石。对于求职者而言,掌握数据库知识已成为求职市场上的必考…...
Grafana调整等待时间,避免Gateway timeout报错
使用Grafana的HTTP时,有些即时数据需要运算量与时间,而grafana的默认timeout是30秒,因此需要通过修改配置文件,避免grafana提前中断连接 修改原始配置文件: 删除;调整timeout30为timeout60 # This setting also applies to cor…...
MetaGPT全面指南:多代理协作框架的深入解析与应用
文章目录 理解MetaGPT1.1 MetaGPT的基础1.2 MetaGPT的独特之处1.3 MetaGPT在AI领域的应用 MetaGPT的工作原理2.1 训练2.2 微调2.3 推理2.4 多代理协作的概念2.5 如何分配角色给GPTs2.6 复杂任务的完成过程 实际应用3.1 客户支持3.2 内容创作3.3 教育3.4 医疗保健3.5 在企业中的…...
图的关键路径算法
关键路径算法(Critical Path Method, CPM)是一种用于项目管理和调度的技术,通过分析项目任务的最早开始时间、最晚完成时间和总时差,找出项目中关键的任务路径。这条关键路径决定了项目的最短完成时间,因为关键路径上的…...

模型情景制作-冰镇啤酒
夏日炎炎,当我们在真实世界中开一瓶冰镇啤酒的时候,我们也可以为模型世界中的人物添加一些冰镇啤酒。 下面介绍一种快速酒瓶制造方法,您只需要很少工具: 截取尽量直的流道(传说中的板件零件架),将其夹在您的…...
网页实现黑暗模式的几种方式
## 实现暗黑模式的最佳方式 在现代网页设计中,暗黑模式已成为提高用户体验的重要功能。实现暗黑模式不仅可以减少用户眼睛的疲劳,还能在某些情况下节省设备电量。本文将介绍实现暗黑模式的几种最佳方式。 ### 使用 CSS 变量 (CSS Custom Properties) …...

VMware Workstation环境下,邮件(E-Mail)服务的安装配置,并用Windows7来验证测试
需求说明: 某企业信息中心计划使用IP地址17216.11.0用于虚拟网络测试,注册域名为xyz.net.cn.并将172.16.11.2作为主域名的服务器(DNS服务器)的IP地址,将172.16.11.3分配给虚拟网络测试的DHCP服务器,将172.16.11.4分配给虚拟网络测试的web服务器,将172.16.11.5分配给FTP服务器…...
《信号与系统》复试建议
目录 第一章 绪论 第二章 连续时间系统的时域分析 第三章 傅立叶变换(重点) 第四章 拉普拉斯变换(重点) 第五章 傅立叶变换在通信系统中的应用 第六章 信号的矢量空间分析 第七章 离散时间系统的时域分析 第八章 Z变换与离…...
代码随想录训练营Day45
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、打家劫舍二、打家劫舍2三、打家劫舍3 前言 提示:这里可以添加本文要记录的大概内容: 今天是跟着代码随想录刷题的第45天ÿ…...

NAT和内网穿透
NAT(Network Address Translation,网络地址转换)是一种广泛应用于计算机网络的技术,其主要目的是为了解决IPv4地址空间的短缺问题,并且增强网络安全。NAT技术允许一个私有网络内的多个设备共享一个或几个全局唯一的公共…...
android | 声明式编程!(笔记)
https://www.jianshu.com/p/c133cb7cac21 讲的不错 命令式UI (how to do) 声明式UI (what to do) what to do 也许有人会说Data Binding不是可以让XML自己"动"起来吗?没有错,Data Binding其实就是Compose诞生之前的一种声明式U方案,谷歌曾…...

友力科技IDC机房搬迁方案流程分享
机房搬迁流程 系统搬迁实施流程包括:准备、拆卸、装运、安装、调试等五个流程,具体如下: 准备:包括相关人员和设备准备、新机房环境准备、网络环境、备份、现场所有设备打标签、模块、设备准备等准备工作。拆卸:主要只核心设备下…...

仿迪恩城市门户分类信息网discuz模板
Discuz x3.3模板 仿迪恩城市门户分类信息网 (GBK) Discuz模板 仿迪恩城市门户分类信息网(GBK)...

Windows 注册表是什么?如何备份注册表?
Windows注册表(Windows Registry)是微软Windows操作系统中的一个重要组件,用于存储系统和应用程序的配置信息和选项。下面就给大家详细讲解一下什么是注册表。 注册表的概念 Windows 注册表是一个集中管理的数据库,存储了系统、…...

B+树与索引解析
文章目录 B树与索引简介几个关键点应用案例场景描述索引创建查询操作更新操作并发处理 Python代码示例 B树与索引简介 B树是一种在计算机科学中广泛使用的自平衡的树数据结构,它能保持数据排序,并且搜索、插入和删除操作的时间复杂度都是O(log n)。B树被…...
Python爬虫实战:研究MechanicalSoup库相关技术
一、MechanicalSoup 库概述 1.1 库简介 MechanicalSoup 是一个 Python 库,专为自动化交互网站而设计。它结合了 requests 的 HTTP 请求能力和 BeautifulSoup 的 HTML 解析能力,提供了直观的 API,让我们可以像人类用户一样浏览网页、填写表单和提交请求。 1.2 主要功能特点…...

深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录
ASP.NET Core 是一个跨平台的开源框架,用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录,以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...
React Native 开发环境搭建(全平台详解)
React Native 开发环境搭建(全平台详解) 在开始使用 React Native 开发移动应用之前,正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南,涵盖 macOS 和 Windows 平台的配置步骤,如何在 Android 和 iOS…...

MongoDB学习和应用(高效的非关系型数据库)
一丶 MongoDB简介 对于社交类软件的功能,我们需要对它的功能特点进行分析: 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具: mysql:关系型数据库&am…...

el-switch文字内置
el-switch文字内置 效果 vue <div style"color:#ffffff;font-size:14px;float:left;margin-bottom:5px;margin-right:5px;">自动加载</div> <el-switch v-model"value" active-color"#3E99FB" inactive-color"#DCDFE6"…...

华为OD机试-食堂供餐-二分法
import java.util.Arrays; import java.util.Scanner;public class DemoTest3 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseint a in.nextIn…...

【配置 YOLOX 用于按目录分类的图片数据集】
现在的图标点选越来越多,如何一步解决,采用 YOLOX 目标检测模式则可以轻松解决 要在 YOLOX 中使用按目录分类的图片数据集(每个目录代表一个类别,目录下是该类别的所有图片),你需要进行以下配置步骤&#x…...
什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南
文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果
ArcGIS Pro制作水平横向图例+多级标注
今天介绍下载ArcGIS Pro中如何设置水平横向图例。 之前我们介绍了ArcGIS的横向图例制作:ArcGIS横向、多列图例、顺序重排、符号居中、批量更改图例符号等等(ArcGIS出图图例8大技巧),那这次我们看看ArcGIS Pro如何更加快捷的操作。…...
DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”
目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...