欢迎光临
我们一直在努力

2026年Prometheus监控系统搭建教程:从VPS到全栈可观测性

Prometheus是目前最流行的开源监控系统,2026年已成为云原生可观测性的标准工具。从单台VPS的基础监控,到多节点集群的全栈可观测性,Prometheus能帮助你实时掌握服务器和应用的运行状态,及时发现和排查问题。本文将详细介绍Prometheus监控系统的搭建教程,从安装配置到告警可视化,帮你从零开始构建完整的监控体系。

一、Prometheus基础概念与架构

Prometheus是SoundCloud开源的监控告警系统,采用Go语言开发,2016年加入CNCF(云原生计算基金会),是继Kubernetes之后第二个毕业的项目。核心概念:1. 指标(Metric):Prometheus的核心数据模型,由指标名、标签(Label)、时间戳和值组成,支持多维数据模型;2. 实例(Instance):被监控的目标,如一台VPS、一个应用进程;3. 作业(Job):一组相同类型的实例集合,如web-servers、db-servers;4. 抓取(Scrape):Prometheus主动从目标的/metrics端点拉取指标数据,采用拉模型而非推模型;5. 序列(Time Series):同一指标名和标签组合的时间序列数据;6. PromQL:Prometheus的查询语言,用于查询和聚合指标数据;7. 告警规则(Alerting Rule):基于PromQL表达式定义告警条件,触发后发送到Alertmanager;8. Exporter:用于将第三方系统的指标转换为Prometheus格式的代理程序,如node_exporter、mysql_exporter等。Prometheus架构组件:Prometheus Server(核心,负责抓取和存储指标)、Exporters(采集指标)、Alertmanager(告警管理)、Pushgateway(推送网关,用于短生命周期任务)、Grafana(可视化展示)。Prometheus的优势:多维数据模型、强大的PromQL查询语言、拉模型简单可靠、单机性能强大、生态丰富、与Kubernetes深度集成。

二、在VPS上安装Prometheus

在VPS上安装Prometheus有多种方式,推荐使用Docker或二进制安装。二进制安装步骤:1. 下载Prometheus:从官方GitHub发布页下载最新版本的Linux二进制包,如wget https://github.com/prometheus/prometheus/releases/download/v2.53.0/prometheus-2.53.0.linux-amd64.tar.gz;2. 解压安装:tar xzf prometheus-2.53.0.linux-amd64.tar.gz,将prometheus和promtool二进制文件复制到/usr/local/bin/,将prometheus.yml配置文件复制到/etc/prometheus/,将consoles和console_libraries目录复制到/var/lib/prometheus/;3. 创建用户:useradd –no-create-home –shell /bin/false prometheus,设置文件所有者为prometheus用户;4. 创建Systemd服务:创建/etc/systemd/system/prometheus.service文件,定义服务启动命令、用户、工作目录等,执行systemctl daemon-reload && systemctl enable –now prometheus启动服务;5. 验证安装:访问http://服务器IP:9090,看到Prometheus Web界面表示安装成功。Docker安装更简单:docker run -d –name prometheus -p 9090:9090 -v /path/to/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus。VPS配置建议:Prometheus本身资源占用不大,1核2G的VPS即可运行小规模监控,监控目标超过50台建议2核4G以上。存储方面,Prometheus默认每2小时生成一个块,保留15天数据,可根据需要调整–storage.tsdb.retention.time参数。注意开放9090端口,建议配置防火墙只允许特定IP访问Prometheus Web界面。

三、配置Exporter采集指标

