Prometheus 简单介绍,部署

news2025/1/12 3:50:15

目录

Prometheus 介绍

功能介绍

Prometheus安装

安装介绍

prometheus.yml 文件介绍

prometheus实施安装

 Prometheus常用命令参数有哪些

设置Prometheus-server开机自动启动  (解释)

Prometheus简单启动页面介绍

node_exporte 是做什么的

安装node_exporte

启用/禁用node_exporte,相关参数监控信息

​编辑用Prometheus重新加载node_exporter

远程监控机器过程


Prometheus官网:Download | Prometheus

Prometheus 介绍

  • Prometheus是一个开源的系统监控和警报工具。它是一个功能强大的多维度时间序列数据模型,可以收集服务器、容器、应用程序等各种不同类型的监控数据。在收集数据后,Prometheus的查询语言PromQL可以用于提取和聚合指标数据,以帮助用户深入了解系统的状态和性能,并及早发现潜在的问题。

功能介绍

 监控系统:Prometheus

  •   Prometheus Server      核心组件, Prometheus的基本工功能他都包括
  •       Scraper: HTTP call     内部的数据抓取     

必须满足三个条件 

  1. 支持 Prometheus的指标格式
  2. 得自己自行保留指标,如果不自己暴露指标就需要用额外的应用来暴露
  3. 暴露的接口得通过HTTP实现 ,要想抓取都得通过HTTP call来实现的

    TSDB              内置的时间序列数据,用来存储抓取的数据
    Web UI            内置的查询浏览器
    Alert Rule        内置的告警规则,生成告警信息发送给 AlertManager

接收者 常见接收方式:邮件、短信等
  AlertManager      内置的AlertManager才是真正告警的
  NodeExporter      为了监控节点,提供的专门暴漏节点的指标
  监控应用: 要不使用自带的,要不使用额外的收集特定应用程序的指标信息。

    自带Instrumentition
    额外部署专用的Exporter

Prometheus安装

安装介绍

入门学习使用Prometheus:
    (1) 部署Prometheus Server 
    (2) 将Prometheus Server自身纳入监控体系
          自带测量系统安装
    (3) 将Prometheus Server自身所在节点纳入监控体系
          (a) 额外部署专用的Exporter  监听于9100, 暴露指标的路径/metrics 
          (b) 配置Prometheus Server发现并监控该Exporter,也可以静态配置

  学习使用Prometheus:
    PromQL

生产环境中

  • 持久化高可用 
  • Prmetheus高可用
  • 监控系统高可用   
  • 多级监控 Prometheus宕了怎么办?建议Prometheus监控Prometheus为各组件提升可用性;

prometheus.yml 文件介绍

# my global config
global:                   #全局设置
  scrape_interval: 15s    #监控设置全局抓取时间,默认一分钟,如果scrape_configs不做指定抓取设置的话,以这里为准
  evaluation_interval: 15s #设置全局规则文件读取时间,和上面一样rule_files不指定
  # scrape_timeout is set to the global default (10s).

# Alertmanager configuration   #接收来自 Prometheus 的告警数据
alerting:                      #alerting 是告警设置的开始标记
  alertmanagers:               #alertmanagers 表示 Alertmanager(报警管理程序)的设置
    - static_configs:#静态配置的部分,表示我们在配置中直接指定了 Alertmanager 的URL或者 IP,
                      而不是通过配置管理工具或者服务发现机制动态获取 Alertmanager 的地址
        - targets:             #targets 是一个数组,用于指定 Alertmanager 的 URL 或者 IP
          # - alertmanager:9093  案例

# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:                #以抓取样板数据做周期的语句运行,运行结果保存在一个新的时间序列,
  # - "first_rules.yml"    #不指定多少时间运行,就按默认规则时间 evaluation_interval
  # - "second_rules.yml"

# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:            #具体服务的抓取配置
  - job_name: "prometheus" job可以把一组相同功能的相似功能的接口指标类型定义成一个job统一抓取
  
  # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.
 
   static_configs:                     #只是静态指定地址 
      - targets: ["localhost:9090"]    #targets定义出多个监控对象来 

