Cortex 是一个为 Prometheus 提供水平扩展、高可用、多租户支持的长期存储解决方案。作为 CNCF 孵化项目,Cortex 被广泛应用于生产环境(如 Weave Cloud 和 Grafana Cloud),主要作为 Prometheus 的 remote write 目标,并提供与 Prometheus 兼容的查询 API。
Cortex 可跨集群中的多台机器运行,突破单节点的吞吐量和存储限制。支持将多个 Prometheus 服务器的指标发送到单个 Cortex 集群,并在统一位置执行全局聚合查询。
集群模式下,Cortex 可在机器间复制数据,确保机器故障时无监控数据间隙,保障图表连续性。
支持在单个集群中隔离多个独立 Prometheus 数据源的数据和查询,允许不可信方共享集群资源,同时保证数据隔离。
支持 S3、GCS、Swift 和 Microsoft Azure 作为长期存储后端,实现数据持久化存储(超出单节点生命周期),适用于长期容量规划。
bashdocker run -d \ --name cortex \ -p 9009:9009 \ # HTTP API 端口 -p 9095:9095 \ # 健康检查端口 -e CORTEX_BLOCKS_STORAGE_ENABLED=true \ -e CORTEX_BLOCKS_STORAGE_BACKEND=local \ -e CORTEX_BLOCKS_STORAGE_LOCAL_DIRECTORY=/data \ -v $(pwd)/cortex-data:/data \ cortexproject/cortex:latest \ -config.file=/etc/cortex/config-blocks.yaml
注意:生产环境需替换为分布式存储后端(如 S3),并配置集群模式。
yamlversion: '3' services: cortex: image: cortexproject/cortex:latest container_name: cortex ports: - "9009:9009" # HTTP API - "9095:9095" # 健康检查 - "7946:7946" # 节点发现(gossip) environment: - CORTEX_TENANT_ID=default # 默认租户 ID(多租户场景需动态配置) - CORTEX_BLOCKS_STORAGE_ENABLED=true - CORTEX_BLOCKS_STORAGE_BACKEND=s3 - CORTEX_BLOCKS_STORAGE_S3_ACCESS_KEY_ID=AKIAEXAMPLE - CORTEX_BLOCKS_STORAGE_S3_SECRET_ACCESS_KEY=secret - CORTEX_BLOCKS_STORAGE_S3_BUCKET=my-cortex-bucket - CORTEX_BLOCKS_STORAGE_S3_ENDPOINT=s3.amazonaws.com - CORTEX_RING_BACKEND=memberlist # 分布式一致性协调 volumes: - ./cortex-config:/etc/cortex - ./cortex-data:/data command: -config.file=/etc/cortex/config.yaml restart: unless-stopped prometheus: image: prom/prometheus:latest container_name: prometheus ports: - "9090:9090" volumes: - ./prometheus.yml:/etc/prometheus/prometheus.yml restart: unless-stopped
prometheus.yml)yamlglobal: scrape_interval: 15s remote_write: - url: "[***]" headers: X-Scope-OrgID: "default" # 与 Cortex 租户 ID 匹配 scrape_configs: - job_name: 'prometheus' static_configs: - targets: ['localhost:9090']
| 环境变量 | 描述 | 默认值 |
|---|---|---|
CORTEX_TENANT_ID | 租户 ID(多租户场景需通过请求头 X-Scope-OrgID 动态传递) | default |
CORTEX_BLOCKS_STORAGE_ENABLED | 是否启用块存储(推荐) | false |
CORTEX_BLOCKS_STORAGE_BACKEND | 块存储后端类型(local/s3/gcs/azure/swift) | local |
CORTEX_BLOCKS_STORAGE_LOCAL_DIRECTORY | 本地存储路径(仅 local 后端) | /data |
CORTEX_HTTP_LISTEN_PORT | HTTP API 监听端口 | 9009 |
CORTEX_RING_BACKEND | 一致性哈希环后端(consul/etcd/memberlist,集群模式必填) | consul |
Cortex 配置通过 -config.file 指定,推荐使用***提供的块存储配置模板(config-blocks.yaml),主要配置段包括:
blocks_storage:存储后端详细配置(如 S3 访问密钥、桶名称)limits:租户级限流配置(如每秒查询数、指标保留时间)distributor:数据写入分发配置querier:查询服务配置X-Scope-OrgID 传递租户 ID,而非环境变量 CORTEX_TENANT_ID。auth_enabled: true,并配合外部认证系统(如 OAuth2、API Key)。来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429