Exporter是Prometheus采集第三方系统指标的代理程序,将各种系统和应用的指标转换为Prometheus格式。常用Exporter:1. node_exporter:采集Linux服务器的系统指标,包括CPU、内存、磁盘、网络、文件系统、负载等,是最基础也是最常用的Exporter;2. mysql_exporter:采集MySQL/MariaDB数据库指标,包括连接数、查询数、慢查询、缓存命中率、复制状态等;3. redis_exporter:采集Redis指标,包括内存使用、连接数、命中率、命令统计、主从复制等;4. nginx_exporter(或nginx-prometheus-exporter):采集Nginx指标,包括活跃连接、请求数、状态码统计等;5. blackbox_exporter:黑盒监控,通过HTTP、HTTPS、DNS、TCP、ICMP等协议探测外部服务的可用性和响应时间;6. postgres_exporter:采集PostgreSQL指标;7. mongodb_exporter:采集MongoDB指标;8. cadvisor:采集容器指标,与Kubernetes集成。以node_exporter为例安装:1. 下载二进制包:wget https://github.com/prometheus/node_exporter/releases/download/v1.8.1/node_exporter-1.8.1.linux-amd64.tar.gz;2. 解压安装:tar xzf node_exporter-1.8.1.linux-amd64.tar.gz,将node_exporter复制到/usr/local/bin/;3. 创建Systemd服务并启动,默认监听9100端口;4. 在每台需要监控的VPS上安装node_exporter。配置Prometheus抓取目标:编辑prometheus.yml,在scrape_configs中添加job,如- job_name: ‘node’,static_configs: – targets: [‘192.168.1.10:9100’, ‘192.168.1.11:9100’],重启Prometheus生效。也可以使用文件服务发现(file_sd_configs)或Consul、Kubernetes等服务发现方式,动态管理监控目标。

四、PromQL查询与数据可视化

