SuperAPI AI 工具集

unraid

部署与运维

查看项目

更新于 10-16 07:12

技能介绍

用途:该技能用于通过 Unraid 的 GraphQL API 查询和监控 Unraid 服务器,适用于用户提出“check Unraid”“monitor Unraid”“Unraid API”“get Unraid status”等需求时。它提供对全部 27 个只读端点的访问,覆盖系统监控、磁盘健康、日志、容器、虚拟机等。

主要能力:

  • 系统监控:检查服务器是否在线,获取 CPU 与内存使用率,运行完整的多服务器仪表盘。
  • 磁盘管理:检查磁盘健康与温度,获取阵列状态(含奇偶校验状态),列出所有物理磁盘(包括缓存/USB)。
  • 存储共享:列出网络共享。
  • 日志:列出可用日志文件,读取日志内容。
  • 容器与虚拟机:列出 Docker 容器(名称、镜像、状态、状态描述),列出虚拟机(名称、状态、CPU、内存)。注意:容器输出日志无法通过 API 访问,需通过 SSH 使用 docker logs。
  • 通知:获取通知计数(未读的信息、警告、警报、总数)。

使用方式:

  1. 设置凭据: export UNRAID_URL="https://your-unraid-server/graphql" export UNRAID_API_KEY="your-api-key" API Key 获取路径:Settings → Management Access → API Keys → Create(选择 "Viewer" 角色)。
  2. 使用辅助脚本执行查询: ./scripts/unraid-query.sh -q "{ online }" 或运行示例脚本: ./scripts/dashboard.sh # 完整多服务器仪表盘 ./examples/disk-health.sh # 磁盘温度与健康 ./examples/read-logs.sh syslog 20 # 读取系统日志
  3. 辅助脚本参数: ./scripts/unraid-query.sh -u URL -k API_KEY -q "QUERY" 或使用环境变量: export UNRAID_URL="https://unraid.local/graphql" export UNRAID_API_KEY="your-key" ./scripts/unraid-query.sh -q "{ online }" 格式选项:-f json(原始 JSON,默认)、-f pretty(美化 JSON)、-f raw(仅数据,无包装)。

核心概念:

  • Unraid 7.2+ 使用 GraphQL(非 REST)。关键差异:单一端点 /graphql 处理所有查询;按需精确指定字段;强类型,可用内省发现字段;容器日志不可访问。
  • 两类统计资源:info 为静态硬件规格(CPU 型号、核心数、OS 版本);metrics 为实时使用情况(CPU %、内存 %、当前负载)。监控应使用 metrics,规格应使用 info。

常用命令参考:

  • 系统状态:./scripts/unraid-query.sh -q "{ online metrics { cpu { percentTotal } } }"
  • 磁盘健康:./examples/disk-health.sh
  • 阵列状态:./scripts/unraid-query.sh -q "{ array { state } }"
  • 读取日志:./examples/read-logs.sh syslog 20
  • 完整仪表盘:./scripts/dashboard.sh
  • 列出共享:./scripts/unraid-query.sh -q "{ shares { name } }"
  • 列出容器:./scripts/unraid-query.sh -q "{ docker { containers { names state } } }"

附加资源:

  • references/endpoints.md:全部 27 个 API 端点的完整列表。
  • references/troubleshooting.md:常见错误与解决方案。
  • references/api-reference.md:详细字段文档。
  • scripts/unraid-query.sh:主 GraphQL 查询工具。
  • scripts/dashboard.sh:自动化多服务器清单报告器。

适用场景:需要以只读方式监控 Unraid 服务器状态、磁盘健康、阵列、共享、日志、容器与虚拟机,以及获取通知计数的场景。

限制:仅支持只读端点;容器输出日志无法通过 API 访问,需通过 SSH 使用 docker logs;需要 Unraid 7.2+ 及有效的 API Key(Viewer 角色)。