首页/新闻资讯/正文详情

Prometheus在Ubuntu 22.04上的部署与优化实践

发布时间:2026/11/6 2:07:05 来源:云帆数科 栏目:资讯中心
Prometheus在Ubuntu 22.04上的部署与优化实践
1. 运维监控系统选型与Prometheus核心优势在当今复杂的IT基础设施环境中监控系统已经成为运维工作的神经中枢。作为一名有十年运维经验的工程师我见证过从Nagios到Zabbix再到Prometheus的技术演进历程。为什么Prometheus能在短短几年内成为云原生时代的监控标准这要从它的设计哲学说起。Prometheus采用拉取(Pull)模式采集指标这与传统推模式(Push)的监控系统形成鲜明对比。它的核心组件包括时间序列数据库(TSDB)高效存储多维数据灵活的查询语言(PromQL)支持实时聚合和计算多维度数据模型通过标签(label)系统实现细粒度分类在Ubuntu 22.04上部署Prometheus有几个显著优势长期支持版本(LTS)确保系统稳定性官方APT仓库提供最新软件包systemd集成简化服务管理完善的文档和社区支持提示生产环境中建议将Prometheus部署在专用监控节点避免与业务服务争抢资源。我在多个项目中实测发现混部会导致监控数据采集出现周期性波动。2. Ubuntu 22.04环境准备与依赖安装2.1 系统基础配置在开始安装前我们需要确保系统处于最佳状态。以下是我总结的三步检查法更新软件源并升级现有包sudo apt update sudo apt upgrade -y检查关键依赖版本lsb_release -a # 确认Ubuntu 22.04 uname -r # 内核版本应≥5.15创建专用监控用户安全最佳实践sudo useradd --no-create-home --shell /bin/false prometheus2.2 防火墙配置现代Ubuntu默认使用ufw防火墙需要放行Prometheus的默认端口(9090)sudo ufw allow 9090/tcp comment Prometheus web UI sudo ufw enable注意如果使用云服务器还需在安全组中配置相应规则。我曾遇到过因遗漏云平台安全组配置导致监控数据中断的案例。3. Prometheus核心组件安装与配置3.1 二进制包安装虽然Ubuntu提供了snap包但我推荐使用官方二进制包以获得最新特性下载最新稳定版截至2023年7月为2.47.0wget https://github.com/prometheus/prometheus/releases/download/v2.47.0/prometheus-2.47.0.linux-amd64.tar.gz解压并安装到标准位置tar xvf prometheus-*.tar.gz sudo cp prometheus-*/prometheus /usr/local/bin/ sudo cp prometheus-*/promtool /usr/local/bin/验证安装prometheus --version # 应显示版本信息3.2 目录结构与权限配置规范的目录结构能大幅降低后期维护成本sudo mkdir /etc/prometheus sudo mkdir /var/lib/prometheus sudo chown prometheus:prometheus /var/lib/prometheus3.3 主配置文件详解/etc/prometheus/prometheus.yml是核心配置文件以下是我优化过的生产级配置模板global: scrape_interval: 15s evaluation_interval: 15s rule_files: - alert.rules scrape_configs: - job_name: prometheus static_configs: - targets: [localhost:9090] - job_name: node static_configs: - targets: [node-exporter:9100]关键参数说明scrape_interval采集频率生产环境建议15-30sevaluation_interval告警规则评估间隔targets监控端点列表支持DNS轮询4. Systemd服务集成与优化4.1 服务单元文件配置创建/etc/systemd/system/prometheus.service文件[Unit] DescriptionPrometheus Wantsnetwork-online.target Afternetwork-online.target [Service] Userprometheus Groupprometheus ExecStart/usr/local/bin/prometheus \ --config.file/etc/prometheus/prometheus.yml \ --storage.tsdb.path/var/lib/prometheus \ --web.console.templates/etc/prometheus/consoles \ --web.console.libraries/etc/prometheus/console_libraries \ --web.listen-address0.0.0.0:9090 Restartalways [Install] WantedBymulti-user.target4.2 服务管理命令启动并启用服务sudo systemctl daemon-reload sudo systemctl start prometheus sudo systemctl enable prometheus检查服务状态systemctl status prometheus # 正常应显示active (running)4.3 性能调优经验根据服务器配置调整启动参数--storage.tsdb.retention.time数据保留周期默认15d--storage.tsdb.wal-compression启用WAL压缩减少IO--query.max-concurrency查询并发数控制在我的32核服务器上以下配置表现出色ExecStart/usr/local/bin/prometheus \ --config.file/etc/prometheus/prometheus.yml \ --storage.tsdb.path/var/lib/prometheus \ --storage.tsdb.retention.time30d \ --storage.tsdb.wal-compression \ --query.max-concurrency405. 监控数据验证与可视化5.1 基础指标检查访问http://server-ip:9090/graph尝试执行基础PromQL查询up{jobprometheus} # 服务状态 process_resident_memory_bytes # 内存占用 rate(prometheus_tsdb_head_samples_appended_total[1m]) # 采样率5.2 Node Exporter部署监控主机资源需安装node_exporterwget https://github.com/prometheus/node_exporter/releases/download/v1.6.1/node_exporter-1.6.1.linux-amd64.tar.gz tar xvf node_exporter-*.tar.gz sudo cp node_exporter-*/node_exporter /usr/local/bin/创建专用服务文件[Unit] DescriptionNode Exporter Afternetwork.target [Service] Usernode_exporter ExecStart/usr/local/bin/node_exporter [Install] WantedBymulti-user.target5.3 告警规则配置创建/etc/prometheus/alert.rules文件示例groups: - name: host_stats rules: - alert: HighMemoryUsage expr: (node_memory_MemTotal_bytes - node_memory_MemAvailable_bytes) / node_memory_MemTotal_bytes 0.9 for: 5m labels: severity: warning annotations: summary: High memory usage on {{ $labels.instance }} description: Memory usage is {{ $value }}%6. 生产环境运维经验分享6.1 数据备份策略Prometheus数据存储在/var/lib/prometheus目录建议采用以下备份方案每小时快照prometheus tsdb snapshot每日全量备份到对象存储定期测试恢复流程6.2 性能瓶颈排查常见性能问题及解决方法高查询延迟增加--query.max-concurrencyOOM崩溃限制--storage.tsdb.max-block-duration磁盘IO高启用--storage.tsdb.wal-compression6.3 版本升级指南安全升级步骤停止服务并创建快照备份配置文件安装新版本二进制启动服务并监控48小时我在升级2.40→2.47时遇到的坑新版本弃用了一些指标名称查询语法有细微变化内存占用模型优化明显7. 监控体系扩展建议7.1 与Grafana集成虽然Prometheus自带UI但Grafana提供更强大的可视化sudo apt-get install -y grafana sudo systemctl start grafana-server推荐仪表板Node Exporter Full (ID: 1860)Prometheus 2.0 Stats (ID: 3662)7.2 监控Kubernetes集群使用kube-prometheus-stack可快速监控K8shelm repo add prometheus-community https://prometheus-community.github.io/helm-charts helm install kube-prometheus-stack prometheus-community/kube-prometheus-stack7.3 自定义Exporter开发当标准Exporter不满足需求时可以使用client_golang库开发自定义Exporter。以下是简单示例package main import ( net/http github.com/prometheus/client_golang/prometheus github.com/prometheus/client_golang/prometheus/promhttp ) func main() { requests : prometheus.NewCounter( prometheus.CounterOpts{ Name: myapp_requests_total, Help: Total number of requests, }, ) prometheus.MustRegister(requests) http.Handle(/metrics, promhttp.Handler()) http.ListenAndServe(:8080, nil) }这套监控方案已经在我的生产环境稳定运行3年监控着超过200台服务器和30个Kubernetes集群。记住监控系统的黄金法则先监控监控系统本身。建议为Prometheus设置独立的监控循环确保监控系统的健康状况始终可见。