PromQL是Prometheus的查询语言,用于查询和聚合时间序列数据,是使用Prometheus的核心技能。PromQL基础:1. 指标查询:直接输入指标名,如node_cpu_seconds_total返回所有该指标的时间序列;2. 标签过滤:使用{}过滤标签,如node_cpu_seconds_total{cpu=”0″, mode=”idle”}只返回CPU0空闲时间的序列;3. 范围向量:使用[]指定时间范围,如node_cpu_seconds_total[5m]返回最近5分钟的数据点;4. 偏移量:使用offset指定时间偏移,如node_cpu_seconds_total offset 1h返回1小时前的数据;5. 操作符:支持算术运算(+、-、*、/、%、^)、比较运算(==、!=、>、<、>=、<=)、逻辑运算(and、or、unless)、聚合运算(sum、avg、max、min、count、topk、bottomk、quantile等)。常用查询示例:1. CPU使用率:100 - (avg by(instance) (rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100);2. 内存使用率:100 * (1 - (node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes));3. 磁盘使用率:100 * (1 - (node_filesystem_avail_bytes / node_filesystem_size_bytes));4. 网络入站流量:rate(node_network_receive_bytes_total[5m]) * 8(转换为bps);5. 系统负载:node_load1、node_load5、node_load15。数据可视化:Prometheus自带的Web界面支持简单的图表和表格展示,但功能有限。推荐使用Grafana进行可视化:1. 安装Grafana:docker run -d --name grafana -p 3000:3000 grafana/grafana;2. 添加Prometheus数据源:在Grafana中Configuration -> Data Sources -> Add data source,选择Prometheus,输入URL http://prometheus:9090;3. 导入Dashboard:Grafana官方市场有大量现成的Dashboard,如Node Exporter Full(ID: 1860)、MySQL Overview(ID: 7362)等,直接导入即可使用;4. 自定义Dashboard:根据需要创建自定义面板,使用PromQL查询数据,支持折线图、柱状图、饼图、表格、仪表盘、热力图等多种图表类型。Grafana还支持告警、变量、模板、团队协作等高级功能。

五、告警配置与Alertmanager

告警是监控系统的重要组成部分,Prometheus通过告警规则定义告警条件,Alertmanager负责告警的分组、抑制、静默和通知。告警规则配置:1. 创建告警规则文件:如alerts.yml,使用groups定义告警组,每个规则包含alert(告警名)、expr(PromQL表达式)、for(持续时间)、labels(标签,如severity: critical)、annotations(注释,如summary、description);2. 示例规则:- alert: HighCPUUsage,expr: 100 – (avg by(instance) (rate(node_cpu_seconds_total{mode=”idle”}[5m])) * 100) > 80,for: 5m,labels: {severity: warning},annotations: {summary: “Instance {{ $labels.instance }} CPU usage high”, description: “{{ $labels.instance }} CPU usage above 80% for 5 minutes”};3. 在prometheus.yml中引用规则文件:rule_files: – “alerts.yml”;4. 配置Alertmanager地址:alerting: alertmanagers: – static_configs: – targets: [‘localhost:9093’];5. 重启Prometheus生效。常用告警规则:CPU使用率过高、内存使用率过高、磁盘使用率过高、磁盘即将写满(预测)、服务宕机(up == 0)、接口响应时间过长、错误率过高、数据库连接数过多、Redis内存使用率过高、证书即将过期等。Alertmanager安装配置:1. 下载Alertmanager二进制包或使用Docker安装,默认监听9093端口;2. 配置alertmanager.yml,定义route(路由)、receivers(接收者)、inhibit_rules(抑制规则)、silence(静默)等;3. 路由配置:根据告警标签路由到不同接收者,如severity=critical的告警发送到电话+邮件+钉钉,severity=warning的告警发送到邮件+钉钉;4. 接收者支持:邮件(SMTP)、Webhook(钉钉、企业微信、飞书、Slack等)、PagerDuty、OpsGenie、VictorOps等;5. 分组:将相关告警分组发送,避免告警风暴;6. 抑制:高优先级告警触发时抑制低优先级告警,如服务器宕机时抑制该服务器上的应用告警;7. 静默:临时静默特定告警,用于维护期间。完善的告警配置能让你在问题发生时第一时间收到通知,快速响应和处理。

六、全栈可观测性最佳实践

全栈可观测性包括指标(Metrics)、日志(Logs)、链路追踪(Tracing)三大支柱,Prometheus负责指标,配合其他工具构建完整的可观测性体系。指标监控最佳实践:1. 分层监控:基础设施层(CPU、内存、磁盘、网络)、中间件层(Nginx、MySQL、Redis、消息队列)、应用层(业务指标、接口响应时间、错误率)、业务层(订单量、用户数、转化率),层层覆盖;2. 黄金信号:延迟(Latency)、流量(Traffic)、错误(Errors)、饱和度(Saturation),这四个黄金信号是监控服务健康状况的核心;3. 告警分级:P0(紧急,如服务完全不可用,电话+短信通知)、P1(严重,如核心功能异常,电话+邮件通知)、P2(警告,如性能下降,邮件+IM通知)、P3(提示,如资源使用率偏高,仅记录不通知);4. 避免告警疲劳:合理设置告警阈值和持续时间,只告警真正需要人工介入的问题,减少无效告警;5. 定期回顾告警:定期分析告警数据,优化告警规则,减少误报和漏报。日志管理:配合Loki(轻量级日志聚合,与Prometheus/Grafana生态无缝集成)或ELK(Elasticsearch + Logstash + Kibana)收集和分析日志,实现指标与日志的关联分析,排查问题时从指标异常跳转到相关日志。链路追踪:配合Jaeger或Zipkin实现分布式链路追踪,在微服务架构中追踪请求在各个服务间的调用链路,定位性能瓶颈和错误。Grafana统一展示:Grafana支持Prometheus、Loki、Jaeger等多种数据源,可以在一个Dashboard中同时展示指标、日志和链路追踪,实现统一的可观测性平台。长期存储:Prometheus默认本地存储,长期保存大量数据时推荐使用远程存储,如Thanos、Cortex、VictoriaMetrics、Mimir等,支持无限存储、全局查询、高可用等特性。安全加固:Prometheus Web界面和Exporter端口不应暴露在公网,建议使用防火墙限制访问,或配置Nginx反向代理加Basic Auth认证,敏感环境使用TLS加密和客户端证书认证。完善的可观测性体系能让你全面了解系统运行状态,快速定位和解决问题,提升系统可靠性。

更多Prometheus监控教程和靠谱云服务器推荐,欢迎访问主机测评网zhujishang.com,我们持续更新监控运维教程、VPS性能评测和云服务器选购指南,帮你选到最适合的监控系统主机方案。

赞(0) 打赏
主机商所有内容均来自网络,若无意侵犯到您的权利,请及时与联系 QQ 2232175042,将在48小时内删除相关内容!!主机测评网 » 2026年Prometheus监控系统搭建教程:从VPS到全栈可观测性

主机商评测网 找服务器 更专业 更方便 更快捷!

专注IDC行业资源共享发布,给大家带来方便快捷的资源查找平台!

联系我们

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续提供更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