监控搭建-Prometheus
监控搭建-Prometheus
- 1、背景
- 2、目标
- 3、选型
- 4、Prometheus
- 4.1、介绍
- 4.2、架构
- 4.3、构件
- 4.4、运行机制
- 4.5、环境介绍
- 4.6、数据准备
- 4.7、网络策略
- 4.7.1、主机端口放行
- 4.7.2、设备端口放行
- 4.8、部署
- 4.9、验证
- 4.10、配置
1、背景
随着项目信息化进程的推进,操作系统、中间件、数据库的运维随着系统规模的扩大而指数级别提升,信息数据的监控在这个阶段显得尤为重要。俗话说:无监控、不运维,监控系统地位不言而喻。
2、目标
搭建一套监控系统对云服务器、数据库、中间件进行性能指标的有效话监控。
3、选型
本着选新不选旧的原则,Prometheus
4、Prometheus
4.1、介绍
Prometheus 是一款基于时序数据库的开源监控告警系统,非常适合Kubernetes集群的监控。Prometheus的基本原理是通过HTTP协议周期性抓取被监控组件的状态,任意组件只要提供对应的HTTP接口就可以接入监控。不需要任何SDK或者其他的集成过程。这样做非常适合做虚拟化环境监控系统,比如VM、Docker、Kubernetes等。输出被监控组件信息的HTTP接口被叫做exporter 。目前互联网公司常用的组件大部分都有exporter可以直接使用,比如Varnish、Haproxy、Nginx、MySQL、Linux系统信息(包括磁盘、内存、CPU、网络等等)。Promethus有以下特点:
- 支持多维数据模型:由度量名和键值对组成的时间序列数据
- 内置时间序列数据库TSDB
- 支持PromQL查询语言,可以完成非常复杂的查询和分析,对图表展示和告警非常有意义
- 支持HTTP的Pull方式采集时间序列数据
- 支持PushGateway采集瞬时任务的数据
- 支持服务发现和静态配置两种方式发现目标
- 支持接入Grafana
4.2、架构
4.3、构件
prometheus server 是 Prometheus 组件中的核心部分,负责实现对监控数据的获取,存储以及查询。
exporter 简单说是采集端,通过 http 服务的形式保留一个 url 地址,prometheus server 通过 访问该 exporter 提供的 endpoint 端点,即可获取到需要采集的监控数据 。
AlertManager 在 prometheus 中,支持基于 PromQL 创建告警规则,如果满足定义的规则,则会产生一条 告警信息,进入 AlertManager 进行处理。可以集成邮件,微信或者通过 webhook 自定义报 警。
Pushgateway 由于 Prometheus 数据采集采用 pull 方式进行设置的, 内置必须保证 prometheus server 和 对应的 exporter 必须通信,当网络情况无法直接满足时,可以使用 pushgateway 来进行中转, 可以通过 pushgateway 将内部网络数据主动 push 到 gateway 里面去,而 prometheus 采用 pull 方式拉取 pushgateway 中数据。
4.4、运行机制
prometheus 负责从 pushgateway 和 job 中采集数据, 存储到后端 Storatge 中,可以通过 PromQL 进行查询, 推送 alerts 信息到 AlertManager。 AlertManager 根据不同的路由规则 进行报警通知。
4.5、环境介绍
序号 | 项目 | 版本 | 备注 |
---|---|---|---|
1 | Architecture | x86_64 | 服务器架构 |
2 | CentOS | 7.9.2009 | 操作系统 |
3 | Prometheus | 2.47.0 | 监控平台 |
4 | Grafana | 10.1.2 | 图形化界面 |
5 | Node_exporter | 1.6.1 | Linux系统采集模块 |
6 | AlertManager | 0.26.0 | 告警模块 |
7 | consul_exporter | 0.9.0 | 自动服务发现模块 |
4.6、数据准备
数据准备为需要部署的程序的安排包,其中服务器架构和操作系统,未提供安装包情况,下载包获取路径主要为Promethues官网和Grafana官网下载获取。如果使用服务器直接下载太慢,可以使用磁力或其他下载工具下载后上传至服务器。
- 监控平台:Prometheus 下载
- 图形化界面工具:Ganfana 下载
- Linux系统采集模块: node_exporter 下载
- 告警模块: alertmanager 下载
- 自动服务发现: consul_exporter 下载
- 自动服务:consul 下载
- grafana 主机模板下载
部署之前将以上软件包下载至需要部署的服务器上。
4.7、网络策略
网络策略主要为需要为服务放行的端口策略,分为服务器端口放行和安全设备端口放行
服务 | 端口 | 备注 |
---|---|---|
Prometheus | 9090 | 监控平台 |
node_exporter | 9100 | 主机数据采集 |
Grafana | 3000 | Grafana图形界面 |
4.7.1、主机端口放行
防火墙设置
# 查看防火墙状态
systemctl status firewalld
# 启动防火墙
systemctl start firewalld
# 关闭防火墙
systemctl stop firewalld
# 重启防火墙
systemctl restart firewalld
# 设置开机启动
systemctl enable firewalld
# 设置开机不启动
systemctl disable firewalld
端口放行
firewall-cmd --zone=public --add-port=9090/tcp --permanent
# 说明
# -zone # 作用域
# -add-port=9090/tcp # 添加端口,格式为:端口/通讯协议
# -permanent 永久生效,没有此参数重启后失效# 生效配置
firewall-cmd --reload# 查看放行生效的端口
firewall-cmd --list-ports
放行端口关闭(此处不需要,了解即可)
firewall-cmd --zone=public --remove-port=9090/tcp --permanent
4.7.2、设备端口放行
云主机安全产品一般在安全组内放行,实体服务器一版在防火墙或者路由器设备进行放行。
4.8、部署
进入程序所在目录并解压软件包
cd /home
tar xf prometheus-2.47.0.linux-amd64.tar.gz
部署
mv prometheus-2.47.0.linux-amd64 /usr/local/prometheus-2.47.0
创建符号链接
ln -s /usr/local/prometheus-2.47.0 /usr/local/prometheus
创建prometheus存储目录
mkdir /usr/local/prometheus/data
创建服务文件
vi /usr/lib/systemd/system/prometheus.service
[Unit]
Description=https://prometheus.io[Service]
Restart=on-failure
ExecStart=/usr/local/prometheus/prometheus \
--storage.tsdb.path=/usr/local/prometheus/data \
--config.file=/usr/local/prometheus/prometheus.yml[Install]
WantedBy=multi-user.target
启动prometheus服务
systemctl start prometheus
查看prometheus服务
# systemctl status prometheus
● prometheus.service - https://prometheus.ioLoaded: loaded (/usr/lib/systemd/system/prometheus.service; disabled; vendor preset: disabled)Active: active (running) since Sat 2023-09-23 14:37:38 CST; 3h 35min agoMain PID: 4243 (prometheus)CGroup: /system.slice/prometheus.service└─4243 /usr/local/prometheus/prometheus --storage.tsdb.path=/usr/local/prometheus/data --config....Sep 23 14:37:38 devops prometheus[4243]: ts=2023-09-23T06:37:38.549Z caller=head.go:760 level=info comp...nt=0
Sep 23 14:37:38 devops prometheus[4243]: ts=2023-09-23T06:37:38.549Z caller=head.go:797 level=info comp…8827ms
Sep 23 14:37:38 devops prometheus[4243]: ts=2023-09-23T06:37:38.551Z caller=main.go:1045 level=info fs_...AGIC
Sep 23 14:37:38 devops prometheus[4243]: ts=2023-09-23T06:37:38.551Z caller=main.go:1048 level=info msg...ted"
Sep 23 14:37:38 devops prometheus[4243]: ts=2023-09-23T06:37:38.551Z caller=main.go:1229 level=info msg....yml
Sep 23 14:37:43 devops prometheus[4243]: ts=2023-09-23T06:37:43.603Z caller=main.go:1266 level=info msg="Co…µs
Sep 23 14:37:43 devops prometheus[4243]: ts=2023-09-23T06:37:43.603Z caller=main.go:1009 level=info msg...ts."
Sep 23 14:37:43 devops prometheus[4243]: ts=2023-09-23T06:37:43.603Z caller=manager.go:1009 level=info ......"
Sep 23 17:38:09 devops prometheus[4243]: ts=2023-09-23T09:38:09.607Z caller=compact.go:523 level=info c...68ms
Sep 23 17:38:09 devops prometheus[4243]: ts=2023-09-23T09:38:09.611Z caller=head.go:1298 level=info com...09ms
Hint: Some lines were ellipsized, use -l to show in full.
查看服务端口
服务文件方式查看
cat /usr/local/prometheus/prometheus.yml
# my global config
global:scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.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:# 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"]
其中targets: [“localhost:9090”]处为设置的prometheus服务使用的端口
进程占用端口查看
# netstat -nltp|grep prometheus
tcp6 0 0 :::9090 :::* LISTEN 4243/prometheus
查看端口占用为9090
4.9、验证
浏览器中输入配置服务器的IP地址和9090
http://ip:9090
点击菜单Status—Targets 查看prometheus部署的目标服务的信息
4.10、配置
配置文件介绍
vi /usr/local/promethues/prometheus.yml
# my global config
global:scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.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:# 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"]
配置文件查看
启动配置会加载配置文件,启动之前使用如下命令查看配置文件的正确性
cd /usr/local/prometheus
./promtool check config prometheus.yml
Checking prometheus.ymlSUCCESS: prometheus.yml is valid prometheus config file syntax
以上为prometheus平台的搭建,后续会针对主机、数据库和中间件的监控进行进一步的设置和使用。
相关文章:

