资讯动态

三天速通Prometheus+Grafana:从零搭建服务器监控可视化面板

发布时间:2026/8/21 3:38:50 来源:尧图企业网站定制
这次我们来看一个服务器监控的经典组合Prometheus Grafana。如果你负责运维、开发或者管理服务器这套工具能帮你快速搭建起一套可视化监控面板从 CPU、内存、磁盘到网络流量所有指标一目了然。它的核心价值在于开源、灵活、功能强大并且社区生态极其丰富。对于很多刚接触监控的新手来说Prometheus 的配置和 Grafana 的仪表盘制作可能有些门槛。这篇文章的目标就是帮你“速通”用三天时间从零开始完成环境准备、组件安装、数据采集、面板配置最终得到一个能实时反映服务器健康状况的监控大盘。整个过程会聚焦在单机或简单集群环境确保小白也能直接上手。我们会重点关注几个核心问题这套方案对硬件有什么要求安装过程有哪些坑如何快速配置出第一个监控图表以及当监控数据出来之后怎么用它来发现潜在问题文章将严格按照“环境准备 - 安装部署 - 功能配置 - 效果验证 - 问题排查”的流程展开并提供每一步的具体命令和配置示例。1. 核心能力速览在深入细节之前我们先通过一个表格快速了解 Prometheus Grafana 组合的核心能力和特点这有助于你判断它是否适合你的场景。能力项说明监控对象服务器Linux/Windows、应用服务如 Nginx, MySQL、容器Docker、编排平台Kubernetes等。数据模型基于时间序列的多维数据模型通过指标名称Metric和键值对标签Label来标识数据。采集方式主要采用 Pull拉取模型Prometheus 定期从配置好的目标TargetsHTTP 端点抓取指标。也支持 Pushgateway 用于短期任务。查询语言PromQLPrometheus Query Language功能强大可用于数据查询、聚合、预测等。可视化原生 UI 较简单通常与 Grafana 集成。Grafana 提供强大的仪表盘Dashboard定制、图表绘制和告警功能。告警管理Prometheus 的 Alertmanager 组件负责处理告警支持分组、抑制、静默和通过多种渠道如邮件、钉钉、Webhook发送通知。存储本地时序数据库TSDB适合监控数据。也支持远程读写接口可与长期存储方案集成。资源需求相对轻量。Prometheus 对 CPU 和内存的消耗与抓取目标数量和指标数量正相关。单节点测试环境 2核4G 足够起步。部署复杂度单体部署简单通过配置文件即可。大规模集群部署需要规划服务发现、高可用等。适合场景基础设施监控、应用性能监控APM、业务指标监控、SLA 报表生成等。2. 适用场景与使用边界Prometheus Grafana 是一套非常通用的监控解决方案但它并非万能。明确其适用场景和边界能帮助你更好地决策。它非常适合以下场景云原生与容器监控它是 Cloud Native Computing Foundation (CNCF) 毕业项目与 Kubernetes、Docker 等云原生技术栈集成度极高是监控容器化应用的事实标准之一。自定义业务指标监控你的应用程序可以通过 Client Library如 Go、Java、Python轻松暴露自定义指标例如订单处理数、用户活跃度Prometheus 可以抓取并存储这些数据。多维度基础设施监控通过各类 Exporter导出器可以监控服务器的硬件资源、网络设备、数据库、消息队列、Web服务器等并通过标签进行灵活的筛选和聚合。长期趋势分析与容量规划基于历史数据你可以分析资源使用的增长趋势为未来的扩容提供数据支持。实时告警结合 Alertmanager可以设置基于 PromQL 的复杂告警规则在系统出现异常时及时通知相关人员。它的局限性或需要注意的边界非事务性数据Prometheus 设计用于监控指标不适合存储事件日志、用户行为追踪等非指标类数据。这类需求可考虑 ELKElasticsearch, Logstash, Kibana或 Loki。短期存储与采样默认本地存储数据保留时间通常为15天到几个月可配置。对于需要多年历史数据归档的场景需要配置远程存储如 Thanos, Cortex。拉模型Pull的挑战对于生命周期短暂或位于防火墙后的服务Prometheus 可能无法直接拉取数据需要借助 Pushgateway 或服务发现等机制。非100%精确Prometheus 是为可靠性监控而设计在极端情况下如监控目标宕机可能会丢失少量数据采样不适用于需要100%精确计费的场景。学习曲线Prometheus 的核心——PromQL功能强大但有一定学习成本。Grafana 面板的灵活配置也需要时间熟悉。3. 环境准备与前置条件在开始安装之前请确保你的环境满足以下基本要求。我们将以最常见的 Linux 服务器如 CentOS 7/8 或 Ubuntu 20.04/22.04为例进行说明。操作系统与权限系统一个运行 Linux 的服务器或虚拟机。本文命令在 CentOS 和 Ubuntu 上测试通过。权限你需要拥有sudo权限或直接是root用户来执行安装和配置命令。网络服务器需要能访问互联网以下载安装包并且 Prometheus 需要能通过网络访问到被监控目标的指标暴露端口默认为9100等。资源要求CPU至少 1 核建议 2 核以上以获得更好的查询性能。内存至少 2 GB。实际占用取决于监控的目标数量和指标频率。生产环境建议 4GB 或更多。磁盘至少 10 GB 可用空间用于存储时序数据。监控数据增长较快需预留充足空间。端口确保以下端口在防火墙中开放或未被占用9090Prometheus 服务默认端口。3000Grafana 服务默认端口。9100Node Exporter用于监控 Linux 主机默认端口。软件依赖wget/curl用于从网络下载安装包。tar用于解压下载的压缩包。systemd推荐用于将服务配置为系统服务实现开机自启和便捷管理。在开始前建议更新系统包并安装基础工具# 对于 Ubuntu/Debian sudo apt update sudo apt upgrade -y sudo apt install -y wget curl tar # 对于 CentOS/RHEL sudo yum update -y sudo yum install -y wget curl tar4. 安装部署与启动方式我们将分步安装三个核心组件Prometheus Server、Node Exporter 和 Grafana。4.1 安装 Prometheus ServerPrometheus Server 是核心负责抓取和存储时间序列数据。下载 Prometheus 访问 Prometheus 官方下载页 找到最新稳定版的 Linux 二进制文件。使用wget下载。# 创建一个工作目录 sudo mkdir -p /opt/prometheus cd /opt/prometheus # 下载 Prometheus (请替换为最新版本号例如 2.51.2) sudo wget https://github.com/prometheus/prometheus/releases/download/v2.51.2/prometheus-2.51.2.linux-amd64.tar.gz # 解压 sudo tar xvf prometheus-2.51.2.linux-amd64.tar.gz sudo mv prometheus-2.51.2.linux-amd64 prometheus-server创建 Prometheus 系统用户和目录安全考虑sudo useradd --no-create-home --shell /bin/false prometheus sudo mkdir -p /etc/prometheus sudo mkdir -p /var/lib/prometheus sudo chown -R prometheus:prometheus /etc/prometheus /var/lib/prometheus sudo chown -R prometheus:prometheus /opt/prometheus/prometheus-server配置 Prometheus 主要的配置文件是prometheus.yml。我们先创建一个基础配置。sudo cp /opt/prometheus/prometheus-server/prometheus.yml /etc/prometheus/ sudo chown prometheus:prometheus /etc/prometheus/prometheus.yml编辑配置文件/etc/prometheus/prometheus.ymlglobal: scrape_interval: 15s # 抓取间隔默认15秒 evaluation_interval: 15s # 规则评估间隔用于告警 alerting: alertmanagers: - static_configs: - targets: # - alertmanager:9093 # 暂时注释后续配置告警时启用 rule_files: # - first_rules.yml # - second_rules.yml scrape_configs: - job_name: prometheus # 监控 Prometheus 自身 static_configs: - targets: [localhost:9090] # 我们将在下一步添加 node_exporter 的 job创建 Systemd 服务文件 创建文件/etc/systemd/system/prometheus.service[Unit] DescriptionPrometheus Server Wantsnetwork-online.target Afternetwork-online.target [Service] Userprometheus Groupprometheus Typesimple ExecStart/opt/prometheus/prometheus-server/prometheus \ --config.file/etc/prometheus/prometheus.yml \ --storage.tsdb.path/var/lib/prometheus/ \ --web.console.templates/opt/prometheus/prometheus-server/consoles \ --web.console.libraries/opt/prometheus/prometheus-server/console_libraries \ --web.listen-address0.0.0.0:9090 Restartalways [Install] WantedBymulti-user.target启动并启用 Prometheus 服务sudo systemctl daemon-reload sudo systemctl start prometheus sudo systemctl enable prometheus sudo systemctl status prometheus # 检查状态应为 active (running)现在你可以通过浏览器访问http://你的服务器IP:9090来打开 Prometheus 的原生 Web UI。4.2 安装 Node ExporterNode Exporter 用于暴露 Linux 主机的硬件和操作系统指标。下载 Node Exportercd /opt sudo wget https://github.com/prometheus/node_exporter/releases/download/v1.8.0/node_exporter-1.8.0.linux-amd64.tar.gz sudo tar xvf node_exporter-1.8.0.linux-amd64.tar.gz sudo mv node_exporter-1.8.0.linux-amd64 node_exporter创建系统用户sudo useradd --no-create-home --shell /bin/false node_exporter sudo chown -R node_exporter:node_exporter /opt/node_exporter创建 Systemd 服务文件 创建文件/etc/systemd/system/node_exporter.service[Unit] DescriptionNode Exporter Wantsnetwork-online.target Afternetwork-online.target [Service] Usernode_exporter Groupnode_exporter Typesimple ExecStart/opt/node_exporter/node_exporter Restartalways [Install] WantedBymulti-user.target启动并启用 Node Exportersudo systemctl daemon-reload sudo systemctl start node_exporter sudo systemctl enable node_exporter sudo systemctl status node_exporterNode Exporter 默认监听9100端口。访问http://你的服务器IP:9100/metrics应该能看到大量的文本格式指标。修改 Prometheus 配置以抓取 Node Exporter 编辑/etc/prometheus/prometheus.yml在scrape_configs部分添加一个新的 jobscrape_configs: - job_name: prometheus static_configs: - targets: [localhost:9090] - job_name: node_exporter # 新增的 job static_configs: - targets: [localhost:9100] # Node Exporter 的地址 labels: instance: monitor-server-01 # 给这台服务器起个名字保存后重新加载 Prometheus 配置sudo systemctl reload prometheus在 Prometheus UI (http://IP:9090/targets) 的 “Targets” 页面应该能看到node_exporter的状态为 “UP”。4.3 安装 GrafanaGrafana 用于数据可视化我们将通过包管理器安装。安装 Grafana对于 Ubuntu/Debiansudo apt-get install -y software-properties-common sudo add-apt-repository deb https://packages.grafana.com/oss/deb stable main wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add - sudo apt-get update sudo apt-get install -y grafana对于 CentOS/RHELcat EOF | sudo tee /etc/yum.repos.d/grafana.repo [grafana] namegrafana baseurlhttps://packages.grafana.com/oss/rpm repo_gpgcheck1 enabled1 gpgcheck1 gpgkeyhttps://packages.grafana.com/gpg.key sslverify1 sslcacert/etc/pki/tls/certs/ca-bundle.crt EOF sudo yum install -y grafana启动并启用 Grafana 服务sudo systemctl daemon-reload sudo systemctl start grafana-server sudo systemctl enable grafana-server sudo systemctl status grafana-serverGrafana 默认监听3000端口。首次访问http://你的服务器IP:3000使用默认账号admin和密码admin登录系统会要求你立即修改密码。5. 功能测试与效果验证现在三个核心组件都已运行。我们来验证它们是否正常工作并创建第一个监控面板。5.1 验证组件状态Prometheus Targets访问http://IP:9090/targets。你应该看到两个目标prometheus和node_exporter状态均为 “UP”。这证明 Prometheus 能成功抓取自身和 Node Exporter 的指标。Prometheus Graph访问http://IP:9090/graph。在查询框输入up并执行。up{jobprometheus}和up{jobnode_exporter}的值都应为1。up1表示抓取成功up0表示失败。Node Exporter Metrics访问http://IP:9100/metrics。页面应返回大量以# HELP和# TYPE开头的注释行以及形如node_cpu_seconds_total{cpu0,modeidle} 12345.67的指标数据。Grafana 登录访问http://IP:3000使用修改后的管理员密码登录。能成功进入主界面即表示 Grafana 服务正常。5.2 在 Grafana 中添加 Prometheus 数据源这是连接 Grafana 和 Prometheus 的关键一步。在 Grafana 侧边栏点击Configuration齿轮图标-Data Sources。点击Add data source。选择Prometheus。在配置页面唯一必须填写的是HTTP URL填入http://localhost:9090如果 Grafana 和 Prometheus 安装在同一台服务器。其他设置可以保持默认。点击页面下方的Save test。如果配置正确你会看到绿色的 “Data source is working” 提示。5.3 导入第一个仪表盘Dashboard手动创建面板需要学习 PromQL对于新手最快的方式是导入社区现成的仪表盘。在 Grafana 侧边栏点击Dashboards四个方块图标-New-Import。在Import via grafana.com输入框中输入仪表盘 ID1860这是一个非常流行且全面的 Node Exporter 全指标仪表盘然后点击Load。在下一个页面为仪表盘命名例如 “Linux Server Metrics”并选择我们刚才添加的 Prometheus 数据源然后点击Import。导入成功后你将立即看到一个包含 CPU、内存、磁盘、网络、负载等几乎所有主机指标的监控大盘。图表会自动刷新展示当前服务器的实时状态。至此一个基础的服务器可视化监控面板已经搭建完成。6. 接口 API 与批量任务虽然 Prometheus 主要使用 Pull 模型但它也提供了丰富的 HTTP API可用于集成、自动化查询和数据导出。Grafana 同样提供了 API 用于仪表盘和用户的自动化管理。6.1 Prometheus HTTP API 基础使用Prometheus API 默认地址是http://localhost:9090/api/v1。瞬时向量查询查询当前时刻的指标值。# 使用 curl 查询 up 指标 curl -G http://localhost:9090/api/v1/query \ --data-urlencode queryup返回的是 JSON 格式数据包含了指标名称、标签和当前值。范围查询查询一段时间内的指标数据。# 查询过去5分钟内 node_load1 指标的数据步长为15秒 curl -G http://localhost:9090/api/v1/query_range \ --data-urlencode querynode_load1 \ --data-urlencode start$(date -d 5 minutes ago %s) \ --data-urlencode end$(date %s) \ --data-urlencode step15s这在需要获取历史数据绘图或分析时非常有用。查询所有指标列表curl http://localhost:9090/api/v1/label/__name__/values6.2 使用 Python 脚本进行批量查询与告警判断你可以编写脚本定期调用 Prometheus API 查询关键指标并根据阈值执行自定义逻辑如发送通知、执行修复脚本。import requests import json import time PROMETHEUS_URL http://localhost:9090/api/v1/query def query_prometheus(promql): 执行 PromQL 查询 try: response requests.get(PROMETHEUS_URL, params{query: promql}, timeout10) response.raise_for_status() data response.json() if data[status] success: return data[data][result] else: print(fQuery failed: {data.get(error, Unknown error)}) return [] except requests.exceptions.RequestException as e: print(fRequest error: {e}) return [] def check_cpu_usage(threshold80): 检查平均 CPU 使用率是否超过阈值 # PromQL: 100 - (avg by (instance) (rate(node_cpu_seconds_total{modeidle}[1m])) * 100) query 100 - (avg by (instance) (rate(node_cpu_seconds_total{modeidle}[1m])) * 100) results query_prometheus(query) for result in results: instance result[metric].get(instance, unknown) value float(result[value][1]) if value threshold: print(f[ALERT] High CPU usage on {instance}: {value:.2f}% (Threshold: {threshold}%)) # 这里可以集成邮件、钉钉、企业微信等告警发送逻辑 else: print(f[OK] CPU usage on {instance}: {value:.2f}%) if __name__ __main__: # 每60秒检查一次 while True: print(f\n--- Check at {time.strftime(%Y-%m-%d %H:%M:%S)} ---) check_cpu_usage(threshold85) # 设置阈值为85% time.sleep(60)6.3 Grafana API 与仪表盘导出Grafana API 可以用于自动化创建、更新、导出仪表盘。获取 API 密钥在 Grafana 中点击侧边栏Configuration-API Keys-Add API Key。创建一个具有Admin角色的密钥。使用 API 导出仪表盘# 假设你的仪表盘UID是 ‘abc123’API_KEY 已替换 DASHBOARD_UIDabc123 API_KEYeyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk... GRAFANA_URLhttp://localhost:3000 curl -H Authorization: Bearer $API_KEY \ -H Content-Type: application/json \ $GRAFANA_URL/api/dashboards/uid/$DASHBOARD_UID dashboard_export.json导出的 JSON 文件可以用于备份或通过 API 再导入到其他 Grafana 实例实现配置的批量迁移。7. 资源占用与性能观察部署完成后了解这套监控系统自身的资源消耗很重要避免监控系统本身成为服务器的负担。观察方法通过系统命令使用top,htop,free -m,df -h等命令查看 Prometheus、Node Exporter、Grafana 进程的 CPU、内存占用以及数据目录的磁盘使用情况。通过 Prometheus 自身监控访问 Prometheus UI (http://IP:9090/graph)查询以下内置指标进程内存process_resident_memory_bytes{jobprometheus}CPU 时间rate(process_cpu_seconds_total{jobprometheus}[1m])数据存储prometheus_tsdb_storage_blocks_bytes(总字节数)抓取性能scrape_duration_seconds(每次抓取耗时)通过 Grafana 仪表盘可以导入 Prometheus 自身的监控仪表盘ID 如3662更直观地观察其资源使用趋势。影响性能的主要因素抓取目标数量监控的服务器、服务越多Prometheus 需要维护的时序数据就越多内存和 CPU 消耗越大。抓取频率scrape_interval设置得越短数据粒度越细但负载也越高。通常 15s-1min 是合理范围。指标数量每个目标暴露的指标数量。Node Exporter 会暴露数百个指标。自定义应用要避免暴露过多无意义的指标。数据保留时间storage.tsdb.retention.time默认为 15天。保留时间越长磁盘占用越大。查询负载复杂的 PromQL 查询或 Grafana 仪表盘频繁刷新会给 Prometheus 带来计算压力。优化建议规划抓取目标只监控必要的服务。调整抓取间隔对于变化不频繁的指标可以适当拉长间隔。使用记录规则将频繁使用的复杂查询或高开销聚合计算预先计算好保存为新的时间序列可以大幅提升查询性能。在prometheus.yml的rule_files部分配置。监控数据生命周期定期清理过期数据或规划使用远程长期存储如 Thanos。分离读写对于大规模部署可以考虑将 Prometheus 实例按功能或业务线拆分。8. 常见问题与排查方法在部署和使用过程中你可能会遇到一些问题。下表列出了一些常见问题及其解决方法。问题现象可能原因排查方式解决方案Prometheus 服务启动失败1. 配置文件语法错误。2. 数据目录权限问题。3. 端口被占用。1.sudo systemctl status prometheus查看错误日志。2.sudo journalctl -u prometheus -f跟踪日志。3.sudo netstat -tlnp | grep :9090检查端口。1. 使用promtool check config /etc/prometheus/prometheus.yml检查配置。2. 确保/var/lib/prometheus目录属主是prometheus用户。3. 杀死占用端口的进程或修改 Prometheus 启动端口 (--web.listen-address)。Prometheus Targets 显示 DOWN1. 目标服务未运行。2. 网络不通或防火墙阻止。3. Prometheus 配置中的目标地址/端口错误。1. 检查目标服务状态如systemctl status node_exporter。2. 从 Prometheus 服务器curl http://目标IP:端口/metrics测试连通性。3. 核对prometheus.yml中targets配置。1. 启动目标服务。2. 配置防火墙规则开放对应端口。3. 修正配置文件并重载 (sudo systemctl reload prometheus)。Grafana 无法添加 Prometheus 数据源1. Prometheus 服务未运行或地址错误。2. Grafana 服务器无法访问 Prometheus 地址/端口。3. 浏览器跨域问题较少见。1. 在 Grafana 服务器上使用curl http://prometheus-ip:9090测试。2. 检查 Grafana 数据源配置中的HTTP URL。1. 确保 Prometheus 服务正常且 URL 可访问。2. 如果 Prometheus 和 Grafana 不在同一主机使用 IP 地址而非localhost。3. 在 Prometheus 启动参数中添加--web.enable-remote-write-receiver如果版本支持并配置 CORS。Grafana 图表显示 “No data”1. 数据源连接正常但查询的指标不存在。2. 时间范围选择不当例如查询未来时间。3. PromQL 写错。1. 在 Grafana 的 “Explore” 功能中使用数据源自带的指标浏览器查找正确指标名。2. 检查图表右上角的时间范围选择器。3. 在 Prometheus UI 的 Graph 页面测试相同的 PromQL。1. 使用正确的指标名称。2. 调整时间范围为过去一段时间如 Last 1 hour。3. 修正 PromQL 语句。Node Exporter 指标不全1. 某些收集器collector默认被禁用。2. 系统内核不支持某些指标。1. 查看 Node Exporter 启动日志或http://IP:9100/metrics页面开头看哪些收集器已启用。2. 检查/proc文件系统是否存在对应信息。1. 通过启动参数启用收集器例如--collector.systemd启用 systemd 单元监控。编辑node_exporter.service文件的ExecStart行。磁盘空间增长过快1. 抓取目标或指标过多。2. 数据保留时间设置过长。3. 存在高基数标签high cardinality labels。1. 使用prometheus_tsdb_head_series查看时序总数。2. 检查prometheus.yml中global下的scrape_interval。3. 分析指标标签组合是否爆炸式增长。1. 减少不必要的监控目标或指标。2. 调整--storage.tsdb.retention.time缩短保留期。3. 避免在标签中使用用户ID、会话ID等高基数值。使用记录规则预先聚合。告警未触发或未发送1. Alertmanager 未配置或未运行。2. Prometheus 告警规则文件未加载或配置错误。3. 告警规则条件未满足或静默silence。1. 检查 Alertmanager 服务状态和配置。2. 在 Prometheus UI 的 “Alerts” 标签页查看告警状态。3. 检查 Alertmanager UI 的 Silences 页面。1. 部署并配置 Alertmanager在prometheus.yml中指向它。2. 创建正确的告警规则文件.yml或.yaml并在prometheus.yml的rule_files中引用。3. 检查并调整告警规则中的expr(PromQL) 和for(持续时间) 字段。9. 最佳实践与使用建议为了让你的监控系统更健壮、更高效遵循一些最佳实践至关重要。配置标准化与版本控制将prometheus.yml、告警规则文件、Grafana 仪表盘 JSON 文件等所有配置文件纳入 Git 等版本控制系统。使用配置管理工具如 Ansible, SaltStack或容器化部署Docker Compose, Kubernetes Manifests来保证环境一致性。分层与分片不要用一个 Prometheus 监控一切。根据业务边界、数据中心或团队进行分片Sharding。考虑使用联邦Federation架构由一个中心的 Prometheus 从多个下游 Prometheus 实例中聚合部分摘要数据。有效的告警设计避免告警疲劳只对需要人工干预的事件告警。尽量使用for子句避免瞬时抖动触发告警。分级告警区分warning和critical级别并配置不同的通知渠道和接收人。告警信息清晰在告警规则中充分利用annotations字段提供详细的描述、影响范围和修复建议。仪表盘设计原则为角色设计为运维、开发、业务人员设计不同的仪表盘展示他们最关心的指标。自上而下大盘顶部放最核心的 SLA/健康状态摘要下面依次是资源层、服务层、业务层指标。善用变量Variables在 Grafana 中创建仪表盘变量如$host,$service实现一个面板动态查看多个实例的数据。容量规划与监控自监控提前规划 Prometheus 服务器的磁盘空间并设置告警如disk_usage 80%。务必监控 Prometheus 和 Grafana 自身使用前面提到的内置指标和仪表盘确保监控系统本身健康。安全加固避免将 Prometheus、Grafana、Node Exporter 等服务直接暴露在公网。使用反向代理如 Nginx并配置 HTTPS 和基础认证。为 Grafana 配置强密码并定期更换。使用 Prometheus 的--web.config.file支持 TLS 和基础认证较新版本。10. 总结与下一步通过这三天的“速通”实践你应该已经成功搭建起了一个功能完整的 Prometheus Grafana 监控系统并能通过直观的面板观察服务器状态。这套组合最强大的地方在于其高度的可扩展性和活跃的社区——你几乎可以找到任何常见服务MySQL, Redis, Nginx, Kafka等的 Exporter 和对应的 Grafana 仪表盘模板。接下来可以深入的方向监控更多服务搜索 “[服务名] exporter”如mysqld_exporter,redis_exporter将其部署到目标服务器并在 Prometheus 中添加新的抓取任务最后在 Grafana 中导入对应的仪表盘。配置告警部署 Alertmanager配置邮件、钉钉或企业微信等通知渠道并编写你的第一条告警规则例如当 CPU 使用率超过 90% 持续 5 分钟时发出警告。学习 PromQL这是发挥 Prometheus 威力的关键。从简单的聚合sum,avg,rate开始逐步学习如何计算利用率、增长率、预测等。容器化部署尝试使用 Docker 或 Docker Compose 来部署整个监控栈这能极大简化依赖管理和环境一致性。探索长期存储如果你的数据需要保留数月甚至数年可以研究 Thanos 或 Cortex 项目它们构建在 Prometheus 之上提供了全局视图和长期存储能力。监控体系的建设是一个迭代的过程。建议从最核心的指标开始逐步扩大范围。每次新增监控项时都问自己一个问题“如果这个指标异常我是否需要并且能够采取行动” 这将帮助你构建一个真正有用、而不只是看起来炫酷的监控系统。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价