监控系列之-prometheus部署说明

news2024/12/26 2:26:22

一、Prometheus介绍

在这里插入图片描述

Prometheus是一款开源的监控系统,主要用于收集、存储和查询时间序列数据,以便于对系统进行监控和分析

Prometheus的架构由四个主要组件组成:
1、Prometheus Server :Prometheus Server是Prometheus的核心组件,主要负责从各个目标(target)中收集指标(metrics)数据,并对这些数据进行存储、聚合和查询。
2、Client Libraries :Prometheus提供了多种客户端库,用于在应用程序中嵌入Prometheus的指标收集功能。
3、Exporters :Exporters是用于将第三方系统的监控数据导出为Prometheus格式的组件。Prometheus支持多种Exporters,例如Node Exporter、MySQL Exporter、HAProxy Exporter等。
4、Alertmanager:Alertmanager是Prometheus的告警组件,用于根据用户定义的规则对监控数据进行告警。

Prometheus的特点
1、灵活的数据模型:Prometheus采用的是key-value对的形式存储指标数据,每个指标都可以包含多个标签(labels),这样可以更加灵活地描述指标数据
2、高效的存储和查询:Prometheus使用自己的时间序列数据库,可以高效地存储和查询大量的指标数据。
3、强大的可视化和告警功能:Prometheus提供了Web界面和API,可以方便地展示和查询监控数据。
4、可扩展性强:Prometheus的架构非常灵活,可以根据需要选择合适的组件进行配置。
CNCF的成员项目:Prometheus作为CNCF的项目之一,得到了广泛的关注和支持,并且得到了来自全球各地的贡献者的积极参与和开发.

二、Prometheus部署搭建

1、node_exporter部署搭建

1、下载
wget https://github.com/prometheus/node_exporter/releases/download/v1.8.2/node_exporter-1.8.2.linux-amd64.tar.gz

2、解压部署启动
tar -xf node_exporter-1.8.2.linux-amd64.tar.gz
ln -s node_exporter-1.8.2.linux-amd64 /usr/local/node_exporter

3、设置启动脚本
vim start_noder.sh
/usr/local/node_exporter/node_exporter \
--collector.textfile.directory=/usr/local/node_exporter/tmp/ \
--web.config.file=config.yml \
--web.listen-address=0.0.0.0:19100

4、附录config.yml文件配置(账号密码admin/123456 此文档中所有都是使用的该信息)
cat config.yml 
basic_auth_users:
  admin: $2y$12$Y9/tZwO8FJC2I.IPt47ufOwFZRNrjSOPk0rUtOhB97cXNdvCikFDW

2、proc_exporter部署

1、此处需要使用到pyton3,推荐使用anaconda3进行安装,此处略,对应网址
https://www.anaconda.com/download

2、prometheus_client安装
python3 -m pip install  client_python-0.13.1.tar.gz 

3、设置开机自启动脚本
vim /usr/lib/systemd/system/proc_exporter.service
[Unit]
Description=proc_exporter
After=network.target

[Service]
Type=simple
ExecStart=/usr/bin/python3 /usr/local/proc_exporter/proc_exporter.py -c /usr/local/proc_exporter/proc_exporter.ini
Restart=on-failure

[Install]
WantedBy=multi-user.target

4、配置文件调整修改,按照如下格式进行业务模块添加删除
vim proc_exportter.ini
## 进程配置, 修改后生效, 不需要重启
[node_exporter]
## 进程名: 能够唯一标识进程的关键字, 如: node_exporter
name = node_exporter

## 进程模块: 进程所归属的子系统或模块, 如: prometheus,
moudle = prometheus

## 进程负责人: 当进程出现异常, 需要介入处理的开发人员
manager = 

## core文件目录, 配置绝对路径, 如不需要检测core文件则配空
directory =

## core文件名前缀
prefix = 

5、启动
 systemctl daemon-reload
 systemctl enable proc_exporter.service
 systemctl restart proc_exporter.service

3、Alertmanager部署

1、下载
wget https://github.com/prometheus/alertmanager/releases/download/v0.27.0/alertmanager-0.27.0.linux-amd64.tar.gz

2、解压部署
tar -xf alertmanager-0.27.0.linux-amd64.tar.gz
ln -s alertmanager-0.27.0.linux-amd64 /usr/local/alertmanager