相关推荐

图算法剪枝与启发式策略优化实战解析
图算法剪枝与启发式策略优化实战解析

1. 图算法剪枝与启发式策略的核心价值在复杂网络分析与路径优化领域,图算法剪枝与启发式策略的结合应用正在成为提升计算效率的黄金组合。最近接手的一个物流路径优化项目让我深刻体会到:当图规模达到百万级节点时,未经优化的Dijkstra算法需要… · 2026/11/5 7:21:22

Cypress USB3.0驱动开发实战:从枚举到300MB/s带宽调优
Cypress USB3.0驱动开发实战:从枚举到300MB/s带宽调优

1. 为什么我要啃 Cypress USB3.0 驱动这块硬骨头搞嵌入式的人多少都碰过 Cypress 的 USB 芯片,尤其是 FX3 这一系列,在工业相机、数据采集卡、高速传输模块里出镜率极高。但很多人拿到开发板之后,跑个官方例程、点个灯、传几帧数据就觉得完事… · 2026/11/5 3:50:14

Cypress USB3.0驱动开发实战:从枚举到带宽调优的完整指南
Cypress USB3.0驱动开发实战:从枚举到带宽调优的完整指南

1. 为什么我要啃 Cypress USB3.0 驱动这块硬骨头搞嵌入式的人多少都碰过 USB 相关的活儿,但真正从零把一颗 Cypress USB3.0 控制器在系统里跑通、把驱动链路捋顺,这件事的坑远比想象中多。我前后折腾了差不多两个月,中间推翻重来了三次方案&a… · 2026/11/5 0:40:22

