
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
该镜像提供AWS S3桶对象的Prometheus指标,通过查询S3 API获取指定桶和前缀的对象信息并生成指标。主要用于监控备份作业和批量上传状态,可通过比较对象大小/数量增长趋势或最后修改日期验证业务功能是否正常。
从源码构建可执行文件:
bashmake
bash./s3_exporter <flags>
通过/probe端点查询指定桶和前缀的指标:
bashcurl localhost:9340/probe?bucket=some-bucket&prefix=some-folder/some-file.txt
exporter不会自动配置AWS会话,需按AWS SDK文档提供凭证。若需从~/.aws/config加载凭证,需设置环境变量:
bashexport AWS_SDK_LOAD_CONFIG=true
拉取镜像
bashdocker pull ribbybibby/s3-exporter
运行容器
需向容器提供AWS凭证,支持以下两种方式:
环境变量方式:
bashdocker run -p 9340:9340 \ -e AWS_ACCESS_KEY_ID=<值> \ -e AWS_SECRET_ACCESS_KEY=<值> \ -e AWS_REGION=<值> \ ribbybibby/s3-exporter:latest <flags>
挂载卷方式:
bashdocker run -p 9340:9340 \ -e AWS_SDK_LOAD_CONFIG=true \ -e HOME=/ \ -v $HOME/.aws:/.aws \ ribbybibby/s3-exporter:latest <flags>
| 参数 | 说明 | 默认值 |
|---|---|---|
| -h, --help | 显示上下文相关帮助信息 | - |
| --web.listen-address | Web界面和遥测的监听地址 | ":9340" |
| --web.metrics-path | 暴露指标的路径 | "/metrics" |
| --web.probe-path | 暴露探测端点的路径 | "/probe" |
| --web.discovery-path | 暴露服务发现的路径 | "/discovery" |
| --s3.endpoint-url | 自定义S3端点URL | "" |
| --s3.disable-ssl | 禁用SSL | - |
| --s3.force-path-style | 强制使用路径样式访问 | - |
| --log.level | 日志级别(支持:debug, info, warn, error, fatal) | "info" |
| --log.format | 日志目标和格式 | "logger:stderr" |
| --version | 显示应用版本 | - |
所有参数可通过环境变量设置,前缀为S3_EXPORTER_。例如:S3_EXPORTER_S3_ENDPOINT_URL=http://s3.example.local。
| 指标名称 | 含义 | 标签 |
|---|---|---|
| s3_biggest_object_size_bytes | 最大对象的大小(字节) | bucket, prefix |
| s3_last_modified_object_date | 最近修改对象的时间戳 | bucket, prefix |
| s3_last_modified_object_size_bytes | 最近修改对象的大小(字节) | bucket, prefix |
| s3_list_duration_seconds | ListObjects操作的持续时间(秒) | bucket, prefix |
| s3_list_success | ListObjects操作是否成功完成(1=成功,0=失败) | bucket, prefix |
| s3_objects_size_sum_bytes | 所有对象的总大小(字节) | bucket, prefix |
| s3_objects | 对象总数 | bucket, prefix |
通过重标签配置监控指定桶和前缀:
yamlscrape_configs: - job_name: "s3" metrics_path: /probe static_configs: - targets: - bucket=stuff;prefix=thing.txt; - bucket=other-stuff;prefix=another-thing.gif; relabel_configs: - source_labels: [__address__] regex: "^bucket=(.*);prefix=(.*);$" replacement: "${1}" target_label: "__param_bucket" - source_labels: [__address__] regex: "^bucket=(.*);prefix=(.*);$" replacement: "${2}" target_label: "__param_prefix" - target_label: __address__ replacement: 127.0.0.1:9340 # S3 exporter地址
使用/discovery端点自动发现可访问的桶:
yamlscrape_configs: - job_name: "s3" metrics_path: /probe http_sd_configs: - url: http://127.0.0.1:9340/discovery
通过重标签筛选需要监控的桶:
yamlscrape_configs: - job_name: "s3" metrics_path: /probe http_sd_configs: - url: http://127.0.0.1:9340/discovery relabel_configs: # 保留以example-开头的桶 - source_labels: [__param_bucket] action: keep regex: ^example-.*
为所有桶设置统一前缀:
yamlscrape_configs: - job_name: "s3" metrics_path: /probe http_sd_configs: - url: http://127.0.0.1:9340/discovery params: prefix: ["thing.txt"]
查询最后修改时间超过24小时的对象:
promql(time() - s3_last_modified_object_date) / 3600 > 24
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务