3、编写启动脚本
vim /usr/lib/systemd/system/alertmanager.service
[Unit]
Description=alertmanager server
Documentation=https://prometheus.io/docs/introduction/overview/
After=network-online.target

[Service]
Type=simple
User=root
Group=root
Restart=on-abnormal
ExecStart=/usr/local/alertmanager/alertmanager \
  --config.file=/usr/local/alertmanager/alertmanager.yml \
  --web.listen-address=0.0.0.0:19093 \
  --web.config.file=/usr/local/alertmanager/config.yml \

[Install]
WantedBy=multi-user.target

4、配置文件调整
vim alertmanager.yml
global:
  resolve_timeout: 5m
  smtp_smarthost: 'smtp.mail.139.com:25'     # 邮箱smtp服务器
  smtp_from: 'hly12599-alarm@139.com'             # 发送邮箱名称
  smtp_auth_username: 'hly12599-alarm@139.com'    # 邮箱地址
  smtp_auth_password: '23bb4dee88805e0fb400'          # 邮箱密码
  smtp_require_tls: false

route:
  group_by: ['alertname']
  group_wait: 10s    
  group_interval: 5m
  repeat_interval: 3m
  receiver: 'alert-receiver'
  routes:
  - receiver: 'data'
    continue: true
  
templates:
  - './templates/*.tmpl'
receivers:
- name: 'data'
  webhook_configs:
  - url: 'http://192.168.10.139:5000/alertinfo'
- name: 'alert-receiver'
  email_configs:
  - to: 15901283579@139.com

    send_resolved: true

inhibit_rules:
  - source_match:
      severity: 'warning'
    target_match:
      severity: 'warning'
    equal: ['job', 'instance','severity']
####检查配置:./amtool check-config alertmanager.yml

5、启动
 systemctl daemon-reload
 systemctl enable alertmanager.service
 systemctl restart alertmanager.service

4、pushgateway部署

1、下载
wget https://github.com/prometheus/pushgateway/releases/download/v1.9.0/pushgateway-1.9.0.linux-amd64.tar.gz

2、解压部署
tar -xf pushgateway-1.9.0.linux-amd64.tar.gz
ln -s pushgateway-1.9.0.linux-amd64 /usr/local/pushgateway

3、编写启动文件
vim /usr/lib/systemd/system/pushgateway.service
[Unit]
Description=pushgateway
Wants=network-online.target
After=network-online.target

[Service]
Type=simple
User=root
Group=root
Restart=always
ExecStart=/usr/local/pushgateway/pushgateway \
  --web.listen-address=0.0.0.0:19091  \
    --web.config.file=/usr/local/pushgateway/config.yml 

[Install]
WantedBy=multi-user.target

4、启动
 systemctl daemon-reload
 systemctl enable pushgateway.service
 systemctl restart pushgateway.service

5、prometheus部署

1、下载
wget https://github.com/prometheus/prometheus/releases/download/v2.53.2/prometheus-2.53.2.linux-amd64.tar.gz

2、解压部署
tar -xf prometheus-2.53.2.linux-amd64.tar.gz
ln -s prometheus-2.53.2.linux-amd64 /usr/local/prometheus

3、编写启动脚本
vim /usr/lib/systemd/system/prometheus.service
[Unit]
Description=Prometheus server
Documentation=https://prometheus.io/docs/introduction/overview/
After=network-online.target

[Service]
Type=simple
User=root
Group=root
Restart=on-abnormal
ExecStart=/usr/local/prometheus/prometheus \
  --config.file=/usr/local/prometheus/prometheus.yml \
  --web.listen-address=0.0.0.0:19090 \
  --web.config.file=/usr/local/prometheus/config.yml \
  --storage.tsdb.path=/usr/local/prometheus/data \
  --storage.tsdb.retention.time=180d \
  --web.console.templates=/usr/local/monitor/prometheus/consoles \
  --web.console.libraries=/usr/local/monitor/prometheus/console_libraries \
  --web.max-connections=512 \
  --web.enable-lifecycle

[Install]
WantedBy=multi-user.target

4、启动
 systemctl daemon-reload
 systemctl enable prometheus.service
 systemctl restart prometheus.service

5、修改配置文件,添加主机监控和进程监控
vim prometheus.yml
global:
  scrape_interval: 60s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
  evaluation_interval: 30s # Evaluate rules every 15 seconds. The default is every 1 minute.
# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
    - "./rules/*.yml"
