# deploy-prometheus **Repository Path**: attacker/deploy-prometheus ## Basic Information - **Project Name**: deploy-prometheus - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-10-25 - **Last Updated**: 2026-01-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Prometheus 监控告警栈 > Consul + Prometheus + Alertmanager + Grafana + OPSX Webhook 完整的 Kubernetes 监控解决方案,支持服务自动发现、多平台告警通知、可视化大屏。 ## 快速开始 ### 标准 Kubernetes 部署 适用于生产环境、有节点的标准 K8s 集群 ```bash kubectl apply -f deploy-kubernetes/ ``` ### Serverless 部署 适用于 EKS Fargate、GKE Autopilot、AKS Virtual Nodes 等无节点环境 ```bash kubectl apply -f deploy-kubernetes-serverless/ ``` ## 架构 ```mermaid graph TB App[应用服务] -->|注册| Consul[Consul 服务发现] Consul -->|自动发现| Prometheus[Prometheus] NodeExporter[Node Exporter] -->|节点指标| Prometheus Prometheus -->|触发| Alertmanager[Alertmanager] Prometheus -->|数据| Grafana[Grafana 可视化] Alertmanager -->|转发| OPSX[OPSX Webhook] OPSX -->|通知| Notify[钉钉/飞书/Telegram] style OPSX fill:#f9f style Grafana fill:#ff9 style Prometheus fill:#9cf ``` ## 核心功能 **监控采集** - Consul 自动发现服务并采集指标 - 支持 Kubernetes 集群、节点、Pod 监控 - 预置业务指标监控规则 **告警通知** - OPSX Webhook 统一告警转发 - 支持钉钉、飞书、Telegram 多平台 - 配置简单,自动处理消息格式 **可视化** - 内置 Grafana Dashboard(K8s、Pod、Node、业务) - 实时监控大屏 - 默认账号:admin/admin ## 组件访问 | 组件 | 端口 | 用途 | 凭据 | |------|------|------|------| | Consul | 8500 | 服务发现 | - | | Prometheus | 9090 | 指标查询 | - | | Alertmanager | 9093 | 告警管理 | - | | Grafana | 3000 | 监控大屏 | admin/admin | | OPSX Webhook | 9000 | 告警转发 | admin/admin | ## 告警配置 编辑 `deploy-kubernetes/04-alertmanager.yaml` 配置通知渠道: ```yaml receivers: - name: 'dingtalk' webhook_configs: - url: 'http://opsx-webhook:9000/api/v1/hook?type=dd&tpl=prometheus-dd&url=钉钉机器人WEBHOOK' - name: 'feishu' webhook_configs: - url: 'http://opsx-webhook:9000/api/v1/hook?type=fs&tpl=prometheus-fs&url=飞书机器人WEBHOOK' ``` **测试告警**: ```bash curl -X POST http://localhost:9093/api/v2/alerts -H 'Content-Type: application/json' -d '[{ "labels": {"alertname": "TestAlert", "severity": "warning"}, "annotations": {"summary": "测试告警"} }]' ``` ## 服务注册 应用通过 Consul 注册自动被 Prometheus 发现: ```bash curl -X PUT http://consul:8500/v1/agent/service/register -d '{ "ID": "my-app", "Name": "my-service", "Address": "10.0.0.1", "Port": 8080, "Meta": { "prometheus_scrape": "true", "prometheus_path": "/metrics" } }' ``` ## 目录结构 ``` deploy-kubernetes-serverless/ # Serverless 部署(无 Node Exporter) deploy-kubernetes/ # 标准 K8s 部署 ├── 00-namespace.yaml # 命名空间 ├── 01-consul.yaml # 服务发现 ├── 02-prometheus-*.yaml # Prometheus 组件 ├── 03-container-resource-alerts.yaml # 容器资源告警 ├── 04-alertmanager.yaml # 告警管理 ├── 05-grafana.yaml # Grafana 服务 ├── 06-kube-state-metrics.yaml # K8s 资源监控 ├── 07-node-exporter.yaml # 节点监控(仅标准部署) ├── 08-*.yaml # 其他组件 ├── 09-19-*dashboards*.yaml # 仪表板配置 ├── dashboards/ # 仪表板 JSON 文件 ```