文章目錄
- Docker Compose 部署 Pushgateway
- 1. 目的
- 2. 適用范圍
- 3. 先決條件
- 4. 部署步驟
- 4.1 創建項目目錄
- 4.2 創建 docker-compose.yml 文件
- 4.3 啟動 Pushgateway 服務
- 4.4 驗證服務運行狀態
- 4.5 測試 Pushgateway 訪問
- 5. 配置 Prometheus 采集 Pushgateway 數據
- 6. 日常維護
- 6.1 查看服務日志
- 6.2 停止服務
- 6.3 更新 Pushgateway 版本
- 6.4 數據備份
- 7. 故障排除
- 7.1 端口沖突
- 7.2 權限問題
- 7.3 服務無法啟動
- 8. 安全建議
- 9. 附錄
Docker Compose 部署 Pushgateway
1. 目的
本文檔提供了使用 Docker Compose 部署 Prometheus Pushgateway 的標準操作流程,確保 Pushgateway 服務能夠快速、可靠地部署和運行。
2. 適用范圍
適用于需要使用 Pushgateway 作為 Prometheus 監控體系中間組件的環境。
3. 先決條件
- 已安裝 Docker 和 Docker Compose
- 服務器具有互聯網連接以下載鏡像
- 了解基本的 Docker 和 Prometheus 概念
4. 部署步驟
4.1 創建項目目錄
mkdir -p ~/pushgateway/{config,data}
cd ~/pushgateway
4.2 創建 docker-compose.yml 文件
cat > docker-compose.yml <<EOF
version: '3.8'services:pushgateway:image: prom/pushgateway:v1.6.2container_name: pushgatewayrestart: unless-stoppedports:- "9091:9091"volumes:- ./data:/datacommand:- '--persistence.file=/data/pushgateway.data'- '--persistence.interval=5m'logging:driver: "json-file"options:max-size: "10m"max-file: "3"
EOF
4.3 啟動 Pushgateway 服務
docker-compose up -d
4.4 驗證服務運行狀態
docker-compose ps
預期輸出應顯示 pushgateway 服務狀態為 “Up”。
4.5 測試 Pushgateway 訪問
curl http://localhost:9091
或通過瀏覽器訪問 http://<服務器IP>:9091
,應能看到 Pushgateway 的 Web 界面。
5. 配置 Prometheus 采集 Pushgateway 數據
在 Prometheus 的配置文件中添加以下 job 配置:
scrape_configs:- job_name: 'pushgateway'honor_labels: truestatic_configs:- targets: ['pushgateway:9091']
6. 日常維護
6.1 查看服務日志
docker-compose logs -f pushgateway
6.2 停止服務
docker-compose down
6.3 更新 Pushgateway 版本
- 修改 docker-compose.yml 中的鏡像版本號
- 執行
docker-compose pull
拉取新鏡像 - 執行
docker-compose up -d
重啟服務
6.4 數據備份
Pushgateway 的數據存儲在 ./data
目錄下,定期備份此目錄即可。
7. 故障排除
7.1 端口沖突
如果 9091 端口已被占用,可以修改 docker-compose.yml 中的端口映射,例如改為 "9092:9091"
。
7.2 權限問題
如果遇到數據目錄權限問題,可以執行:
sudo chown -R 65534:65534 ./data
7.3 服務無法啟動
檢查日志獲取詳細信息:
docker-compose logs pushgateway
8. 安全建議
- 在生產環境中,建議通過反向代理添加認證
- 限制可以訪問 Pushgateway 的客戶端 IP
- 定期清理不再需要的指標數據
9. 附錄
- Pushgateway 官方文檔: https://github.com/prometheus/pushgateway
- Prometheus 官方文檔: https://prometheus.io/docs/