Spark 3.2.0 + Hadoop 3.2 预编译包部署避坑指南
Spark 3.2.0 + Hadoop 3.2 预编译包部署避坑指南

简介:本资源为 Apache Spark 3.2.0 官方二进制发行版(Hadoop 3.2 兼容构建),面向大数据开发工程师、数据科学家及高校学习者,用于快速部署本地或集群环境下的分布式计算平台,支撑批处理、实时流计算、SQL分… · 2026/11/6 2:06:33

单机VT调试器从入门到避坑:VMXON、EPT与内核观测实战
单机VT调试器从入门到避坑:VMXON、EPT与内核观测实战

简介:「滴水单机VT调试器」是面向虚拟化环境的专业调试工具,适合排查虚拟机底层问题的软件开发者、系统管理员与安全研究人员,可支撑代码级单步调试、CPU/内存与I/O资源监测、异常故障定位及多平台兼容性验证等场景,专业性强、上手… · 2026/11/6 2:06:33

单机VT调试器实战:VMX/VMCS与EPT断点调试
单机VT调试器实战:VMX/VMCS与EPT断点调试

简介:滴水单机VT调试器面向虚拟化环境下的软件开发者与系统管理员,围绕代码级调试、性能分析、故障排查、兼容性测试和安全观察等场景,帮助读者在正式采用前评估工具的可用性与运行表现。压缩包为rar格式,共143个文件,… · 2026/11/6 2:06:33

GV7704 Linux驱动安装实战:固件路径与内核兼容性避坑指南
GV7704 Linux驱动安装实战:固件路径与内核兼容性避坑指南

简介:本资源为海思Hisi3531A平台专用的gv7704 SDI视频采集驱动源码包,面向嵌入式Linux驱动开发工程师、音视频设备集成商及广电级视频处理系统开发者,解决SDI高清视频信号在国产SoC平台上的稳定接入、参数查询与底层控制问题。压缩包共10个文… · 2026/11/6 2:06:33

GV7704驱动深度解析:寄存器映射、I²C时序劫持与硬件复位避坑指南
GV7704驱动深度解析:寄存器映射、I²C时序劫持与硬件复位避坑指南

简介:本资源是面向嵌入式Linux驱动开发工程师与海思平台系统集成人员的GV7704视频采集设备驱动实现,专为Hisi3531A芯片平台定制,解决SDI高清视频信号接入、解析与状态监控等核心问题,适用于广播级视频采集、安防监控前端及多媒体边… · 2026/11/6 2:06:33

Win10重装后卡1024×768:KX-6000显卡驱动安装与排错指南
Win10重装后卡1024×768:KX-6000显卡驱动安装与排错指南

简介:这份兆芯 KX-6000 系列 Windows 10 显卡驱动包,面向联想开天系列笔记本及搭载兆芯 KX-6000 平台、升级 Win10 后显卡无法被系统自动识别或安装的用户。压缩包共 29 个文件,约 19.48MB,以 dll 动态库、exe 工具、sys 驱动文件… · 2026/11/6 2:05:33

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:27:59

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:28:03

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:28:07

三菱PLC数据采集到数据库的时序设计:Python+MC协议实战
三菱PLC数据采集到数据库的时序设计:Python+MC协议实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/6 1:02:11

ASIC主模式RTL设计:状态机与三态驱动的流片级实现
ASIC主模式RTL设计:状态机与三态驱动的流片级实现

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/6 1:02:11

STM32嵌入式C++开发:GDB调试与Renode仿真实战指南
STM32嵌入式C++开发:GDB调试与Renode仿真实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/6 1:02:11

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:27:59

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:28:03

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:28:07

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码