监控 Prometheus源码安装实战和动态更新 Centos7

安装go环境

下载go安装包

#创建文件夹
mkdir /usr/local/software
#进入文件夹
cd /usr/local/software
#下载安装包
wget https://dl.google.com/go/go1.17.6.linux-amd64.tar.gz

配置go环境变量

#解压
tar -zxvf go1.17.6.linux-amd64.tar.gz#配置环境变量 
echo "export PATH=$PATH:/usr/local/software/go/bin" >> /etc/profile #刷新配置
source /etc/profile#测试 go是否安装成功
go version

在这里插入图片描述

安装Prometheus

下载源代码

注意:下载有点慢,可以通过其它方式下载后,上传到路径/usr/local/software

wget https://github.com/prometheus/prometheus/releases/download/v2.45.6/prometheus-2.45.6.linux-amd64.tar.gz

解压并安装Prometheus

#解压
tar -zxvf prometheus-2.45.6.linux-amd64.tar.gz#重名名
mv prometheus-2.45.6.linux-amd64 prometheus#进入目录
cd ./prometheus/#启动
./prometheus --config.file=./prometheus.yml

查看是否启动成功

注意:命令(./prometheus --config.file=./prometheus.yml)非守护进程方式启动,验证时原窗口不要关闭,新开一个窗口连接到服务器
在这里插入图片描述

#查看是否启动成功,默认端口9090
lsof -i:9090

在这里插入图片描述

访问 prometheus

注意:安全组需要开放端口

  #指标数据http://x.x.x.x:9090/metrics#图界面http://x.x.x.x:9090/

在这里插入图片描述
在这里插入图片描述

使用技巧

  • prometheus里面经常需要修改配置,可以利用动态更新
  • 启动时在参数中加入--web.enable-lifecycle (该参数默认关闭,生产环境不建议开启)
#启动, &表示需要守护进程方式运行,不然退出终端则进程消失
./prometheus --config.file=./prometheus.yml --web.enable-lifecycle &#动态更新配置
curl -X POST http://localhost:9090/-/reload

拓展

  • Prometheus的目录结构
    • console_libraries:用于存储用于在Prometheus控制台上显示的JavaScript库。
    • consoles:用于存储用于在Prometheus控制台上显示的控制台文件,其中包括查询和图形定义。
    • data:用于存储Prometheus的磁盘持久化数据。
    • LICENSE:Prometheus的许可证文件。
    • NOTICE:版权声明文件。
    • prometheus:存储Prometheus二进制文件及其相关文件的目录。
    • prometheus.yml:Prometheus的配置文件。
    • promtool:Prometheus的命令行工具,用于检查配置文件是否正确以及生成表达式的值。

Prometheus操作面板和常见配置讲解

操作面板介绍

在这里插入图片描述

配置文件介绍

#全局配置,默认,可以被覆盖
global:scrape_interval: 15s  #全局的抓取间隔scrape_timeout: 10s  #抓取超时时间evaluation_interval: 15s  #评估间隔#告警配置
alerting:alertmanagers: #告警管理器- follow_redirects: true #是否启用重定向enable_http2: true #是否启用HTTP2scheme: httptimeout: 10sapi_version: v2 #指定Alertmanager的API版本,此处为v2static_configs: #告诉Prometheus哪些目标是静态的(即不会更改),如果有多个目标,则可以在targets中指定多个地址。- targets: []#抓取配置
scrape_configs:
- job_name: prometheus #任务名称honor_timestamps: true #指标的时间戳应该由服务器提供,而不是客户端在发送指标时提供的时间戳scrape_interval: 15s #抓取任务的时间间隔,即每15秒抓取一次。scrape_timeout: 10s  #抓取任务的超时时间,单位为秒,即每个目标最多等待10秒钟metrics_path: /metrics  #抓取指标的路径scheme: http #指定抓取时使用的协议,默认为httpfollow_redirects: true  #是否启用重定向。在此处启用enable_http2: true  #是否启用HTTP2static_configs:- targets:- 120.24.7.58:9090 #目标配置,告诉Prometheus哪些目标需要抓取,如果有多个目标,则可以在targets中指定多个地址#此处抓取了一个名为prometheus的任务,每隔15秒抓取一次localhost:9090上的/metrics路径,超时时间为10秒

Prometheus组件Node-Exporter配置实战

