源码安装prometheus(普罗米修斯监控)

news2024/12/25 16:05:28
IP角色系统规格
192.168.0.38Prometheus 服务端CentOS 74c8g
192.168.0.25node_exporter 客户端CentOS 74c8g

普罗米修斯下载网址: Download | Prometheus

1.下载prometheus

[root@prometheus opt]#  wget https://github.com/prometheus/prometheus/releases/download/v2.47.2/prometheus-2.47.2.linux-amd64.tar.gz
[root@prometheus opt]# tar xvfz prometheus-2.47.2.linux-amd64.tar.gz -C /usr/local/
[root@prometheus opt]# cd /usr/local/
[root@prometheus local]# mv prometheus-2.47.2.linux-amd64 prometheus
[root@prometheus local]# cd prometheus
[root@prometheus prometheus]# ls
console_libraries  consoles  data  LICENSE  NOTICE  prometheus  prometheus.yml  promtool

2.查看版本信息

[root@prometheus prometheus]# ./prometheus --version
prometheus, version 2.47.2 (branch: HEAD, revision: 3f3172cde1ee37f1c7b3a5f3d9b031190509b3ad)
  build user:       root@79f2ad339b75
  build date:       20231012-16:07:10
  go version:       go1.21.3
  platform:         linux/amd64
  tags:             netgo,builtinassets,stringlabels

 3. 查看帮助

[root@prometheus prometheus]# ./prometheus --help
prometheus, version 2.47.2 (branch: HEAD, revision: 3f3172cde1ee37f1c7b3a5f3d9b031190509b3ad)
  build user:       root@79f2ad339b75
  build date:       20231012-16:07:10
  go version:       go1.21.3
  platform:         linux/amd64
  tags:             netgo,builtinassets,stringlabels
  …………
  • 4.prometheus.yml 配置文件解释

[root@prometheus prometheus]# cat prometheus.yml
# my global config
global:
  # 默认情况下,每15s拉取一次目标采样点数据。
  scrape_interval:     15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
  # 每15秒评估一次规则。默认值为每1分钟。
  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:
      # - alertmanager:9093
​
# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
  # - "first_rules.yml"
  # - "second_rules.yml"
​
# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
  # job名称会增加到拉取到的所有采样点上,同时还有一个instance目标服务的host:port标签也会增加到采样点上
  - job_name: 'prometheus'
​
    # 覆盖global的采样点,拉取时间间隔5s
    scrape_interval: 5s
    static_configs:
    - targets: ['localhost:9090']

  5.启动prometheus

[root@prometheus prometheus]# ./prometheus --config.file=prometheus.yml
  • 6.可指定的启动参数

    # 指定配置文件
    --config.file="prometheus.yml"
    # 默认指定监听地址端口,可修改端口
    --web.listen-address="0.0.0.0:9090" 
    # 最大连接数
    --web.max-connections=512
    # tsdb数据存储的目录,默认当前data/
    --storage.tsdb.path="data/"
    # premetheus 存储数据的时间,默认保存15天
    --storage.tsdb.retention=15d 
    # 通过命令热加载无需重启 curl -XPOST 192.168.2.45:9090/-/reload
    --web.enable-lifecycle
    # 可以启用 TLS 或 身份验证 的配置文件的路径
    --web.config.file=""
    ​
    启动选项了解:./prometheus --help

  • 7.访问:http://localhost:9090

image-20231116173400294

image-20231116173507015

  • 8.查看暴露指标http://localhost:9090/metrics

