跳到主要内容

Setup Scrutiny via Docker at Synology DSM

·381 字

1.硬盘列表 #

我的 lsblk 是基于 SynoCli Disk Tools 的,没有的话请自行安装。

root@DSM:/volume1/docker/scrutiny# lsblk
NAME                            MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINTS
loop0                             7:0    0    32M  0 loop  /tmp/SynologyAuthService
sata1                             8:0    0   3.6T  0 disk  
├─sata1p1                         8:1    0     8G  0 part  
│ └─md0                           9:0    0     8G  0 raid1 /
├─sata1p2                         8:2    0     2G  0 part  
│ └─md1                           9:1    0     2G  0 raid1 [SWAP]
└─sata1p3                         8:3    0   3.6T  0 part  
  └─md2                           9:2    0   3.6T  0 raid1 
    ├─vg1-syno_vg_reserved_area 249:2    0    12M  0 lvm   
    └─vg1-volume_1              249:3    0   3.6T  0 lvm   
      └─cachedev_1              249:5    0   3.6T  0 dm    /volume1
synoboot                          8:16   1  28.9G  0 disk  
├─synoboot1                       8:17   1    50M  0 part  
├─synoboot2                       8:18   1    50M  0 part  
└─synoboot3                       8:19   1  28.8G  0 part  
iscsi1                            8:32   0    10G  0 disk  
├─iscsi1p1                        8:33   0     9G  0 part  
├─iscsi1p2                        8:34   0     1K  0 part  
└─iscsi1p5                        8:37   0   975M  0 part  
iscsi2                            8:48   0    10G  0 disk  
├─iscsi2p1                        8:49   0   128M  0 part  
└─iscsi2p2                        8:50   0   9.9G  0 part  
iscsi3                            8:64   0    10G  0 disk  
└─iscsi3p1                        8:65   0    10G  0 part  
iscsi4                            8:80   0   100G  0 disk  
zram0                           250:0    0   1.5G  0 disk  [SWAP]
zram1                           250:1    0   1.5G  0 disk  [SWAP]
zram2                           250:2    0   1.5G  0 disk  [SWAP]
zram3                           250:3    0   1.5G  0 disk  [SWAP]
zram4                           250:4    0   1.5G  0 disk  [SWAP]
zram5                           250:5    0   1.5G  0 disk  [SWAP]
nvme0n1                         259:0    0 476.9G  0 disk  
├─nvme0n1p1                     259:1    0     8G  0 part  
├─nvme0n1p2                     259:2    0     2G  0 part  
└─nvme0n1p3                     259:3    0 466.7G  0 part  
  └─md3                           9:3    0 466.7G  0 raid1 
    ├─vg2-syno_vg_reserved_area 249:0    0    12M  0 lvm   
    └─vg2-volume_2              249:1    0   466G  0 lvm   
      └─cachedev_0              249:4    0   466G  0 dm    /volume2/@docker/btrfs
                                                           /volume2/@docker
                                                           /volume2

用我的 DSM 举例,有一个 NVME SSD nvme0n1 和机械硬盘 sata1.

2.docker-compose #

由于需要保存配置文件,故建议在 /volume1/docker/ 下新建一个文件夹。

# compose.yaml
services:
  scrutiny:
    container_name: scrutiny
    image: ghcr.io/analogj/scrutiny:master-omnibus
    cap_add:
      - SYS_RAWIO   # 获取机械硬盘的S.M.A.R.T 信息,默认即可
      - SYS_ADMIN    # 获取NVMe硬盘的S.M.A.R.T 信息,没有可以删除
    ports:
      - "8183:8080" # webapp
      #- "8184:8086" # influxDB admin(可以不映射)
    volumes:
      - /run/udev:/run/udev:ro
      - ./config:/opt/scrutiny/config
      - ./influxdb:/opt/scrutiny/influxdb
    devices:
      - "/dev/nvme0n1:/dev/nvme0" # NVME SSD 需要映射为 nvme*
      - "/dev/sata2"
    restart: unless-stopped

此外,还需要手动在 config 文件夹中建立一个 collector.yaml,部分目录结构如下所示。

root@DSM:/volume1/docker# tree scrutiny/
scrutiny/
├── compose.yaml
├── config
│   ├── collector.yaml
│   └── scrutiny.db
└── influxdb
    ├── config.yaml
    ...
# collector.yaml
version: 1
host:
  id: ""
devices:
  - device: /dev/sata1
    type: 'sat'
  - device: /dev/nvme0n1
    type: 'nvme'

一一对应,即可轻松映射过去。

3.启动 #

docker-compose pull
docker-compose up -d

在浏览器中打开 IP:8183 即可见磁盘监控状态。

Scrutiny

参考资料:

  1. https://catcat.blog/docker-install-scrutiny-monitor-harddrive.html
  2. https://drfrankenstein.co.uk/scrutiny-in-docker-on-a-synology-nas/
  3. https://github.com/AnalogJ/scrutiny/issues/26