Exporter介绍

  • 向Prometheus提供监控样本数据的程序都可以被称为一个Exporter
  • 是一种用于将不同数据源的指标提供给Prometheus进行收集和监控的工具。
  • 运行在应用程序、计算机、网络设备或者其他系统上的代码,它可以将系统的指标信息以一种标准格式公开
  • 将指标数据公开为HTTP端点或者指定的格式(如Redis、JMX等),Prometheus然后可以通过轮询或指定的抓取器
  • 总结
    • Exporter是Prometheus的指标数据收集组件,负责从目标Jobs收集数据
    • 并把收集到的数据转换为Prometheus支持的时序数据格式
    • 只负责收集,并不向Server端发送数据,而是等待Prometheus Server 主动抓取
  • Prometheus社区以及其他团队开发了大量的Exporter,覆盖了许多不同类型的系统和服务
    • Node Exporter、MySQL Exporter、Redis Exporter、MongoDB Exporter、Nginx Exporter…
  • 使用方式
    • 在主机上安装了一个 Exporter程序,该程序对外暴露了一个用于获取当前监控样本数据的HTTP访问地址
    • Prometheus通过轮询的方式定时从这些Target中获取监控数据样本,并且存储在数据库当中
  • 所有的Exporter程序都需要按照Prometheus的规范,返回监控的样本数据
    • 比如接下去的Node Exporter为例,当访问/metrics地址时会返回内容和本身Prometheus协议保持一致即可
    • 主要由三个部分组成,Prometheus会对Exporter响应的内容逐行解析
      • 样本的一般注释信息(HELP)
      • 样本的类型注释信息(TYPE)
      • 样本

案例实战 node_exporter

node_exporter 用于采集类UNIX内核的硬件以及系统指标,包括CPU、内存和磁盘

下载exporter

# 下载
wget https://github.com/prometheus/node_exporter/releases/download/v1.7.0/node_exporter-1.7.0.linux-amd64.tar.gz# 下载完成后 解压
tar -zxvf node_exporter-1.7.0.linux-amd64.tar.gz# 重命名
mv node_exporter-1.7.0.linux-amd64 node_exporter# 进入目录
cd node_exporter/# 启动
nohup ./node_exporter &#确认端口
lsof -i:9100

通过浏览器访问 http://IP:9100/metrics可以查看到监控信息

在这里插入图片描述

Prometheus服务器中添加被监控机器的配置

# target的也可以写ip
vim  prometheus.yml
- job_name: 'agent-1'static_configs:- targets: ['x.x.x.x:9100']
  • 动态更新配置
curl -X POST http://localhost:9090/-/reload

在这里插入图片描述

在这里插入图片描述

  • 注意
    • 需要达到举一反三的思路,掌握常规exporter的配置和使用
    • 社区支持的exporter 很多,但使用方式都是一样的
    • 步骤
      • 对应的机器安装exporter
      • 启动exporter 并监听对应的程序
      • 访问对应的exporter的metric路径,看是否返回数据
      • Prometheus配置新的job
      • 访问Prometheus查看target和configuration是否有数据

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

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

相关文章

C++拷贝构造函数、运算符重载函数、赋值运算符重载函数、前置++和后置++重载等的介绍

文章目录 前言一、拷贝构造函数1. 概念2. 特征3. 编译器生成默认拷贝构造函数4. 拷贝构造函数典型使用场景 二、运算符重载函数三、赋值运算符重载函数1. 赋值运算符重载格式2. 赋值运算符只能重载成类的成员函数不能重载成全局函数3.编译器生成一个默认赋值运算符重载4. 运算符…

Android记录9--实现转盘效果

自定义View /2013.10.16_TurnPlate_Demo/src/com/wwj/turnplate/TurnPlateView.java package com.wwj.turnplate; import android.content.Context; import android.content.res.Resources; import android.graphics.Bitmap; import android.graphics.BitmapFactory; im…

深入了解RTMP推流技术:视频汇聚EasyCVR低延迟与高稳定性分析

RTMP(Real Time Messaging Protocol)视频推流技术,作为音视频传输领域的关键技术之一,已经在直播、视频会议、在线教育等多个场景中得到了广泛应用。RTMP以其独特的优势,为实时音视频传输提供了高效、稳定的解决方案。…

C++之std::queue::emplace

std::queue::emplace 是 C STL 中 std::queue 容器的成员函数,它用于在队列的末尾就地构造一个新元素。这个函数类似于 std::queue::push,但是 emplace 允许你通过传递参数来构造元素,而不需要显式地创建一个元素对象。 理解 std::queue::em…

NGINX_十五 nginx 的平滑升级(了解)

十五 nginx 的平滑升级(了解) 1 为什么要对 nginx 平滑升级 随着 nginx 越来越流行,并且 nginx 的优势也越来越明显,nginx 的版本迭代也来时加速模式,1.9.0版本的nginx更新了许多新功能,例如 stream 四层代理功能,伴…

ffmpeg音视频开发从入门到精通——ffmpeg实现音频抽取

文章目录 FFmpeg 实现音频流抽取1. 包含FFmpeg头文件与命名空间声明2. 主函数与参数处理3. 打开输入文件4. 获取文件信息5. 查找音频流6. 分配输出文件上下文7. 猜测输出文件格式8. 创建新的音频流9. 打开输出文件10. 写入文件头信息11. 读取并写入音频数据12. 写入文件尾部信息…

三维渲染背面剔除

三维渲染中的背面剔除 背面剔除(Backface Culling)是一种用于优化三维渲染性能的技术,通过剔除那些在当前视角下不可见的多边形,减少需要处理的几何体数量,从而提高渲染效率。 基本概念 在三维渲染中,物…

