Prometheus搭建与实战指南

2026-07-11 10 min read 5

Prometheus搭建与实战指南

Prometheus是一款开源的系统监控和告警工具,以其强大的数据模型和灵活的查询语言著称。本文将手把手教你从零搭建Prometheus,并集成Node Exporter、Alertmanager和Grafana,实现服务器资源的全面监控。

一、环境准备

本文基于CentOS 7系统,其他Linux发行版类似。确保服务器有网络连接和sudo权限。

# 更新系统包
sudo yum update -y
# 安装wget和vim
sudo yum install -y wget vim

二、下载与安装Prometheus

访问Prometheus官网获取最新版本,这里以2.45.0为例。

# 下载Prometheus
wget https://github.com/prometheus/prometheus/releases/download/v2.45.0/prometheus-2.45.0.linux-amd64.tar.gz
# 解压
tar -xzf prometheus-2.45.0.linux-amd64.tar.gz
# 移动到/usr/local
sudo mv prometheus-2.45.0.linux-amd64 /usr/local/prometheus

创建Prometheus用户和组,确保安全运行。

sudo useradd --no-create-home --shell /bin/false prometheus
sudo chown -R prometheus:prometheus /usr/local/prometheus

三、配置Prometheus

编辑配置文件/usr/local/prometheus/prometheus.yml,添加基本配置。

global:
  scrape_interval: 15s
  evaluation_interval: 15s

scrape_configs:
  - job_name: 'prometheus'
    static_configs:
      - targets: ['localhost:9090']
  - job_name: 'node'
    static_configs:
      - targets: ['localhost:9100']

这里定义了抓取间隔和两个任务:Prometheus自身和Node Exporter(稍后安装)。

四、启动Prometheus服务

使用systemd管理服务,创建/etc/systemd/system/prometheus.service

[Unit]
Description=Prometheus
After=network.target

[Service]
User=prometheus
Group=prometheus
ExecStart=/usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml --storage.tsdb.path=/var/lib/prometheus
Restart=always

[Install]
WantedBy=multi-user.target

创建数据目录并启动。

sudo mkdir -p /var/lib/prometheus
sudo chown prometheus:prometheus /var/lib/prometheus
sudo systemctl daemon-reload
sudo systemctl start prometheus
sudo systemctl enable prometheus

访问http://服务器IP:9090,验证Prometheus Web界面。

五、安装Node Exporter

Node Exporter用于采集服务器指标。

# 下载Node Exporter
wget https://github.com/prometheus/node_exporter/releases/download/v1.6.0/node_exporter-1.6.0.linux-amd64.tar.gz
# 解压并移动
tar -xzf node_exporter-1.6.0.linux-amd64.tar.gz
sudo mv node_exporter-1.6.0.linux-amd64 /usr/local/node_exporter
# 创建用户
sudo useradd --no-create-home --shell /bin/false node_exporter
sudo chown -R node_exporter:node_exporter /usr/local/node_exporter

创建systemd服务/etc/systemd/system/node_exporter.service

[Unit]
Description=Node Exporter
After=network.target

[Service]
User=node_exporter
Group=node_exporter
ExecStart=/usr/local/node_exporter/node_exporter
Restart=always

[Install]
WantedBy=multi-user.target

启动服务。

sudo systemctl daemon-reload
sudo systemctl start node_exporter
sudo systemctl enable node_exporter

验证:curl http://localhost:9100/metrics,应返回大量指标。

六、安装Alertmanager

Alertmanager负责处理告警。

# 下载Alertmanager
wget https://github.com/prometheus/alertmanager/releases/download/v0.25.0/alertmanager-0.25.0.linux-amd64.tar.gz
# 解压并移动
tar -xzf alertmanager-0.25.0.linux-amd64.tar.gz
sudo mv alertmanager-0.25.0.linux-amd64 /usr/local/alertmanager
sudo useradd --no-create-home --shell /bin/false alertmanager
sudo chown -R alertmanager:alertmanager /usr/local/alertmanager

创建配置文件/usr/local/alertmanager/alertmanager.yml

route:
  receiver: 'default'
receivers:
  - name: 'default'
    email_configs:
      - to: 'admin@example.com'
        from: 'alertmanager@example.com'
        smarthost: 'smtp.example.com:587'
        auth_username: 'user'
        auth_password: 'password'

创建systemd服务并启动。

sudo vim /etc/systemd/system/alertmanager.service
[Unit]
Description=Alertmanager
After=network.target

[Service]
User=alertmanager
Group=alertmanager
ExecStart=/usr/local/alertmanager/alertmanager --config.file=/usr/local/alertmanager/alertmanager.yml
Restart=always

[Install]
WantedBy=multi-user.target

sudo systemctl daemon-reload
sudo systemctl start alertmanager
sudo systemctl enable alertmanager

七、配置告警规则

在Prometheus配置中添加告警规则文件。

# 创建规则文件
sudo vim /usr/local/prometheus/rules.yml
groups:
  - name: node_alerts
    rules:
      - 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: "CPU usage is above 80% for 5 minutes"

修改prometheus.yml,添加规则文件路径。

rule_files:
  - 'rules.yml'

重启Prometheus。

sudo systemctl restart prometheus

八、集成Grafana可视化

安装Grafana。

# 添加Grafana仓库
sudo vim /etc/yum.repos.d/grafana.repo
[grafana]
name=grafana
baseurl=https://packages.grafana.com/oss/rpm
repo_gpgcheck=1
enabled=1
gpgcheck=1
gpgkey=https://packages.grafana.com/gpg.key
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt

sudo yum install -y grafana
sudo systemctl start grafana-server
sudo systemctl enable grafana-server

访问http://服务器IP:3000,默认用户名密码admin/admin。添加Prometheus数据源:Configuration > Data Sources > Add data source,选择Prometheus,URL填入http://localhost:9090,保存。然后导入Node Exporter仪表盘(ID 1860)。

九、测试与验证

在Grafana中查看CPU、内存、磁盘等指标图表。模拟高负载:stress --cpu 4 --timeout 60,观察告警是否触发。

十、生产环境注意事项

1. 安全性:启用认证,使用防火墙限制端口访问。2. 持久化:配置数据保留策略。3. 高可用:部署Prometheus集群。4. 集成其他Exporter:如MySQL Exporter、Blackbox Exporter等。

通过以上步骤,你已成功搭建Prometheus监控系统。持续优化配置,让监控成为运维的得力助手。

IT搬运工

专注技术分享,坚持原创深度内容。

分类
链接
订阅

RSS 订阅关注最新文章

© 2026 IT搬运工 · 站点地图 · 鄂ICP备19007640号-3