scrape_configs:
  - job_name: "node_host"
    basic_auth:
      username: admin
      password: 123456
    scrape_interval: 1m
    static_configs:
      - targets: ["192.168.10.139:19100"]
      
  - job_name: "proc_host"
    scrape_interval: 1m
    scrape_timeout: 1m
    metrics_path: /metrics
    static_configs:
      - targets: ["192.168.10.140:19001"]
      
  - job_name: "alertmanager"
    basic_auth:
      username: admin
      password: 123456
    static_configs:
      - targets: ["192.168.10.139:19093"]
      
  - job_name: "pushgateway_server"
    basic_auth:
      username: admin
      password: 123456
    honor_labels: true
    scrape_interval: 1m
    scrape_timeout: 1m
    static_configs:
      - targets: ["192.168.10.139:9091"]

6、加载生效
curl -X POST -u admin:123456  http://192.168.10.139:9090/-/reload

6、Grafana部署

1、下载地址
wget https://dl.grafana.com/oss/release/grafana-10.3.7-1.x86_64.rpm

2、安装部署启动
rpm -Uvh grafana-10.3.7-1.x86_64.rpm

3、修改配置文件端口,然后启动即可
echo "http_port = 13000" >> /etc/grafana/grafana.ini
systemctl daemon-reload
systemctl enable grafana-server.service
systemctl restart grafana-server.service

4、通过web浏览器即可打开对应的web界面

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

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

相关文章

带你0到1之QT编程:十二、视图宝典,点通views的任督二脉

此为QT编程的第十二谈!关注我,带你快速学习QT编程的学习路线! 每一篇的技术点都是很很重要!很重要!很重要!但不冗余! 我们通常采取总-分-总和生活化的讲解方式来阐述一个知识点! …

text2sql(NL2Sql)综述《The Dawn of Natural Language to SQL: Are We Fully Ready?》

《The Dawn of Natural Language to SQL: Are We Fully Ready?》(github)出自2024年6月的NL2SQL(Natural language to SQL )综述论文。这篇论文尝试回答如下三个问题: 问题1:NL2SQL的现状是什么?(Q1:Where Are we Now?) 论文图1总结了近20年NL2SQL方法…

【移动端】菜单的自动展开与收回

前言 为了满足手机上菜单栏随用户移动,菜单的自动展示与隐藏,特此记录 基本原理 实现逻辑 window.addEventListener(‘scroll’, debouncedScrollHandler) – 监听文档视图滚动事件 document.querySelector(‘.header’) – 选择器匹配元素 创建show和h…

论文速递!Auto-CNN-LSTM!新的锂离子电池(LIB)剩余寿命预测方法

论文标题:A Data-Driven Auto-CNN-LSTM Prediction Model for Lithium-Ion Battery Remaining Useful Life 期刊信息:IEEE TII (中科院1区, JCR Q1, IF11.7) 引用:Ren L, Dong J, Wang X, et al. A data-driven auto-CNN-LSTM prediction m…

JavaScript web API part3

web API DOM 日期对象 > 得到当前系统的时间 new这个操作就是实例化 语法 const date new Date() or const date new Date(2004-11-3 08:00:00) 可以指定时间 > 可应用于通过系统时间和指定时间实现倒计时的操作 //得到当前时间const date new Date()console.lo…

多维时序 | Matlab基于BO-LSSVM贝叶斯优化最小二乘支持向量机数据多变量时间序列预测

多维时序 | Matlab基于BO-LSSVM贝叶斯优化最小二乘支持向量机数据多变量时间序列预测 目录 多维时序 | Matlab基于BO-LSSVM贝叶斯优化最小二乘支持向量机数据多变量时间序列预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab基于BO-LSSVM贝叶斯优化最小二乘支…

Vue介绍、窗体内操作、窗体间操作学习

系列文章目录 第一章 基础知识、数据类型学习 第二章 万年历项目 第三章 代码逻辑训练习题 第四章 方法、数组学习 第五章 图书管理系统项目 第六章 面向对象编程:封装、继承、多态学习 第七章 封装继承多态习题 第八章 常用类、包装类、异常处理机制学习 第九章 集…

树莓派5上手

1 安装系统 Raspberry Pi OS 是基于 Debian 的免费操作系统,针对 Raspberry Pi 硬件进行了优化。Raspberry Pi OS 支持超过 35,000 个 Debian 软件包。树莓派 5 可以安装各种系统,但是如果对于系统没有特殊的要求,还是安装 Raspberry Pi OS …