image-20231116173649030

  • 9.将Prometheus配置为systemd管理

    # 配置Prometheus启动文件
    [root@prometheus opt]# vim /usr/lib/systemd/system/prometheus.service
    [Unit]
    Description=https://prometheus.io
    ​
    [Service]
    Restart=on-failure
    ExecStart=/usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml --web.listen-address=:9090
    ​
    [Install]                      
    WantedBy=multi-user.target
    ​
    # 重新加载system配置
    [root@prometheus opt]# systemctl daemon-reload
    [root@prometheus opt]# systemctl start prometheus
    [root@prometheus opt]# ss -tlanp |grep 9090
    LISTEN     0      1024      [::]:9090                  [::]:*                   users:(("prometheus",pid=9318,fd=7))

  • 10.客户端,配置服务发现监控linux主机及相关服务

    # 安装node_exporter
    [root@node ~]# wget https://github.com/prometheus/node_exporter/releases/download/v1.7.0/node_exporter-1.7.0.linux-amd64.tar.gz
    [root@node ~]# tar -xr node_exporter-1.7.0.linux-amd64.tar.gz -C /usr/local/
    [root@node ~]# cd /usr/local/
    [root@node local]# mv node_exporter-1.7.0.linux-amd64/ node_exporter
    [root@node local]# cd node_exporter/
    [root@node node_exporter]# ls
    LICENSE  node_exporter  NOTICE
    [root@node node_exporter]# ./node_exporter &
        …………
    ts=2023-11-16T09:52:04.979Z caller=tls_config.go:274 level=info msg="Listening on" address=[::]:9100
    ts=2023-11-16T09:52:04.979Z caller=tls_config.go:277 level=info msg="TLS is disabled." http2=false address=[::]:9100
    ​
    [root@node node_exporter]# ss -tlnp  | grep 9100
    LISTEN     0      1024      [::]:9100                  [::]:*                   users:(("node_exporter",pid=8414,fd=3))

  • 11.配置node_exporter为systemd管理

    [root@node node_exporter]# vim /usr/lib/systemd/system/node_exporter.service
    [Unit]
    Description=node_exporter
    After=network.target 
    ​
    [Service]
    ExecStart=/usr/local/node_exporter/node_exporter
    Restart=on-failure
    ​
    [Install]
    WantedBy=multi-user.target
    ​
    [root@node node_exporter]# systemctl daemon-reload
    [root@node node_exporter]# systemctl start node_exporter
    [root@node node_exporter]# ss -tlnp  | grep 9100
    LISTEN     0      1024      [::]:9100                  [::]:*                   users:(("node_exporter",pid=8675,fd=3))

  • 12.普罗米修斯服务端配置文件添加监控项

    [root@prometheus prometheus]# vim prometheus.yml 
    ……
    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"]
      # 添加以下内容
      - job_name: "node_exporter"
        static_configs:
        # 如果有多个机器,用','分开
        - targets: ['192.168.0.25:9100']
    ​
    # 重启prometheus服务
    [root@prometheus prometheus]# systemctl restart prometheus

image-20231116180314327

  • 13.监控mysql(mysqld-exporter)

    # 安装mysqld-exporter
    [root@node ~]# wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.15.0/mysqld_exporter-0.15.0.linux-amd64.tar.gz
    [root@node ~]# tar xf mysqld_exporter-0.15.0.linux-amd64.tar.gz -C /usr/local/
    [root@node /usr/local]# mv mysqld_exporter-0.15.0.linux-amd64 mysqld_exporter
    [root@node /usr/local/mysqld_exporter]# vim .my.cnf
    [client]
    user=root
    password=123456
    ​
    # 启动mysqld-exporter
    [root@node /usr/local/mysqld_exporter]# ./mysqld_exporter --config.my-cnf="/usr/local/mysqld_exporter/.my.cnf" &
    [root@node /usr/local/mysqld_exporter]# ps -ef |grep mysqld_exporter
    root       3447   3398  0 01:31 pts/1    00:00:02 ./node_exporter
    root       4647   3398  0 02:13 pts/1    00:00:00 ./mysqld_exporter --config.my-cnf=/usr/local/mysqld_exporter/.my.cnf
    ​
    [root@node /usr/local/mysqld_exporter]# ss -lntp |grep 4647
    LISTEN     0      128         :::9104                    :::*                   users:(("mysqld_exporter",pid=4647,fd=3))
    [root@VM_2-44 /usr/local/mysqld_exporter]# 
    # 启动后会监听9104端口

  • 14.普罗米修斯服务端配置文件添加监控项

    [root@prometheus prometheus]# vim prometheus.yml 
      - job_name: 'mysql'
        static_configs:
        - targets: ['192.168.2.44:9104']
    [root@prometheus prometheus]# systemctl restart prometheus
    ​
    ​
    # 获取内存
    node_memory_MemTotal_bytes{job="node_exporter", instance="192.168.0.25:9100"}

  • 15.使用Grafana展示Prometheus 数据

    [root@prometheus ~]# wget https://mirrors.tuna.tsinghua.edu.cn/grafana/yum/rpm/Packages/grafana-10.0.0-1.x86_64.rpm
    [root@prometheus ~]# yum install initscripts fontconfig -y
    [root@prometheus ~]# yum install -y grafana-10.0.0-1.x86_64.rpm
    [root@prometheus ~]# systemctl status grafana-server.service 
    [root@prometheus ~]# ss -tlanp |grep grafana |grep LISTEN
    LISTEN     0      1024      [::]:3000                  [::]:*                   users:(("grafana",pid=10629,fd=11))
    ​
    # 启动后访问地址:ip:3000
    # 初始用户名和密码都是admin

