Prometheus 简单介绍,部署

news/2024/5/18 22:52:24 标签: prometheus

目录

Prometheus 介绍

功能介绍

Prometheus安装

安装介绍

prometheus.yml%20%E6%96%87%E4%BB%B6%E4%BB%8B%E7%BB%8D-toc" style="margin-left:80px;">prometheus.yml 文件介绍

prometheus%E5%AE%9E%E6%96%BD%E5%AE%89%E8%A3%85-toc" style="margin-left:80px;">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%20%E6%96%87%E4%BB%B6%E4%BB%8B%E7%BB%8D">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%E5%AE%9E%E6%96%BD%E5%AE%89%E8%A3%85">prometheus实施安装

./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.niftyadmin.cn/n/369002.html

相关文章

动态规划2:题目

目录 第1题 Fibonacci 第2题 字符串分割(Word Break) .第3题 三角矩阵(Triangle) 第4题 路径总数(Unique Paths) 第5题 最小路径和(Minimum Path Sum) 第6题 背包问题 第7题 回文串分割(Palindrome Partitioning) 第8题 编辑距离(Edit Distance) 第9题 不同子序列(Dist…

Rust 笔记:发布订阅模式及其 在 Rust 语言中的使用

Rust 笔记、设计模式 发布订阅模式及其 在 Rust 语言中的使用 作者:李俊才 (jcLee95):https://blog.csdn.net/qq_28550263?spm1001.2101.3001.5343 邮箱 :291148484163.com 本文地址:https://blog.csdn.ne…

深入浅出解析Stable Diffusion完整核心基础知识 | 【算法兵器谱】

Rocky Ding 公众号:WeThinkIn 写在前面 【算法兵器谱】栏目专注分享AI行业中的前沿/经典/必备的模型&论文,并对具备划时代意义的模型&论文进行全方位系统的解析,比如Rocky之前出品的爆款文章Make YOLO Great Again系列。也欢迎大家提…

python自动演奏Freepiano【双手合奏】

文章编写背景 玩了N久的Freepiano,碍于本人没有天赋,左右手一直没法协调。 于是,突然奇想,也是代码设计的思路: 用多线程的方式,开两个线程,然后通过按键模拟的方式,分别模拟左右手去演奏。觉…

码蹄杯语言基础:选择结构(C语言)

⭐MT1109和10相比 请编写一个简单程序&#xff0c;输入一个整数&#xff0c;和10比较&#xff0c;输出比较结果 格式 输入格式&#xff1a; 输入整型 输出格式&#xff1a; 输出…大于或者等于或者小于10 #include<stdio.h> int main() {int x;scanf("%d",…

多用户对应多租户解决方案

文章目录 需求分析解决方案实现步骤表结构设计逻辑实现需求分析 在进行多租户需求分析时,需要考虑以下几个方面: 用户管理:在多租户系统中,需要实现对用户的管理。这包括用户的注册、身份验证、权限控制等功能。数据隔离:不同租户的数据需要隔离,以确保每个租户的数据不会…

哈希应用: 位图 + 布隆过滤器

文章目录 哈希应用: 位图 布隆过滤器1. 位图1.1 提出问题1.2 位图概念1.3 位图实现1.4 位图应用1.4.1 变形题1代码 1.4.2 变形题21.4.3 找文件交集思路1思路2 1.4.4 总结 1.5 位图优缺点 2. 哈希切割3. 布隆过滤器3.1 提出问题3.2 布隆过滤器概念3.3 布隆过滤器的各个接口3.3.…

文生视频综述

文字生成视频当前挑战 和发展现状_哔哩哔哩_bilibili今天我们聊了什么是 text to video&#xff0c;它的原理和目前的研究进展。text to video 是一种将文本转换为视频的技术&#xff0c;它可以通过图像处理、语音识别和自然语言处理等技术来实现。目前&#xff0c;text to vid…