
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
!Docker Pulls !Docker Size
本镜像为 Graphite 和 Statsd 的官方 Docker 镜像,基于 https://github.com/hopsoft/docker-graphite-statsd 和 https://github.com/obfuscurity/synthesize 项目构建。主要用途是提供快速部署方案,帮助用户在几分钟内搭建起完整的指标收集与可视化系统,无需手动配置复杂的 Graphite 和 Statsd 环境。
graphiteapp/docker-graphite-statsd),不稳定构建请使用稳定仓库的 master 标签(graphiteapp/graphite-statsd:master)。1.1.7-1 版本开始支持 arm/arm64 架构;从 1.1.7-6 版本开始提供 x64 架构的 -pypy 版本(针对性能优化,详情见 https://github.com/graphite-project/docker-graphite-statsd/pull/151%EF%BC%89%E3%80%82通过以下命令一键启动容器:
shdocker run -d \ --name graphite \ --restart=always \ -p 80:80 \ -p 2003-2004:2003-2004 \ -p 2023-2024:2023-2024 \ -p 8125:8125/udp \ -p 8126:8126 \ graphiteapp/graphite-statsd
参数说明:
--name graphite:指定容器名称为 graphite--restart=always:容器退出时自动重启-p:端口映射(详见下文“端口映射”)| 主机端口 | 容器端口 | 服务说明 |
|---|---|---|
| 80 | 80 | Nginx(反向代理 Graphite 仪表盘) |
| 2003 | 2003 | Carbon 纯文本协议接收端口 |
| 2004 | 2004 | Carbon Pickle 协议接收端口 |
| 2023 | 2023 | Carbon Aggregator 纯文本协议接收端口 |
| 2024 | 2024 | Carbon Aggregator Pickle 协议接收端口 |
| 8080 | 8080 | Graphite 内部 Gunicorn 端口(不经过 Nginx 代理) |
| 8125 | 8125/udp | Statsd 指标接收端口(默认 UDP,可通过 STATSD_INTERFACE=tcp 切换为 TCP) |
| 8126 | 8126 | Statsd 管理接口端口 |
默认情况下,容器会自动创建***卷存储以下数据。建议显式挂载主机目录以实现持久化:
| 主机目录(示例) | 容器目录 | 用途说明 |
|---|---|---|
/path/to/graphite/conf | /opt/graphite/conf | Graphite 配置文件 |
/path/to/graphite/storage | /opt/graphite/storage | 指标数据存储(whisper 文件) |
/path/to/statsd/config | /opt/statsd/config | Statsd 配置文件 |
/path/to/nginx/conf | /etc/nginx | Nginx 配置文件 |
/path/to/logs | /var/log | 日志文件(Graphite、Statsd 等) |
/path/to/redis/data | /var/lib/redis | Redis 数据(用于 TagDB,可选) |
挂载示例:
shdocker run -d \ --name graphite \ -v /host/graphite/conf:/opt/graphite/conf \ -v /host/graphite/storage:/opt/graphite/storage \ -v /host/statsd/config:/opt/statsd/config \ graphiteapp/graphite-statsd
发送测试指标数据
通过以下命令向 Statsd 发送随机指标:
shwhile true; do echo -n "example:$((RANDOM % 100))|c" | nc -w 1 -u 127.0.0.1 8125; done
(example 为指标名,c 表示计数器类型,数值为 0-99 随机数)
可视化指标数据
访问 Graphite 仪表盘查看指标:
默认 Django 管理员账户存在安全风险,需立即修改:
rootrootroot.graphite@mailinator.com修改步骤:
| 环境变量 | 默认值 | 说明 |
|---|---|---|
GRAPHITE_WSGI_PROCESSES | 4 | Gunicorn 工作进程数 |
GRAPHITE_WSGI_THREADS | 1 | 每个工作进程的线程数 |
GRAPHITE_WSGI_REQUEST_TIMEOUT | 65 | 请求超时时间(秒) |
STATSD_INTERFACE | udp | Statsd 监听协议(udp 或 tcp) |
SVWAIT | 7 | runit 服务停止超时时间(秒) |
| 环境变量 | 默认值 | 说明 |
|---|---|---|
GRAPHITE_ALLOWED_HOSTS | * | 允许访问的主机列表(Django 设置) |
GRAPHITE_TIME_ZONE | Etc/UTC | 时区设置 |
GRAPHITE_UTF8_METRICS | false | 是否允许 UTF-8 格式指标名(可能影响性能) |
GRAPHITE_DEBUG | false | 是否启用调试模式(显示详细错误信息) |
GRAPHITE_DEFAULT_CACHE_DURATION | 60 | 指标数据和图表缓存时间(秒) |
GRAPHITE_CLUSTER_SERVERS | '' | 集群服务器列表(远程指标查询) |
| 环境变量 | 默认值 | 说明 |
|---|---|---|
CARBON_DISABLE_TAGS | false | 是否禁用 TagDB(设置为 true 禁用) |
GRAPHITE_CARBONLINK_HOSTS | '127.0.0.1:7002' | Carbonlink 服务地址列表 |
RELAY | 0 | 是否启用 carbon-relay(设置为 1 启用) |
TagDB 用于存储指标标签信息,默认使用 SQLite,可切换为 Redis:
| 环境变量 | 默认值 | 说明 |
|---|---|---|
REDIS_TAGDB | false | 是否使用 Redis 存储标签(true 启用) |
GRAPHITE_TAGDB_REDIS_HOST | 'localhost' | Redis 主机地址 |
GRAPHITE_TAGDB_REDIS_PORT | 6379 | Redis 端口 |
| 环境变量 | 默认值 | 说明 |
|---|---|---|
COLLECTD | 0 | 启用 Collectd(1 启用) |
GOCARBON | 0 | 使用 go-carbon 替代 Carbon(1 启用) |
BRUBECK | 0 | 使用 Brubeck 替代 Statsd(1 启用) |
MEMCACHE_HOST | '' | Memcached 地址(如 127.0.0.1:11211) |
若需调整高级配置(如 storage-schemas.conf):
docker stop graphitedocker inspect graphite(在 Mounts 中找到对应卷的 Source 路径)/var/lib/docker/volumes/xxx/_data/storage-schemas.conf)docker start graphite注意:修改 storage-schemas.conf 后,需删除旧的 whisper 文件(/opt/graphite/storage/whisper/ 目录下)以应用新的数据保留策略。
创建 docker-compose.yml 文件:
yamlversion: '3' services: graphite: image: graphiteapp/graphite-statsd container_name: graphite restart: always ports: - "80:80" - "2003-2004:2003-2004" - "8125:8125/udp" - "8126:8126" volumes: - ./graphite/conf:/opt/graphite/conf - ./graphite/storage:/opt/graphite/storage environment: - GRAPHITE_TIME_ZONE=Asia/Shanghai - GRAPHITE_WSGI_PROCESSES=8
启动:docker-compose up -d
推荐使用第三方 Helm Chart:https://github.com/kiwigrid/helm-charts/tree/master/charts/graphite
设置 GOCARBON=1 启用 https://github.com/lomik/go-carbon%EF%BC%88Carbon 的 Go 语言实现,性能更优)。若需启用 carbonserver,设置 GRAPHITE_CLUSTER_SERVERS="127.0.0.1:8000"。
设置 BRUBECK=1 启用 https://github.com/github/brubeck%EF%BC%88Statsd 替代方案,支持更多协议,但配置格式与原生 Statsd 不兼容)。
容器使用 runit 作为 init 系统管理多进程,需 root 权限运行。这符合 Docker 多进程容器最佳实践,但不完全遵循“单进程容器”理念。若需无 root 运行,建议拆分部署各组件。
确保 Statsd 刷新间隔(flushInterval)不小于 Carbon 最小数据保留粒度。例如,Statsd 配置 flushInterval: 10000(10 秒)时,storage-schemas.conf 中保留策略需设置为 10s:12h 或更大粒度。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务