#因为他是web服务可能是基于某个路径才暴露之指标的,默认路径/metrics,可以用metrics_path指定
#同时他也有协议默认的协议是http,可以用scheme指定协议有两种(http,https) 
~                                    

实施定义

- job_name: "prometheus"     # 每组相似应用,定义一个Job   

    metrics_path: /metrics 
    scheme: http 

   

     static_configs:
         - targets: ["localhost:9090"]

抓取指标的路径:
        http://localhost:9090/metrics

prometheus实施安装

  •  tar xf prometheus-2.44.0.linux-amd64.tar.gz -C /usr/local/   
  • ln -sv prometheus-2.44.0.linux-amd64.tar.gz prometheus
  • cd /usr/local/
  • ln -sv prometheus-2.44.0.linux-amd64/ prometheus
  • cd prometheus                  #进去
  • cp prometheus.yml {,.bak} # 备份一下万一出问题
     

./prometheus --config.file=./prometheus.yml   运行 监控自己(端口是默认端口所以不用指)


Prometheus启动命令包括三部分,具体如下:

1 ./prometheus: 启动Prometheus的可执行文件。

2 --config.file=./prometheus.yml: 指定Prometheus的配置文件,通常是一个YAML格式的文件,其中包含有关如何收集、处理、存储和展示指标数据的配置信息。

3 --web.listen-address=:9090 : 指定Prometheus侦听的端口号和IP地址。在这个例子中,Prometheus将侦听所有可用的IP地址,并使用9090端口来提供Web界面和API服务。

因此,完整的Prometheus启动命令如下:

./prometheus --config.file=./prometheus.yml --web.listen-address=:9090
执行此命令后,Prometheus将开始侦听9090端口,并启动Web界面和API服务,用于显示指标数据、设置报警规则、查询数据等

 Prometheus常用命令参数有哪些


1 Prometheus查看版本号 ./prometheus --version 
2 监听端口号:通过命令行参数指定,示例: --web.listen-address=:9090 。
3 指定配置文件路径:通过命令行参数,示例:--config.file=./prometheus.yml。
4 持久化存储路径:在配置文件中指定,通常是指定一个磁盘文件路径,用于保存时间序列数据,示例: --storage.tsdb.path=/data/prometheus 。
5 如果在运行状态重新加载需要在启动Prometheus的时候后面加上--web.enable-lifecycle

设置Prometheus-server开机自动启动  (解释)

◼ 提示

◆需要事先添加用户prometheus

◆修改ExecStart的值指向实际的程序文件位置

[Unit]
Description=Monitoring system and time series database
Documentation=https://prometheus.io/docs/introduction/overview/  #官方文档不会去里面看

[Service]
Restart=always
User=prometheus
EnvironmentFile=/etc/default/prometheus
ExecStart=/usr/bin/prometheus $ARGS
ExecReload=/bin/kill -HUP $MAINPID
TimeoutStopSec=20s
SendSIGKILL=no
LimitNOFILE=8192

[Install]
WantedBy=multi-user.target

解释:

Unit:描述了服务的通用信息,包括服务名称、说明文档等。
Service:定义了服务的具体行为,包括启动命令、环境变量、用户和文件权限等。
Install:定义了服务的安装位置和依赖关系,用于在系统启动时自动启动服务。
具体地说,上述配置文件指定了以下内容:

服务描述:Description=Monitoring system and time series database, 描述了服务的名字和功能。

服务重启:Restart=always,         指定了服务在退出后自动重启。

运行用户:User=prometheus,        指定了服务以 prometheus 用户身份运行。

环境变量:EnvironmentFile=/etc/default/prometheus,    指定了加载从该文件中定义的环境变量。

启动命令:ExecStart=/usr/bin/prometheus $ARGS,指定了服务启动命令,其中 $ARGS 被解析为命令行参数。