image-20231116184918206

  • 16.登录成功之后添加数据源

image-20231116185043349

image-20231116185122891

image-20231116185204096

  • 17.填写prometheus的地址,然后点击最下面的save & test

image-20231116185305708

image-20231116185535848

  • 18.dashboards查找地址:https://grafana.com/grafana/dashboards/

  • 例如:8919,12227输入id: 然后点击Load

image-20231116190002243

image-20231116190238556

image-20231116190304799

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

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

相关文章

Echarts -- 实现动态加载series

一、需求说明 1.1具体说明 根据每天的订单,查询出券码(title字段)的核销情况,如下单成功,已核销,取消订单,订单失败, title字段又分大概七八种,最后数据进行整合完毕之后,前端使用Echarts进行堆叠柱状图显示每天数据。 1.2 需求拆解 根据时间范围查询出每天的订单数据后,根据…

torch - FloatTensor标签(boolean)数值转换(1/0)

当我们数据集的标签为True/False的boolean型时&#xff0c;我们可以直接使用FloatTensor传入该标签。返回的数据为tensor([0.])或者tensor([1.])&#xff0c;这十分有利于二分类任务的预测标签对错判断。 这个用法是基于Python的布尔类型与整数之间的隐式类型转换。在Python中&…

【大话Presto 】- 核心概念

文章目录 前言Operator Model And Iterator Model系统组成Connector数据模型查询执行模型StatementStageTaskSplitDriverOperatorExchangePipeLine 总结 前言 Presto&#xff08;PrestoDB&#xff09;是一个FaceBook开源的分布式MPP SQL引擎&#xff0c;旨在处理大规模数据的查…

EMP.DLL是什么东西?怎么解决EMP.DLL文件缺失

在我们使用电脑的过程中&#xff0c;有时会遇到一些特定的错误提示&#xff0c;比如“emp.dll文件缺失”。这样的提示对许多用户来说可能一脸懵逼&#xff0c;不知道怎么处理&#xff0c;那么&#xff0c;究竟什么是emp.dll&#xff1f;它的缺失会产生什么影响&#xff1f;又应…

Linux 基础操作手记四

文章目录 环境变量生效配置python版本安装SSH关闭GUIvi 清空 环境变量生效 source ~/.bashrc # 或 source ~/.zshrc 配置python版本 sudo add-apt-repository ppa:deadsnakes/ppa sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 1 sudo upd…

Logrotate日志切割工具的应用与配置

Logrotate日志切割工具的应用与配置&#xff0c;以下是公司生产环境亲测&#xff0c;跳了不少的坑&#xff0c;最后已经部署到生产了&#xff0c;可放心使用 简介 Logrotate是一个在Unix和类Unix系统&#xff08;如Linux&#xff09;上用于管理日志文件的实用程序。它可以帮助…

html书本翻页效果,浪漫表白日记本(附源码)

文章目录 1.设计来源1.1 书本正面1.2 界面1-21.3 界面3-41.4 界面5-61.5 界面7-81.6 界面9-101.7 界面11-121.8 书本结尾 2.效果和源码2.1 动态效果2.2 源代码 源码下载 作者&#xff1a;xcLeigh 文章地址&#xff1a;https://blog.csdn.net/weixin_43151418/article/details/1…

Michael.W基于Foundry精读Openzeppelin第38期——AccessControlEnumerable.sol

