
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
!https://img.shields.io/github/v/tag/PureStorage-OpenConnect/pure-exporter?label=current%20version
Prometheus导出器,用于监控Pure Storage FlashArray和FlashBlade存储设备。
本应用旨在通过提供"导出器"功能帮助监控Pure Storage FlashArray和FlashBlade设备,即从Purity API提取数据并转换为Prometheus易于读取的格式。
导出器的无状态设计便于配置管理,同时支持扩展以监控多台Pure Storage设备。当Prometheus抓取特定设备的指标时,需通过GET参数提供主机名,并通过Authorization令牌提供API令牌给导出器。
注意:之前通过GET参数提供Pure API令牌的方法已弃用,将在下个主要版本中移除。
要监控Pure Storage设备,需在阵列上创建具有只读权限的专用用户,并生成新的API密钥。导出器提供三种选项:
导出器优选通过Docker构建和启动。由于应用的无状态特性,可在Kubernetes上扩展部署到多个容器。
shelldocker pull ***-quay.xuanyuan.run/purestorage/pure-exporter:1.2.5-a
FlashArray专用导出器:
shelldocker pull ***-quay.xuanyuan.run/purestorage/pure-fa-exporter:1.2.5-a
FlashBlade专用导出器:
shelldocker pull ***-quay.xuanyuan.run/purestorage/pure-fb-exporter:1.2.5-a
通过Docker构建和部署应用时,本地Linux用户应添加到docker组以与Docker守护进程通信(如不可行,可使用sudo)。具体操作方法可参考https://docs.docker.com/engine/install/%E3%80%82
运行导出器的简单实例:
bashmake -f Makefile.fa test # FlashArray导出器测试 make -f Makefile.fb test # FlashBlade导出器测试 make -f Makefile.mk test # 完整导出器测试
Makefile包含以下目标:
应用通常通过gunicorn WSGI服务器运行。如要参与开发,可直接执行应用在本地运行(无需WSGI服务器)。
开发环境设置步骤:
bash# 建议使用Python虚拟环境 python -m venv env source ./env/bin/activate # 安装依赖 python -m pip install -r requirements.txt # 以调试模式运行应用 python pure_exporter.py
修改FlashArray或FlashBlade导出器时,使用相应的requirements文件即可。
导出器使用RESTful API模式提供Prometheus抓取端点。
导出器通过认证机制与被监控设备交叉认证,因此每个阵列需提供具有'readonly'角色账户的REST API令牌。API令牌必须通过HTTP Authorization头(Bearer类型)在请求中提供,可在Prometheus配置文件的特定作业中指定api-token作为authorization参数。作为替代,可通过请求参数'apitoken'提供(注意:此选项已弃用,将在未来版本中移除)。
| 系统 | URL | GET参数 | 描述 |
|---|---|---|---|
| FlashArray | http:// | endpoint | 完整阵列指标 |
| FlashArray | http:// | endpoint | 仅阵列指标 |
| FlashArray | http:// | endpoint | 仅卷指标 |
| FlashArray | http:// | endpoint | 仅主机指标 |
| FlashArray | http:// | endpoint | 仅Pod指标 |
| FlashBlade | http:// | endpoint | 完整阵列指标 |
| FlashBlade | http:// | endpoint | 仅阵列指标 |
| FlashBlade | http:// | endpoint | 仅客户端指标 |
| FlashBlade | http:// | endpoint | 仅配额指标 |
| URL | GET参数 | 描述 |
|---|---|---|
| http:// | endpoint | 完整阵列指标 |
| http:// | endpoint | 仅阵列指标 |
| http:// | endpoint | 仅卷指标 |
| http:// | endpoint | 仅主机指标 |
| http:// | endpoint | 仅Pod指标 |
| URL | GET参数 | 描述 |
|---|---|---|
| http:// | endpoint | 完整阵列指标 |
| http:// | endpoint | 仅阵列指标 |
| http:// | endpoint | 仅客户端指标 |
| http:// | endpoint | 仅配额指标 |
针对特定阵列抓取全部指标可能导致超时,建议增加抓取超时时间或单独抓取各个端点。
config目录提供了多个Prometheus配置示例,可作为构建自定义解决方案的起点。
在典型生产环境中,建议使用Grafana等可视化前端展示指标。Grafana可将Prometheus实例作为数据源,通过PromQL查询创建图表和其他可视化。Grafana、Prometheus均可作为Docker容器运行。
启动基础容器集的命令:
bash# Pure导出器 docker run -d -p 9491:9491 --name pure-exporter ***-quay.xuanyuan.run/purestorage/pure-exporter:<version> # Prometheus(需先创建配置文件) docker run -d -p 9090:9090 --name=prometheus -v /tmp/prometheus-pure.yml:/etc/prometheus/prometheus.yml -v /tmp/prometheus-data:/prometheus docker.xuanyuan.run/prom/prometheus:latest # Grafana docker run -d -p 3000:3000 --name=grafana -v /tmp/grafana-data:/var/lib/grafana docker.xuanyuan.run/grafana/grafana
请参考各镜像/应用的文档获取适当的配置示例。
Pure FlashBlade REST API在高效报告完整客户端和对象配额KPI方面设计不足,建议优先抓取/metrics/flashblade/array,并以较低频率单独抓取/metrics/flashblade/clients和/metrics/flashblade/quotas。通常,抓取间隔不应低于30秒。如遇超时问题,可通过设置--timeout变量增加Gunicorn内部超时,并适当减少抓取间隔。
Gunicorn默认生成2个worker,监控大量阵列时不够优化。建议运行导出器时,worker数量约等于待监控阵列数量。
本项目采用Apache 2.0许可证 - 详见LICENSE.md文件。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务