重载命令:ExecReload=/bin/kill -HUP $MAINPID,用于在执行 systemctl reload 命令时重载配置文件。

停止命令:TimeoutStopSec=20s, SendSIGKILL=no,在服务被停止时,等待20秒钟,之后发送 SIGTERM 信号来优雅地关闭进程。

文件描述符:LimitNOFILE=8192,指定服务所能打开的文件描述符的数量。

安装文件位置:WantedBy=multi-user.target,将服务作为 multi-user.target 的依赖关系,表示在系统启动后自动启动该服务。

这个配置文件的路径通常是 /etc/systemd/system/prometheus.service。执行 systemctl enable prometheus.service 命令即可将服务添加到启动列表,并使用 systemctl start prometheus.service 命令启动服务。

Prometheus简单启动页面介绍

内用介绍

 图形页面

 配置上来的监控对象

 UP用来标识每个指标都在正常运行 ,这里查询所有的up是否正常运行 

 

 查询所有up == 0(也就是宕机)这里是没有

 因为Prometheus有他自己添加的标签,所以这里可以用标签来查找指定信息

node_exporte 是做什么的

node_exporter是一个用于在Prometheus上运行的开源服务器监控客户端,它从系统信息中采集各种重要的指标数据(例如CPU,内存,磁盘使用量),并将其暴露给Prometheus以帮助您对服务器资源和性能进行监控和调整。您可以使用node_exporter来收集系统级别的监控数据,并将其导入到Prometheus进行集中管理和查询。它是在Linux、macOS、Windows和许多其他操作系统上可用的。

安装node_exporte

  • [root@rocky8 local]#tar xf node_exporter-1.6.0.linux-amd64.tar cd /usr/local/
  • [root@rocky8 local]#ln -vs node_exporter-1.6.0.linux-amd64 node_exporte
  • [root@rocky8 local]#cd node_exporter
  • [root@rocky8 node_exporter]#./node_exporter

启用/禁用node_exporte,相关参数监控信息

 ./node_exporter --collector.name (启用) --no-collector.name (禁用)

 [root@rocky8 node_exporter]#./node_exporter --collector.ntp --collector.tcpstat --no-collector.zfs

 登录检查

node_exporter 向外暴露的信息,类似静态页面,刷新而数据更新 9100

 Prometheus的暴露信息 9090

用Prometheus重新加载node_exporter

把node_exporter写道Prometheus里面并抓取信息

[root@rocky8 prometheus]#vim prometheus.yml

     static_configs:
      - targets: ["localhost:9090"]
  - job_name: "node_exporter"
    metrics_path: '/metrics'
    scheme: 'http'
    static_configs:
      - targets:
          - "10.0.0.8:9100"

          - "10.0.0.18:9100"

如果要重新加载需要在启动Prometheus的时候加上--web.enable-lifecycle

--web.enable-lifecycle简介

如果启用,Prometheus将提供/-/reload端点,该端点用于重新加载Prometheus配置文件,并在需要重新加载配置时使用。如果禁用,则Prometheus将不提供/-/reload端点。

启用

./prometheus --web.enable-lifecycle=true --config.file=prometheus.yml

禁用

./prometheus --web.enable-lifecycle=false --config.file=prometheus.y

重新加载配置文件 curl -XPOST localhost:9090/-/reload

远程监控机器过程

10.0.0.8上发过去 (记得写道Prometheus.yml里面)  15秒加载一次

[root@rocky8 local]#scp -r node_exporter-1.6.0.linux-amd64 10.0.0.18:/tmp/
 10.0.0.18上执行

root@rocky8 tmp]#ln -vs node_exporter-1.6.0.linux-amd64/ node_exporter
[root@rocky8 tmp]#cd node_exporter
[root@rocky8 node_exporter]#./node_exporter 

 

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

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

相关文章

【个人笔记】真寻bot部署记录+远程postgreSQL访问+源码食用记录

