# Prometheus的介紹及安裝方法
## 目錄
1. [什么是Prometheus](#什么是prometheus)
2. [核心特性](#核心特性)
3. [架構組成](#架構組成)
4. [適用場景](#適用場景)
5. [安裝準備](#安裝準備)
6. [Linux系統安裝](#linux系統安裝)
- [二進制包安裝](#二進制包安裝)
- [Docker安裝](#docker安裝)
7. [Windows系統安裝](#windows系統安裝)
8. [配置與啟動](#配置與啟動)
9. [基本使用](#基本使用)
10. [常見問題](#常見問題)
11. [總結](#總結)
---
## 什么是Prometheus
Prometheus是由SoundCloud開發的開源監控告警系統,于2016年加入CNCF(云原生計算基金會),成為繼Kubernetes之后第二個畢業的項目。它采用Pull模式采集指標數據,支持多維度數據模型和強大的查詢語言PromQL,廣泛應用于云原生和微服務架構的監控場景。
## 核心特性
- **多維度數據模型**:通過metric名稱和鍵值對標簽標識時間序列數據
- **PromQL查詢語言**:支持靈活的數據聚合和切片分析
- **獨立服務節點**:不依賴分布式存儲,單個節點即可工作
- **Pull+Push結合**:默認基于HTTP拉取數據,同時支持Pushgateway推送
- **可視化支持**:原生集成Grafana展示面板
- **告警管理**:通過Alertmanager實現多維告警路由
## 架構組成

主要組件包括:
- **Prometheus Server**:核心服務端,負責抓取和存儲數據
- **Client Libraries**:多種語言的客戶端庫(Go/Java/Python等)
- **Pushgateway**:短期任務數據推送中間件
- **Exporters**:各種系統/服務的指標暴露器(Node Exporter等)
- **Alertmanager**:告警消息處理中心
- **Service Discovery**:支持Kubernetes/Consul等服務的自動發現
## 適用場景
? 適合場景:
- 微服務架構監控
- Kubernetes集群監控
- 需要多維數據查詢的業務監控
- 自定義指標采集與分析
? 不適合場景:
- 需要100%精確計費的場景(設計上更側重可靠性而非精確性)
- 傳統企業級監控(更適合Zabbix等方案)
---
## 安裝準備
### 系統要求
- **最低配置**:
- CPU:2核
- 內存:4GB
- 磁盤:50GB(建議SSD)
- **推薦配置**:
- CPU:4核+
- 內存:8GB+
- 磁盤:100GB+ SSD
### 網絡要求
- 確保監控目標可通過HTTP訪問
- 開放端口:
- Prometheus Server:9090
- Node Exporter:9100
- Alertmanager:9093
---
## Linux系統安裝
### 二進制包安裝
#### 1. 下載最新版本
```bash
wget https://github.com/prometheus/prometheus/releases/download/v2.47.0/prometheus-2.47.0.linux-amd64.tar.gz
tar xvfz prometheus-*.tar.gz
cd prometheus-*
創建/etc/systemd/system/prometheus.service
:
[Unit]
Description=Prometheus Server
After=network.target
[Service]
User=prometheus
Group=prometheus
ExecStart=/usr/local/bin/prometheus \
--config.file=/etc/prometheus/prometheus.yml \
--storage.tsdb.path=/var/lib/prometheus/data \
--web.console.templates=/etc/prometheus/consoles \
--web.console.libraries=/etc/prometheus/console_libraries
Restart=always
[Install]
WantedBy=multi-user.target
sudo useradd --no-create-home --shell /bin/false prometheus
sudo mkdir /etc/prometheus /var/lib/prometheus
sudo cp prometheus.yml /etc/prometheus/
sudo chown -R prometheus:prometheus /etc/prometheus /var/lib/prometheus
sudo systemctl daemon-reload
sudo systemctl start prometheus
sudo systemctl enable prometheus
docker run -d \
-p 9090:9090 \
-v /path/to/prometheus.yml:/etc/prometheus/prometheus.yml \
prom/prometheus
從官方Release頁面下載windows-amd64
壓縮包
Expand-Archive prometheus-2.47.0.windows-amd64.zip
cd prometheus-2.47.0.windows-amd64
.\prometheus.exe
使用NSSM工具:
nssm install Prometheus
# 在GUI界面配置執行路徑和參數
nssm start 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: ['192.168.1.100:9100', '192.168.1.101:9100']
promtool check config prometheus.yml
參數 | 說明 |
---|---|
--config.file |
指定配置文件路徑 |
--storage.tsdb.path |
數據存儲目錄 |
--web.listen-address |
監聽地址(默認:9090) |
--web.enable-lifecycle |
啟用HTTP API管理接口 |
瀏覽器打開:http://<server-ip>:9090
# CPU使用率
100 - (avg by(instance)(irate(node_cpu_seconds_total{mode="idle"}[5m])) * 100
# 內存使用量
node_memory_MemTotal_bytes - node_memory_MemAvailable_bytes
# HTTP請求率
sum(rate(http_requests_total[5m])) by (status_code)
wget https://github.com/prometheus/node_exporter/releases/download/v1.6.1/node_exporter-1.6.1.linux-amd64.tar.gz
tar xvfz node_exporter-*.tar.gz
cd node_exporter-*
./node_exporter
修改啟動參數:
--storage.tsdb.retention.time=30d # 保留30天數據
配置basic_auth:
scrape_configs:
- job_name: 'secure'
basic_auth:
username: admin
password: secret
推薦使用kube-prometheus項目:
git clone https://github.com/prometheus-operator/kube-prometheus
kubectl apply --server-side -f manifests/setup
kubectl apply -f manifests/
Prometheus作為云原生監控的標準解決方案,具有以下優勢: 1. 強大的多維數據模型 2. 靈活的查詢語言 3. 活躍的社區生態 4. 與Kubernetes深度集成
建議后續學習: - 配置Alertmanager實現告警 - 集成Grafana可視化 - 學習PromQL高級查詢 - 探索各種Exporters的使用
官方文檔:prometheus.io/docs
中文社區:prometheus.wang “`
注:實際使用時請: 1. 替換占位圖片鏈接 2. 檢查最新版本號 3. 根據實際環境調整配置參數 4. 補充適合自己業務場景的監控指標示例
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。