最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Prometheus 服务器搭建与配置如何做
时间:2026-08-08 09:09:59 编辑:袖梨 来源:一聚教程网
Prometheus服务器搭建需配对服务、Exporter、配置文件及可选持久化与访问控制四环节:一用Docker或二进制启动服务;二通过prometheus.yml配置scrape_configs抓取Node Exporter等目标;三设置global参数如scrape_interval、retention.time等确保稳定;四通过/targets和/graph验证并用systemd等管理进程。
Prometheus 服务器搭建其实不难,关键是把几个核心环节配对、跑通:服务本身、数据采集端(Exporter)、配置文件、以及可选的持久化和访问控制。下面分四块说清楚,每块都聚焦实际操作。
一、启动 Prometheus 服务(两种主流方式)
推荐优先用 Docker,省去依赖和路径问题;二进制方式适合需要精细调参或离线环境。
-
Docker 启动(带配置挂载):
docker run -d --name prometheus -p 9090:9090 -v $(pwd)/prometheus.yml:/etc/prometheus/prometheus.yml -v $(pwd)/data:/var/lib/prometheus --restart=unless-stopped prom/prometheus:v2.47.2
注意:
prometheus.yml要提前准备好,data目录用于本地存储,确保有写权限。 -
二进制启动(Linux 示例):
wget https://github.com/prometheus/prometheus/releases/download/v2.47.2/prometheus-2.47.2.linux-amd64.tar.gztar xzf prometheus-*.tar.gzcd prometheus-*./prometheus --config.file=prometheus.yml --storage.tsdb.path=data/
启动后访问
http://localhost:9090,能打开 Web 页面且 Targets 显示正常,说明服务已就位。
二、配置抓取目标(让 Prometheus 知道去哪取数据)
核心在 prometheus.yml 的 scrape_configs 段。最常见的是监控本机资源,需配合 Node Exporter。
-
先部署 Node Exporter(Linux 主机):
wget https://github.com/prometheus/node_exporter/releases/download/v1.6.1/node_exporter-1.6.1.linux-amd64.tar.gztar xzf node_exporter-*.tar.gzcd node_exporter-*./node_exporter &
默认监听
:9100,访问http://localhost:9100/metrics应返回指标文本。 -
再更新
prometheus.yml:scrape_configs:- job_name: 'node'static_configs:- targets: ['localhost:9100']
改完配置后,Docker 方式需重启容器;二进制方式可用
curl -X POST http://localhost:9090/-/reload热重载(前提是启动时加了--web.enable-lifecycle参数)。
三、关键配置项说明(别只复制,要懂为什么)
prometheus.yml 不是模板填空,几个参数直接影响稳定性与实用性:
-
global.scrape_interval:默认 15s,太短会压垮被监控端,太高可能漏掉瞬时峰值,常规服务设为30s更稳妥。 -
scrape_timeout:应略小于scrape_interval(如设为25s),避免采集卡住拖慢整个周期。 -
storage.tsdb.retention.time:默认只存 15 天,生产环境务必显式设为30d或更久,否则指标自动清空。 -
remote_write/remote_read:如需长期存储或高可用,这里对接 Thanos、Cortex 或 VictoriaMetrics。
四、验证与日常维护要点
搭完不是结束,得确认它真在干活、还能持续运行。
- 访问
http://localhost:9090/targets:看状态是否为UP,错误信息会直接显示(比如连接拒绝、超时、证书问题)。 - 在
http://localhost:9090/graph输入up查看所有目标的在线状态;输入100 * (1 - avg(rate(node_cpu_seconds_total{mode="idle"}[5m])))可算出平均 CPU 使用率。 - 日志别忽略:Docker 用
docker logs prometheus,二进制启动建议加--log.level=info,遇到采集失败先查日志。 - 进程管理:生产环境不要用
nohup &,而是用 systemd 或 supervisor 管理,保证异常退出后自动拉起。
基本上就这些。不复杂但容易忽略细节——比如忘记开放防火墙端口、Exporter 没跑起来、配置缩进错误导致 YAML 解析失败。一步步来,每个环节验证到位,就能稳稳跑起来。