Michael.W基于Foundry精读Openzeppelin第38期——AccessControlEnumerable.sol 0. 版本0.1 AccessControlEnumerable.sol 1. 目标合约2. 代码精读2.1 supportsInterface(bytes4 interfaceId)2.2 _grantRole(bytes32 role, address account)2.3 _revokeRole(bytes32 role, addre…

系列一、请谈谈你对JVM的理解?Java8的虚拟机有什么更新?

一、请谈谈你对JVM的理解&#xff1f;Java8的虚拟机有什么更新&#xff1f; JVM是Java虚拟机的意思。它是建立在操作系统之上的&#xff0c;由类加载器子系统、本地方法栈、Java栈、程序计数器、方法区、堆、本地方法库、本地方法接口、执行引擎组成。 &#xff08;1&#xff0…

UniPro提高集成能力 让客户专注于交付价值

一千个哈姆莱特就有一千个读者&#xff0c;一千个开发团队&#xff0c;也会有各不相同的软件工具和工作流程。工具与工具之间&#xff0c;功能上的割裂亦或重叠&#xff0c;都会给企业和团队的协作带来阻塞&#xff0c;结果就会导致团队之间各自为战、信息孤岛的形成以及资源的…

TikTok与未来城市:数字社交如何影响城市发展

在数字化时代的浪潮中&#xff0c;社交媒体的兴起不仅仅改变了我们的个人生活&#xff0c;还深刻地影响了城市的发展和演变。其中&#xff0c;TikTok作为一款备受欢迎的短视频平台&#xff0c;正悄然改变着城市文化、社交互动和城市规划。本文将深入探讨TikTok对未来城市的影响…

Web server failed to start. Port 8080 was already in use.

Windows 服务端口被占用&#xff0c;杀死进程命令&#xff1a; netstat -ano | findstr 8080taskkill -PID [xxx] -F

电子科技大学 分布式系统 期末复习笔记

第一章 为什么需要分布式系统&#xff1a;功能分离&#xff0c;固有的分布性&#xff0c;负载均衡&#xff0c;可靠性&#xff0c;经济性。 定义&#xff1a;分布式系统是这样一种系统&#xff0c;其中位于联网计算机上的组件仅通过传递消息来通信和协调它们的操作。 特点&am…

Smart Tomcat的使用

文章目录 Smart Tomcat的作用Smart Tomcat的安装Smart Tomcat的配置Smart Tomcat的启动 Smart Tomcat的作用 我们知道使用Servlet来完成一个项目一共需要七个步骤&#xff0c;即创建maven项目、添加依赖、创建目录结构、编写代码、打包程序、部署程序、验证程序。这样的确是完…

Mysql之多表查询下篇

Mysql之多表查询下篇 满外连接的实现UNION关键字UNIONUNION ALL操作符 7种SQL JOINS的实现语法格式小结自然连接USING连接表连接的约束条件 满外连接的实现 在上篇博客中&#xff0c;我们可以了解到在Mysql中是不支持FULL JOIN来实现 满外连接的&#xff0c;那么我们在Mysql采用…

Leetcode—2760.最长奇偶子数组【简单】

2023每日刷题&#xff08;三十一&#xff09; Leetcode—2760.最长奇偶子数组 实现代码 #define MAX(a, b) ((a > b) ? (a): (b)) int longestAlternatingSubarray(int* nums, int numsSize, int threshold){int ans 0;int i 0;while(i < numsSize) {if(nums[i] >…

Wi-Fi 网络管理的最佳实践

无论是机场、银行、医院、IT 组织还是 MSP&#xff0c;如今 Wi-Fi 网络都在随处部署和使用。由于其成本效益、灵活性和简化的可扩展性&#xff0c;无线网络现已作为其 IT 基础设施的一部分被整合到许多网络中。但是&#xff0c;设置和管理 Wi-Fi 网络的任务并不像最终用户访问它…

【EI会议征稿】第五届人工智能与机电自动化国际学术会议(AIEA 2024)

第五届人工智能与机电自动化国际学术会议&#xff08;AIEA 2024&#xff09; 2024 5th International Conference on Artificial Intelligence and Electromechanical Automation 第五届人工智能与机电自动化国际学术会议&#xff08;AIEA 2024&#xff09;将于2024年3月8-10…

如何使用Matplotlib模块的text()函数给柱形图添加美丽的标签数据?

如何使用Matplotlib模块的text函数给柱形图添加美丽的标签数据&#xff1f; 1 简单引入2 关于text()函数2.1 Matplotlib安装2.2 text()引入2.3 text()源码2.4 text()参数说明2.5 text()两个简单示例 3 柱形图绘制并添加标签3.1 目标数据3.2 读取excel数据3.3 设置窗口大小和xy轴…

编译安装redis及配置多实例

yum安装是这种十分简单的方法我们就不在提及了&#xff0c;今天我们来做一下redis的编译安装 Redis源码包官方下载链接&#xff1a;http://download.redis.io/releases/ 一、编译安装&#xff1a; 安装依赖包 dnf -y install make gcc jemalloc-devel systemd-devel如果是…