!Docker Pulls !Docker Size
本镜像为 Graphite 和 Statsd 的*** Docker 镜像,基于 hopsoft/docker-graphite-statsd 和 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 版本(针对性能优化,详情见 PR #151)。通过以下命令一键启动容器:
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 管理员账户存在安全风险,需立即修改:
rootroot***修改步骤:
| 环境变量 | 默认值 | 说明 |
|---|---|---|
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:***) |
若需调整高级配置(如 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:kiwigrid/graphite
设置 GOCARBON=1 启用 go-carbon(Carbon 的 Go 语言实现,性能更优)。若需启用 carbonserver,设置 GRAPHITE_CLUSTER_SERVERS="127.0.0.1:8000"。
设置 BRUBECK=1 启用 Brubeck(Statsd 替代方案,支持更多协议,但配置格式与原生 Statsd 不兼容)。
容器使用 runit 作为 init 系统管理多进程,需 root 权限运行。这符合 Docker 多进程容器最佳实践,但不完全遵循“单进程容器”理念。若需无 root 运行,建议拆分部署各组件。
确保 Statsd 刷新间隔(flushInterval)不小于 Carbon 最小数据保留粒度。例如,Statsd 配置 flushInterval: ***(10 秒)时,storage-schemas.conf 中保留策略需设置为 10s:12h 或更大粒度。
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 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