安装 0. 系统配置 Centos v8.2 1. 安装 使用真寻bot https://github.com/zhenxun-org/zhenxun_bot-deploy bash <(curl -s -L https://raw.githubusercontent.com/zhenxun-org/zhenxun_bot-deploy/master/install.sh)选择1&#xff0c;安装go-cqhttp和zhenxun_bot&…

java boot项目读取yml配置信息

之前 我们讲过 boot的配置文件格式主要有三种 application.properties application.yml application.yaml 我们说推荐用 application.yml 其实从 xml 到 yml 都是要系统去读取他的配置信息 今天 我们就来写一下 在java中读取 yml的配置 这里 我在 yml中多加两个配置 代码如下…

LabView中顺序结构的使用

LabView中的顺序结构能够保证程序按照一定的顺序运行。LabView中的顺序结构分为平铺式顺序结构和层叠式顺序结构两种。 1 平铺式顺序结构 平铺式顺序结构包括一个或多个顺序执行的子程序框图&#xff0c;这种框图也被成为“帧”&#xff0c;程序按照帧为单位&#xff0c;以从…

MKS SERVO4257D 闭环步进电机_系列3 串口(RS485)指令说明

第1部分 产品介绍 MKS SERVO 28D/35D/42D/57D 系列闭环步进电机是创客基地为满足市场需求而自主研发的一款产品。具备脉冲接口和RS485/CAN串行接口&#xff0c;支持MODBUS-RTU通讯协议&#xff0c;内置高效FOC矢量算法&#xff0c;采用高精度编码器&#xff0c;通过位置反馈&am…

ATA-3000系列功率放大器在精密微流体控制中的典型应用

ATA-3000系列功率放大器在精密微流体控制中的典型应用 压电陶瓷精密微流体控制应用&#xff1a; 精密微流体控制在医药配比、遗传基因与生物工程、航空航天、军工国防等方面具有广泛的应用&#xff0c;特别是在大流量伺服阀先导控制领域&#xff0c;具有重要作用。随着压电陶瓷…

TPO69 01|Why Snakes Have Forked Tongues P5P6|阅读真题精读|17:50~19:35

17:00&#xff5e;17:50 吃饭 目录 P56 生词 段落大意 P5段落大意 P6段落大意 题目 【5】事实信息题|定位准确非常重要✅ 【6】事实信息题|定位准确非常重要✅ 【7】推理题|文章是否提及|不要过度推理 【8】修辞目的题|举例一般为了说明✅ 【9】句子插入题|in other words|同义…

SpringCloud Alibaba Seata

SpringCloud Alibaba Seata Seata 基础 先看一个问题&#xff0c;引出Seata 单机单库(多表)处理事务示意图 分布式微服务架构下的数据库事务示意图 3. 梳理上图 用户购买商品的业务逻辑。整个业务逻辑由3个微服务提供支持∶仓储服务∶对给定的商品扣除仓库/商品数量订单服务…

第10届蓝桥杯Scratch国赛真题集锦

编程题 第 1 题 问答题 捉迷藏之 题目说明 编程实现:小猫随机躲在6个按固定位置排列的前景角色任一个的后面,只露出一点点痕迹。具体要求: 1).添加任意1个背景,保留小猫角色,从角色库中挑选6个角色作为前景角色(小猫将躲在它们的后面) 2).6个前景角色按照两行三列的方式以固…

从数据工程师到提示工程师:使用AI解决数据准备任务

数据工程占据了数据科学过程的很大一部分。在CRISP-DM中&#xff0c;这个过程阶段被称为“数据准备”。它包括数据摄取、数据转换和数据质量保证等任务。在本文中&#xff0c;我们使用ChatGPT和Python解决了典型的数据工程任务。通过这样做&#xff0c;我们探索了数据工程与新的…

Redis集群安装之分片集群

1.为什么使用分片集群 主从和哨兵可以解决高可用、高并发读的问题。但是依然有两个问题没有解决&#xff1a; 海量数据存储问题高并发写的问题 哨兵模式本质是依旧是主从模式&#xff0c;在主从模式下我们可以增加slave节点来拓展读并发能力&#xff0c;但是没办法扩展写能力…