【MySQL】MySQL索引与事务的透析——(超详解)

前言 🌟🌟本期讲解关于MySQL索引事务,希望能帮到屏幕前的你。 🌈上期博客在这里:【MySQL】MySQL表的增删改查(进阶篇)——之查询操作(超级详解)-CSDN博客 🌈感…

CSP-CCF★★★201903-2二十四点★★★

目录 一、问题描述 二、解答 方法一:穷举法(只列举了一部分) 方法二:中缀表达式直接求值,两个栈,一个存放数值,一个存放符号 方法三:将中缀表达式转换为后缀来计算注意&#xff…

台风,也称为热带气旋,是一种在热带海洋上形成的强烈风暴系统。台风的形成需要满足以下几个条件:

台风,也称为热带气旋,是一种在热带海洋上形成的强烈风暴系统。台风的形成需要满足以下几个条件: 1. **温暖的海水**:台风通常在海面温度至少达到26.5C(79.7F)的海域形成,因为温暖的海水能够提供…

八股(8)——Spring,SpringBoot

八股(8)——Spring,SpringBoot 基础1.Spring 是什么?特性?有哪些模块?Spring 有哪些特性呢? 2.Spring 有哪些模块呢?3.Spring 有哪些常用注解呢?Web 开发方面有哪些注解呢…

利用模糊综合评价法进行数值评分计算——算法过程

1、‌模糊综合评价法概述 ‌模糊综合评价法是一种基于模糊数学的综合评价方法,它通过模糊数学的隶属度理论将定性评价转化为定量评价,适用于解决复杂、难以量化的问题。该方法具有结果清晰、系统性强的特点,能够处理多种因素制约下的综合评价…

热门数据恢复软件大盘点

现在大家的数据都喜欢存放在一些电子设备里保存吧。这样既方便存放,也方便我们查找。但是这些设备可能因为病毒、误删除等原因造成数据的丢失。这篇文章我将介绍几款类似易我数据恢复软件的数据恢复工具,减少为数据丢失给我们造成损失。 1.FOXIT数据恢复…

vue国际化

前言 现在的大公司都走国际化路线,我们应用程序也不例外。今天就在 Vue3 项目中整一个比较简单的国际化 背景 之前搞国际化的时候,也搜索了很多帖子,但是没有一个可以完整的实现。今天有空搞了一版,大家有什么问题欢迎留言探讨…

Java设计模式—面向对象设计原则(五) ----->迪米特法则(DP) (完整详解,附有代码+案例)

文章目录 3.5 迪米特法则(DP)3.5.1 概述3.5.2 案例 3.5 迪米特法则(DP) 迪米特法则:Demeter Principle,简称DP 3.5.1 概述 只和你的直接朋友交谈,不跟“陌生人”说话(Talk only to your immediate friends and not to stranger…

【CSS in Depth 2 精译_031】5.3 Grid 网格布局的两种替代语法

当前内容所在位置(可进入专栏查看其他译好的章节内容) 第一章 层叠、优先级与继承(已完结) 1.1 层叠1.2 继承1.3 特殊值1.4 简写属性1.5 CSS 渐进式增强技术1.6 本章小结 第二章 相对单位(已完结) 2.1 相对…

Linux服务器配合Xshell+Tensorboard实现深度学习训练过程可视化

问题背景: 在深度学习领域,监控模型的训练过程是非常重要的。TensorBoard 是 TensorFlow 提供的一个可视化工具,可以帮助我们直观地理解模型的训练和验证过程。我们一般在 Windows 系统只需要在自己的浏览器输入localhost:6006就可以观察训练…

[Linux]:进程间通信(上)

✨✨ 欢迎大家来到贝蒂大讲堂✨✨ 🎈🎈养成好习惯,先赞后看哦~🎈🎈 所属专栏:Linux学习 贝蒂的主页:Betty’s blog 1. 进程间通信介绍 1.1 进程间通信的概念 进程间通信简称IPC(In…

[通信原理]绪论1:信号 × 通信系统

1、消息、信号与信息 消息: 通信系统要传输的对象,是具体的、物理上存在的东西。也是信息的载体。形式多种: 连续消息:语音、温度、活动图片.离散消息:数据、符号、文字. 信息: 消息中所蕴含的内容&…