监控搭建-Prometheus
监控搭建-Prometheus 1、背景2、目标3、选型4、Prometheus4.1、介绍4.2、架构4.3、构件4.4、运行机制4.5、环境介绍4.6、数据准备4.7、网络策略4.7.1、主机端口放行4.7.2、设备端口放行 4.8、部署4.9、验证4.10、配置 1、背景 随着项目信息化进程的推进,操作系统、…...
指纹浏览器开发指南-EasyBR
想开发一款指纹浏览器,指纹浏览器名字叫做EasyBR,大致构思了下开发的步骤。 EasyBR指纹浏览器开发指南: 后台技术、前端技术和指纹修改 简介: EasyBR指纹浏览器是一款旨在提供个性化服务和广告定位的浏览器,通过收…...

qml入门
window import QtQuick 2.15 import QtQuick.Window 2.15 import QtQuick.Controls 2.5Window { //root控件,父窗口是主界面width: 640height: 480visible: true//相对于父控件的偏移量x: 100y:100minimumWidth: 400 //最小宽度minimumHeight: 300 //最小高度ma…...

一文熟练使用python修改Excel中的数据
使用python修改Excel中的内容 1.初级修改 1.1 openpyxl库的功能: openpyxl模块是一个读写Excel 2010文档的Python库,如果要处理更早格式的Excel文档,需要用到额外的库,例如Xlwings。openpyxl是一个比较综合的工具,能…...

java Spring Boot在配置文件中关闭热部署
之前更大家一起搭建了一个热部署的开发环境 但是 大家要清楚一个情况 我们线上程序运行突然内部发生变化这是不可能的。 所以 他就只会对我们开发环境有效 是否开启 我们可以通过 application配置文件来完成 我这里是yml格式的 参考代码如下 spring:devtools:restart:enabled…...

【物联网】Arduino+ESP8266物联网开发(一):开发环境搭建 安装Arduino和驱动
ESP8266物联网开发 1.开发环境安装 开发软件下载地址: 链接: https://pan.baidu.com/s/1BaOY7kWTvh4Obobj64OHyA?pwd3qv8 提取码: 3qv8 1.1 安装驱动 将ESP8266连接到电脑上,安装ESP8266驱动CP210x 安装成功后,打开设备管理器,…...
自定义UI对象转流程节点
自定义UI对象转流程节点 实体自定义对象转bpmn activitiy学习 (动态加签,动态流程图,指定节点跳转,指定多人节点跳转) 前端页面仿的这个 提供一个思路 实体 ActivitiValueVo import io.swagger.annotations.ApiModel; import io.swagger.a…...

P1-P5_动手学深度学习-pytorch(李沐版,粗浅的笔记)
目录 预告 1.学习深度学习的关键是动手 2.什么是《动手学深度学习》 3.曾经推出的版本(含github链接) 一、课程安排 1.目标 2.内容 3.上课形式 4.你将学到什么 5.资源 二、深度学习的介绍 1.AI地图 2.深度学习在一些应用上…...

Android Studio修改模拟器AVD Manger目录
Android Studio修改虚拟机AVD Manger目录 1、在AS的设备管理器Device Manager中删除原来创建的所有虚拟机(Android Virtual Device); 2、新建一个自定义的AVD目录,例如:D:\Android\AndroidAVD 3、在高级系统设置中增加…...

STM32--MQ2烟雾传感器
本文主要介绍STM32F103C8T6和烟雾传感器模块的控制算法 简介 烟雾模块选用MQ-2气体传感器,根据传感器的电导率随空气中可燃气体浓度的增加而增大的特性检测空气中可燃气体,然后将电导率的变化转换成对应的电信号 MQ系列烟雾传感分类如下: 该…...

GitHub要求开启2FA,否则不让用了。
背景 其实大概在一个多月前,在 GitHub 网页端以及邮箱里都被提示:要求开启 2FA ,即双因子认证;但是当时由于拖延症和侥幸心理作祟,直接忽略了相关信息,毕竟“又不是不能用”。。 只到今天发现 GitHub 直接…...
Python 编程基础 | 第三章-数据类型 | 3.6、元组
一、元组 Python 的元组与列表类似,不同之处在于元组的元素不能修改。元组使用小括号,列表使用方括号。 1、创建元组 元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可,例如: tup1 (physics, ch…...

2023/10/7 -- ARM
【程序状态寄存器读写指令】 1.指令码以及格式 mrs:读取CPSR寄存器的值 mrs 目标寄存器 CPSR:读取CPSR的数值保存到目标寄存器中msr:修改CPSR寄存器的数值msr CPSR,第一操作数:将第一操作数的数值保存到CPSR寄存器中//修改CPSR寄存器,也就表示程序的状…...

yolov5加关键点回归
文章目录 一、数据1)数据准备2)标注文件说明 二、基于yolov5-face 修改自己的yolov5加关键点回归1、dataloader,py2、augmentations.py3、loss.py4、yolo.py 一、数据 1)数据准备 1、手动创建文件夹: yolov5-face-master/data/widerface/tr…...

