The installer now streams the embedded payload directly into the target work directory with tail -c, instead of the previous byte-by-byte dd bs=1 path, and no longer writes an extra /tmp/prometheus-stack-installer/payload.tar.gz copy during install.
During installation it is normal to see /tmp/prometheus-stack-installer/images grow as image archives are unpacked for docker load; that growth is the real payload extraction, not a duplicated archive file.
If you use --skip-image-prepare, the installer now only extracts chart files plus image metadata and skips unpacking the embedded image archives entirely.
面向 Kubernetes 的 Prometheus/Grafana/Alertmanager 离线交付仓库。
它的目标不是只把监控栈“装起来”,而是给整个平台提供一套稳定的监控底座,让 MySQL、Redis、Nacos、MinIO、RabbitMQ、MongoDB、Milvus 等中间件只要按统一契约暴露监控资源,就能被自动发现、自动出现在 Grafana、自动进入告警体系。
- 支持
amd64/arm64两种架构的.run离线安装包 - 安装流程默认分两阶段
- 第一阶段只安装
CRD + Prometheus Operator - 第二阶段再安装
Prometheus + Alertmanager + Grafana + kube-state-metrics + node-exporter
- 第一阶段只安装
- Prometheus 自动跨 namespace 发现这些资源:
ServiceMonitorPodMonitorProbePrometheusRule
- Grafana 自动跨 namespace 发现 Dashboard ConfigMap
- 默认开启外部访问:
Grafana NodePort = 30090Prometheus NodePort = 30091
- 默认内置 Kubernetes 集群级监控、默认规则、默认 recording rules、默认 Grafana dashboards
Prometheus 只会抓取带下面这个标签的监控资源:
- 键:
monitoring.archinfra.io/stack - 值:
default
适用资源:
ServiceMonitorPodMonitorProbePrometheusRule
也就是说,业务组件要想被当前监控栈自动发现,至少要满足:
metadata:
labels:
monitoring.archinfra.io/stack: defaultGrafana sidecar 默认会跨所有 namespace 搜索 Dashboard ConfigMap,契约如下:
- Dashboard 标签键:
grafana_dashboard - Dashboard 标签值:
1 - 可选目录注解:
grafana_folder
示例:
metadata:
labels:
grafana_dashboard: "1"
monitoring.archinfra.io/stack: default
annotations:
grafana_folder: "Middleware/MySQL"只要某个中间件仓库安装时顺手创建这个 ConfigMap,Grafana 就会自动看到仪表盘,不需要再手工导入。
默认动作:
- release 名:
prometheus-stack - namespace:
monitoring - Grafana 管理员账号:
admin - Grafana 管理员密码:
admin@passw0rd - Grafana 暴露方式:
NodePort - Grafana 端口:
30090 - Prometheus 暴露方式:
NodePort - Prometheus 端口:
30091 - Prometheus 存储类:
nfs - Prometheus 存储大小:
200Gi - Prometheus retention:
14d - Alertmanager 存储类:
nfs - Alertmanager 存储大小:
10Gi - Grafana 存储类:
nfs - Grafana 存储大小:
10Gi
安装完成后,常用访问地址为:
- Grafana:
http://<任一节点IP>:30090 - Prometheus:
http://<任一节点IP>:30091 - Prometheus 集群内地址:
http://prometheus-stack-kube-prom-prometheus.monitoring.svc:9090 - Alertmanager 集群内地址:
http://alertmanager-operated.monitoring.svc:9093
说明:
Grafana和Prometheus默认直接开放为 NodePort,方便平台运维和 AI 自动巡检Alertmanager默认只保留集群内访问;如果需要真实通知,请传--alertmanager-config-file
查看帮助:
./prometheus-stack-installer-amd64.run --help
./prometheus-stack-installer-amd64.run help基础安装:
./prometheus-stack-installer-amd64.run install \
--namespace monitoring \
--grafana-admin-password 'Admin@123' \
-y如果目标仓库已经有镜像,跳过导入:
./prometheus-stack-installer-amd64.run install \
--registry sealos.hub:5000/kube4 \
--skip-image-prepare \
-y自定义 NodePort:
./prometheus-stack-installer-amd64.run install \
--grafana-node-port 30090 \
--prometheus-node-port 30091 \
-y接入真实告警通知:
./prometheus-stack-installer-amd64.run install \
--alertmanager-config-file ./examples/alertmanager-config-webhook.yaml \
-y查看状态:
./prometheus-stack-installer-amd64.run status -n monitoring卸载:
./prometheus-stack-installer-amd64.run uninstall -n monitoring -y卸载并删除 CRD:
./prometheus-stack-installer-amd64.run uninstall -n monitoring --delete-crds -y以 MySQL、Redis、MinIO、RabbitMQ、MongoDB、Milvus 为例,业务仓库需要做三类资源:
ServiceMonitor或PodMonitorPrometheusRule- Dashboard
ConfigMap
接入后的效果:
- Prometheus 自动抓 exporter / metrics endpoint
- Prometheus 自动加载应用规则
- Grafana 自动看到对应 dashboard
- 一个 metrics endpoint
- 一个
ServiceMonitor - 一组应用级
PrometheusRule - 一组 Grafana dashboard ConfigMap
这套仓库现在已经把自动发现机制打通了,后续建议各中间件仓库补齐各自的:
- MySQL:
- exporter dashboard
- 复制/连接数/慢查询/缓存命中率告警
- Redis:
- 内存/连接数/主从延迟/evicted keys dashboard 和告警
- MinIO:
- bucket/object/API/error dashboard 和告警
- RabbitMQ:
- queue depth、unacked、connections、disk free 告警
- MongoDB:
- opcounters、replica lag、cache pressure dashboard 和告警
- Milvus:
- proxy/querynode/datanode/minio/etcd 组合 dashboard 和告警
默认启用:
prometheus-operatorprometheusalertmanagergrafanagrafana-image-rendererkube-state-metricsnode-exporter- Kubernetes 默认规则覆盖的 apiserver / controller-manager / scheduler / kubelet 等
来自 kube-prometheus-stack 默认规则组,主要包括:
alertmanageretcdconfigReloadersgeneralkubeApiserverAvailabilitykubeApiserverBurnratekubeApiserverSloskubeControllerManagerkubeletkubeProxykubePrometheusGeneralkubernetesAppskubernetesResourceskubernetesStoragekubernetesSystemkubeSchedulerAlertingkubeStateMetricsnetworknodenodeExporterAlertingprometheusprometheusOperator
说明:
- 这些告警规则默认已存在
- 但默认
Alertmanagerreceiver 是null - 也就是默认“规则会触发,但不会发到外部通知系统”
如果你希望真正发通知,需要给 Alertmanager 提供配置文件。
内置 recording rules 也已经开启,常见包括:
count:up1count:up0instance:node_cpu:rate:suminstance:node_memory_utilisation:ratiocluster:node_cpu:rationode:node_cpu_utilization:ratio_rate5m- 各类 apiserver burn-rate / availability / histogram 聚合指标
这些 recording rules 的意义是:
- 提前把高成本 PromQL 计算好
- 降低 dashboard 查询开销
- 方便告警规则直接复用
推荐方式是准备一份独立 Alertmanager 配置文件,然后通过安装参数传入:
./prometheus-stack-installer-amd64.run install \
--alertmanager-config-file ./examples/alertmanager-config-webhook.yaml \
-y你可以把它对接到:
- webhook
- 企业微信
- 钉钉
- 飞书
- Slack
- 邮件网关
默认不建议把这些通知地址硬编码进安装器。
这套监控栈是“平台底座”,不直接负责安装业务中间件。
推荐的安装顺序:
metrics-serverprometheus-stackmysqlredisnacosminiorabbitmqmongodbmilvus
依赖关系:
- 这些业务组件不依赖 Prometheus 才能运行
- 但它们要想自动纳入统一监控、统一 dashboard、统一告警,就依赖当前 Prometheus/Grafana 契约
如果是普通运维同事或 AI 自动部署,请遵循下面的步骤:
- 先安装 Prometheus Stack。
- 确认
Grafana和PrometheusNodePort 可访问。 - 再安装业务组件。
- 每安装一个业务组件,都检查:
ServiceMonitor/PodMonitor是否存在PrometheusRule是否存在- dashboard ConfigMap 是否存在
- 用 Grafana 和 Prometheus Targets 双重验证是否自动接入成功。
- 详细集成文档
- 告警与 Dashboard 运维文档
- 手工测试方案
- Alertmanager webhook 配置示例
- ServiceMonitor 示例
- PrometheusRule 示例
- Grafana dashboard ConfigMap 示例