项目笔记-瑞吉外卖(全)

文章目录 1.业务开发day011.软件开发整体介绍2.项目整体介绍:star:3.开发环境搭建4.登录功能:star:4.1代码实现 5.退出功能6.页面效果出现 day021.完善登录功能2.新增员工功能3.启用禁用员工信息:star:(自定义消息转换器使用)4.编辑员工信息 day031.公共字段自动填充2.新增分类…

第11届蓝桥杯Scratch国赛真题集锦

编程题 第 1题 问答题 3D打印小猫 题目说明 背景信息:3D打印技术,它与普通打印工作原理基本相同,打印机内装有液体或粉未等“打印材料”,与电脑连接后,通过电脑控制把“打印材料”一层层叠加起来,最终把计算机上的蓝图变成实物。 编程实现:通过滑杆控制小猫造型变化,按下…

聚类算法以及聚类算法模型评估的介绍

一、聚类算法的介绍 1.什么是聚类算法 聚类算法是一类无监督学习算法&#xff0c;用于将数据集中的对象分组&#xff08;或聚类&#xff09;成具有相似性的集合。聚类算法不依赖于预定义的类别标签&#xff0c;而是根据数据的内在特点将相似的数据点聚集在一起。聚类算法的目…

分布式网络通信框架(三)——protobuf使用案例

例子1 test.proto文件如下&#xff1a; syntax "proto3"; // 声明了protobuf版本package fixbug; // 声明了代码所在的包&#xff08;生成C代码后就是namespace 名字&#xff09;// 定义登录消息类型 message LoginRequest {string name 1; // 1 代表name是这个m…

详解uni-app项目运行在安卓真机调试

详解uni-app项目运行在安卓真机调试 uni-app项目运行在安卓真机调试 文章目录 详解uni-app项目运行在安卓真机调试前言为什么要用真机调试&#xff1f;真机调试操作步骤总结 前言 UNI-APP学习系列之详解uni-app项目运行在安卓真机调试 为什么要用真机调试&#xff1f; 因为安…

mybatis-plus实现非法sql拦截(防止全表更新与删除)

文章目录 什么是非法sql&#xff1a;拦截的意义是&#xff1a;使用&#xff1a;1、在pom文件中添加依赖2、注入MybatisPlusInterceptor类&#xff0c;并配置BlockAttackInnerInterceptor拦截器 测试&#xff1a; 什么是非法sql&#xff1a; 不带where子句的delete和update&…

C++反向迭代器

C反向迭代器 &#x1f4df;作者主页&#xff1a;慢热的陕西人 &#x1f334;专栏链接&#xff1a;C &#x1f4e3;欢迎各位大佬&#x1f44d;点赞&#x1f525;关注&#x1f693;收藏&#xff0c;&#x1f349;留言 本博客主要内容介绍反向迭代器的概念和模拟实现一个通用的反向…

HTB-Escape

HTB-Escape 信息收集立足sql_svc -> RyanRyan -> Administrator扩展NTLM简单介绍 信息收集 可以从中获取两个域名。 看看 rpc服务是否有可以收集的信息。 看看samba。 rpc的Public共享文件有一个关于SQL Server的pdf。 阅读它&#xff01; 从中能得到几个用户名…

unix环境高级编程 第一章 UNIX基础知识 Go实现代码

ls命令的Go语言实现 package mainimport ("fmt""os" )func main() {if len(os.Args) ! 2 {panic("参数数量不足")}targetPath : os.Args[1]if dirList, err : os.ReadDir(targetPath); err nil {for _, dirInfo : range dirList {fmt.Println(…

SpringBoot集成ElasticSearch

文章目录 前言一、ElasticSearch本地环境搭建二、SpringBoot整合ElasticSearch1.pom中引入ES依赖2.application.yaml配置elasticsearch3.ElasticSearchClientConnect连接ES客户端工具类4.ElasticSearchResult封装响应结果5.Person实体类6.Person实体类7.ElasticsearchControlle…