untitle
实用的科研图形美化处理教程分享 显微照片排版标记 除了统计图表之外,显微照片也是文章中必不可少的实验结果呈现方式。除了常规实验的各种组织切片照片,在空间转录组文章中显微照片更是常见。显微照片的呈现方式也是有讲究的,比如对照片…...
《论文阅读》监督对抗性对比学习在对话中的情绪识别 ACL2023
《论文阅读》监督对抗性对比学习在对话中的情绪识别 前言摘要相关知识最坏样本干扰监督对比学习生成式对抗网络纳什均衡琴森香农散度范式球模型架构监督对抗性对比学习模型结构图实验结果问题前言 你是否也对于理解论文存在困惑? 你是否也像我之前搜索论文解读,得到只是中文…...

2023-10-07 LeetCode每日一题(股票价格跨度)
2023-10-07每日一题 一、题目编号 901. 股票价格跨度二、题目链接 点击跳转到题目位置 三、题目描述 设计一个算法收集某些股票的每日报价,并返回该股票当日价格的 跨度 。 当日股票价格的 跨度 被定义为股票价格小于或等于今天价格的最大连续日数(…...

聊聊分布式架构04——RPC通信原理
目录 RPC通信的基本原理 RPC结构 手撸简陋版RPC 知识点梳理 1.Socket套接字通信机制 2.通信过程的序列化与反序列化 3.动态代理 4.反射 思维流程梳理 码起来 服务端时序图 服务端—Api与Provider模块 客户端时序图 RPC通信的基本原理 RPC(Remote Proc…...

维吉尼亚密码
维吉尼亚密码属于多表代换密码 其中A<–>0,B<–>1,…,Z<–>25,则每个密钥K相当于一个长度为m的字母串,称为密钥字。维吉尼亚密码一次加密m个明文字母。 示例:设m6,密钥字为…...
ubuntu20.04挂载拓展盘保姆级流程
背景:跑模型玩时,发现机子硬盘太小了,搞个1t固态作为挂载盘。以下为操作全流程记录 1、开始root权限操作 sudo su若进不去,考虑是否给root设置过密码,新系统第一次进入需要设置密码。 进入成功: rooty:…...

基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真
目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销,平衡网络负载,延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...
【Java学习笔记】Arrays类
Arrays 类 1. 导入包:import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序(自然排序和定制排序)Arrays.binarySearch()通过二分搜索法进行查找(前提:数组是…...
前端倒计时误差!
提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...

江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命
在华东塑料包装行业面临限塑令深度调整的背景下,江苏艾立泰以一场跨国资源接力的创新实践,重新定义了绿色供应链的边界。 跨国回收网络:废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点,将海外废弃包装箱通过标准…...
WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)
一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解,适合用作学习或写简历项目背景说明。 🧠 一、概念简介:Solidity 合约开发 Solidity 是一种专门为 以太坊(Ethereum)平台编写智能合约的高级编…...
LLM基础1_语言模型如何处理文本
基于GitHub项目:https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken:OpenAI开发的专业"分词器" torch:Facebook开发的强力计算引擎,相当于超级计算器 理解词嵌入:给词语画"…...

智能仓储的未来:自动化、AI与数据分析如何重塑物流中心
当仓库学会“思考”,物流的终极形态正在诞生 想象这样的场景: 凌晨3点,某物流中心灯火通明却空无一人。AGV机器人集群根据实时订单动态规划路径;AI视觉系统在0.1秒内扫描包裹信息;数字孪生平台正模拟次日峰值流量压力…...

使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台
🎯 使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台 📌 项目背景 随着大语言模型(LLM)的广泛应用,开发者常面临多个挑战: 各大模型(OpenAI、Claude、Gemini、Ollama)接口风格不统一;缺乏一个统一平台进行模型调用与测试;本地模型 Ollama 的集成与前…...

保姆级教程:在无网络无显卡的Windows电脑的vscode本地部署deepseek
文章目录 1 前言2 部署流程2.1 准备工作2.2 Ollama2.2.1 使用有网络的电脑下载Ollama2.2.2 安装Ollama(有网络的电脑)2.2.3 安装Ollama(无网络的电脑)2.2.4 安装验证2.2.5 修改大模型安装位置2.2.6 下载Deepseek模型 2.3 将deepse…...

安宝特案例丨Vuzix AR智能眼镜集成专业软件,助力卢森堡医院药房转型,赢得辉瑞创新奖
在Vuzix M400 AR智能眼镜的助力下,卢森堡罗伯特舒曼医院(the Robert Schuman Hospitals, HRS)凭借在无菌制剂生产流程中引入增强现实技术(AR)创新项目,荣获了2024年6月7日由卢森堡医院药剂师协会࿰…...