采集 Terminal API 与 BatchMode 公钥探测,硬件 tab 主卡精简(IP 常显、 DSM 版本进机身详情),明细用 hwFold;文档同步 SSH 已通与修复入口。
6 KiB
NAS / DSM 可观测(DS224+ · 实测)
2026-07-10 · 用
linuxjoy账号只读登录 DSM API 摸底
凭据仅存本机~/.config/nas/dsm.env(chmod 600),禁止入库
已落地:joy.dashboard.nas_dsm.collect_nas_dsm→dashboard.infra.nas.dsm→ 硬件 tab「NAS」
总手册(挂载 / SSH / 安全 / 索引):nas.md
1. 访问结论
| 通道 | 结果 |
|---|---|
https://192.168.1.188:5001 DSM Web |
✅ |
DSM API SYNO.API.Auth v7 + entry.cgi |
✅ 登录成功,权限够读机身/存储/共享 |
NFS 挂载 shared-context(Mac) |
✅ 内容面;与 volume1 对应 |
SSH linuxjoy@192.168.1.188 密码 |
❌ 仅 publickey,密码认证未开 |
| 建议 joy 采集 | 优先 DSM API(curl -sk);内容面用已挂载路径;不必依赖 SSH |
登录示例(勿把密码写进脚本仓库):
# sid 缓存 ~/.config/nas/dsm.sid
curl -sk -G 'https://192.168.1.188:5001/webapi/entry.cgi' \
--data-urlencode 'api=SYNO.API.Auth' --data-urlencode 'version=7' \
--data-urlencode 'method=login' --data-urlencode "account=$NAS_USER" \
--data-urlencode "passwd=$NAS_PASS" --data-urlencode 'session=Core' \
--data-urlencode 'format=sid'
Python urllib 对本机 DSM TLS 偶发 EOF;生产采集用 curl 子进程更稳。
2. 机身快照(实测)
| 项 | 值 |
|---|---|
| 型号 | DS224+ |
| DSM | 7.3.2-86009 Update 4 |
| CPU | Intel Celeron J4125 4 核 @2.0GHz |
| 内存 | 6 GB(real_usage ~15%) |
| 系统温度 | ~41°C,无温度告警 |
| 运行时间 | ~114h(采样时) |
| 主机名 | feibisi-NAS |
| 网卡 | eth0 1G connected 192.168.1.188;eth1 disconnected |
| UPS | USB 识别 APC UPS(专用 UPS API 对本账号 102 无权限,但 system.usb_dev 可见) |
| 风扇 | cool_fan=yes,双风扇 cool 模式 |
| 健康 widget | system_ok |
存储
| 项 | 值 |
|---|---|
| 盘 | 2× WD80EFPX 8TB(Drive1/2),SMART normal,温度 35–37°C |
| 池 | RAID 1(reuse_1),status normal |
| 卷 | volume1 btrfs,~7.0T total,~2.6T used(~37%),fs_normal |
| 盘 IO | 低负载(util 采样时个位数%) |
文件服务
| 项 | 值 |
|---|---|
| NFS | 已开(v4 未开 minor);与 Mac NFS 挂载一致 |
| SMB | 配置可读 |
| 当前连接 | NFS(Mac .104、其它内网)+ DSM Web/File Station 会话 |
共享文件夹(11)
含:shared-context(VM SHARED)、docker、ActiveBackupforBusiness、homes、Download、iCloudPhotos、music/photo/video/web/web_packages。
套件(节选·running)
ActiveBackup、ActiveBackup-Office365、ActiveInsight、CloudSync、Git、Node.js_v20、SnapshotReplication、SynologyDrive 等(共 48 包量级)。
日志噪声
Syslog 近段 error 多为 Synology Office 自动更新失败(重复),非盘故障。
3. 可用 API 白名单(joy 采集建议)
| API | method | 用途 | 实测 |
|---|---|---|---|
SYNO.API.Auth |
login | 会话 | ✅ |
SYNO.Core.System |
info | 型号/固件/温度/UPS USB/uptime | ✅ |
SYNO.Core.System.Utilization |
get | CPU/内存/网/NFS OPS | ✅ |
SYNO.Storage.CGI.Storage |
load_info | 盘 SMART 状态/温度、卷用量、RAID | ✅ 机身核心 |
SYNO.Core.Share |
list | 共享列表 | ✅ |
SYNO.Core.CurrentConnection |
list | NFS/SMB/HTTP 会话 | ✅ 通道面 |
SYNO.Core.Package |
list | 套件 running | ✅ |
SYNO.Core.Network.Ethernet |
list | 网卡速度/链路 | ✅ |
SYNO.Core.Hardware.FanSpeed |
get | 风扇模式 | ✅ |
SYNO.Core.System.SystemHealth |
get | 健康摘要 | ✅ |
SYNO.Core.FileServ.NFS |
get | NFS 开关 | ✅ |
SYNO.Core.SyslogClient.Log |
list | 最近 warn/error 计数 | ✅ 慎用(量大) |
权限不足或无需:独立 SMART CGI(114)、Core.Hardware.UPS(102)、部分 Storage.Disk.list(101)。
4. 建议进 joy 的字段(硬件 · NAS 卡)
L0 机身(每 1–5 min,DSM API)
nas.dsm: {
ok, model, dsm_ver, hostname, uptime,
sys_temp_c, temp_warn,
cpu: {series, cores, load_1m, ...}, mem_pct,
eth0: {ip, speed, status},
pool: {raid, status},
volume: {used_gb, total_gb, used_pct, fs, status},
disks: [{slot, model, temp_c, smart_status, status}],
ups_usb, fan_mode,
terminal: {enable_ssh, enable_telnet, ssh_port}, // 2026-07-10
ssh: {ok, target, error}, // BatchMode 公钥探测
attention[]
}
L1 通道(同轮或稍慢)
nas.channels: {
nfs_enabled, smb_enabled?,
connections: {nfs_n, http_n, total},
mount_mac_ok, mount_devops_ok, // 现有
write_probe_ok // shared-context 写删探针
}
# SSH 修复:linuxjoy scripts/mac/nas-ssh.sh(不进 joy 写路径)
L2 内容(日更/手动,勿每轮 du)
- 白名单目录 entry 数 / 可选日
du缓存 - 禁止 secrets 内容进 JSON
展示位置:继续 硬件 · NAS(粮仓),不进神州、不进神兽 badge 主公式。
5. 实现要点
collect_nas_dsm():读~/.config/nas/dsm.env,curl 登录,缓存 sid ~10–30 min。- 失败降级:无账号/登录失败 → 仅保留现有 mount+df。
- TLS:
curl -sk或等价;勿用会 EOF 的默认 SSL 栈硬扛。 - 密码不进 HANDOFF / git / dashboard 明文。
- SSH 公钥已通(2026-07-10);
collect_nas_dsm每轮 BatchMode 探测ssh nas,UI 硬件卡展示。复发:linuxjoy/scripts/mac/nas-ssh.sh fix。 - 建议轮换聊天中暴露过的密码,并更新
~/.config/nas/dsm.env。
6. 安全提醒
本次会话中密码曾出现在聊天中。建议在 DSM 中:
- 修改
linuxjoy密码,并更新~/.config/nas/dsm.env - 或新建只读监控用户 + 最小权限
- 需要 SSH 时单独开公钥,不要开密码 SSH 到公网
实测账号:linuxjoy(本地 env)。SSH 密码认证未启用。