重磅!2024年最新影响因子(生态学/林学/土壤学/遥感/微生物/环境科学/植物科学) 收藏版!

2024年最新影响因子正式揭晓!2024年6月20日,Clarivate Analytics(科睿唯安)发布了各大SCI期刊的2023年影响因子。从最新结果看,今年的影响因子继续“普跌”,其中顶刊Nature和Science均有下降,分…

2024.06.23【读书笔记】丨生物信息学与功能基因组学(第十七章 人类基因组 第三部分)【AI测试版】

第三部分:人类基因组的深入分析与比较基因组学 摘要: 本部分基于2001年国际人类基因组测序联盟(IHGSC)发布的人类基因组测序及分析草图,从生物信息学角度深入讨论了人类基因组的结构特征和分析方法。同时,提及了塞莱拉公司(Celera Genomics)版本的人类基因组草图及其…

Java中的序列化与反序列化

Java中的序列化与反序列化 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿! 在Java开发中,序列化和反序列化是处理对象持久化和数据传输的重要机制。…

【自我提升】提升能量书籍

《原子习惯》 (Atomic Habits) - 詹姆斯克利尔 (James Clear): 核心思想:微小的习惯改变可以带来显著的生活变化。方法: 将大目标拆分为可管理的小习惯。使用“习惯堆叠”技术,将新习惯与已有习惯结合。创建支持性环境&#xff0c…

ubuntu永久换镜像源详细方法

1.查看ubuntu的版本,不同的版本对应的不同的镜像源(下面会讲到,先按步骤操作即可) cat /etc/issue 2.先备份一个,防止更改错误 cp /etc/apt/sources.list /etc/apt/sources.list.backup 3.备份好之后删除原有的sour…

如何卸载宝塔面板?

宝塔官方有提供宝塔面板的卸载命令,使用这个卸载命令,我们就能将宝塔面板卸载掉。 这里有一点需要注意的,如果卸载宝塔面板的同时,也希望将 Nginx、MySQL、PHP 等组件卸载掉,那么我们应该先在宝塔面板里面卸载掉以上软…

Android图片圆角转换 RoundedImageView开源项目 小记(1)

android:background“#7f000000” android:paddingLeft“8dp” android:paddingRight“8dp” android:textAppearance“?android:attr/textAppearanceMediumInverse” /> <TextView android:id“id/textView1” android:layout_width“wrap_content” android:la…

【Gradio】从 BigQuery 数据创建实时仪表板

Google BigQuery 是一个基于云的服务&#xff0c;用于处理非常大的数据集。它是一个无服务器且高度可扩展的数据仓库解决方案&#xff0c;使用户能够使用类 SQL 查询分析数据。 在本教程中&#xff0c;我们将向您展示如何在 Python 中查询 BigQuery 数据集&#xff0c;并使用 g…

SpringBoot 快速入门(保姆级详细教程)

目录 一、Springboot简介 二、SpringBoot 优点&#xff1a; 三、快速入门 1、新建工程 方式2&#xff1a;使用Spring Initializr创建项目 写在前面&#xff1a; SpringBoot 是 Spring家族中的一个全新框架&#xff0c;用来简化spring程序的创建和开发过程。SpringBoot化繁…

delphi屏幕分辩率及缩放自适应解决方案

以下在win10上做的测试&#xff0c;win7未试验&#xff0c;有需要的可以自行测试。 首先应用程序Application.Manifest中设置为&#xff1a;per Monitor V2. 不然有可能窗体收不到屏幕变动通知。 Delphi10.4版本中&#xff0c;窗体有Scaled属性&#xff0c;true为默认&#x…

Linux第十一章:Samba文件共享服务

实验案例&#xff1a;构建Samba文件共享服务器 1、实验环境 根据公司信息化建设要求&#xff0c;公司需要在局域网内部搭建一台文件服务器&#xff0c;便于对数据的集中管理和备份。考虑服务器的运行效率及稳定性、安全性问题&#xff0c;选择在Centos系统中构建Samba服务器以…

Bootloader -- U-Boot 介绍

Bootloader -- U-Boot 介绍 1 介绍1.1 概述1.2 知名 BootloaderLILO (Linux Loader)GRUB (GNU GRand Unified Bootloader)LoadlinROLO (Rockbox Loader)EtherbootLinuxBIOS (现在叫 coreboot)BLOBU-BootRedBoot 1.3 BootLoader 和 Monitor 区别1.4 U-Boot 的源码结构1.5 U-Boot…

idea导入文件里面的子模块maven未识别处理解决办法

1、File → Project Structure → 点击“Modules” → 点击“” → “Import Model” 2、可以看到很多子模块&#xff0c;选择子模块下的 pom.xml 文件导入一个一个点累死了&#xff0c;父目录下也没有pom文件 解决办法&#xff1a;找到子模块中有一个pom.xml文件&#xff0c;…