Источник: https://bafista.ru/prosmotr-atributov-smart-v-dsm-7-2-1-i-novee/

Введение

В самой лучшей на данный момент ОС DSM для NAS от компании Synology было все необходимое для работы с дисками. Но 26.09.2023 вышло обновление DSM 7.2.1 и вместе с ним обновление для диспетчера хранения 1.0.0-0017. В этом обновлении произошло невероятное: Атрибуты S.M.A.R.T. больше не записываются и не отображаются.

При проверке опасения подтвердились. Кнопка просмотров атрибутов SMART пропала со своего места и теперь ее нигде нет. Очень печальная ситуация.

Scrutiny – это инструмент, который собирает данные SMART с жесткого диска и отображает их через веб-интерфейс. Дополнительно ведется логирование полученных данных и есть возможность настроить уведомления.

 

Установка Scrutiny

Для установки нам понадобится Container Manager. Поэтому перед началом найдите его в центре пакетов и установите. Если в центре пакетов его нет, значит ваше устройство его не поддерживает и дальше вам можно не читать данную инструкцию.

Откройте File station и перейдите в папку docker. В этой папке создайте пустой каталог с именем scrutiny, а внутри еще один пустой с именем influxdb как показано на картинке ниже.

Так тут же нужно создать файл collector.yaml следующего содержимого:

version: 1
host:
  id: "NAS"
devices:
  - device: /dev/sata1
    type: 'sat'
#  - device: /dev/sata2
#    type: 'sat'
#  - device: /dev/sata3
#    type: 'sat'
  - device: /dev/nvme0n1
    type: 'nvme'
#  - device: /dev/nvme1n1
#    type: 'nvme'

Разберем что в этом файле и зачем.

Так же можно добавить диски подключенные по USB, подробнее в комментарии по ссылке

Теперь открываем Container Manager, переходим в проекты и нажимаем создать проект. В открывшемся окне придумываем имя, задаем путь, который мы ранее создали и выбираем создать docker-compose.yml как показано на картинке ниже.

В тактовое поле вставляем такой текст заранее его подредактировав:

services:
  scrutiny:
    container_name: scrutiny
    image: ghcr.io/analogj/scrutiny:master-omnibus
    cap_add:
      - SYS_RAWIO
      - SYS_ADMIN
    ports:
      - "8095:8080" # webapp
      - "8096:8086" # influxDB admin
    volumes:
      - /run/udev:/run/udev:ro
      - ./:/opt/scrutiny/config
      - ./influxdb:/opt/scrutiny/influxdb
      - ./scrutiny.yaml:/opt/scrutiny/config/scrutiny.yaml
    devices:
      - /dev/sata1:/dev/sata1
      # - /dev/sata2:/dev/sata2
      # - /dev/sata3:/dev/sata3
      - /dev/nvme0n1:/dev/nvme0n1
      # - /dev/nvme1n1:/dev/nvme1n1
    environment:
      - COLLECTOR_CRON_SCHEDULE='*/5 * * * *'
      - SCRUTINY_WEB_INFLUXDB_TOKEN=ANYLONGSTRING
      - SCRUTINY_WEB_INFLUXDB_INIT_USERNAME=sadmin
      - SCRUTINY_WEB_INFLUXDB_INIT_PASSWORD=6lise-shorter-Direct0
      - TZ=Europe/Moscow
    restart: unless-stopped

Разберем что в этом файле и зачем.

По умолчанию сбор данных в scrutiny выполняется раз в сутки и этого вполне достаточно почти всегда, но это можно переопределить вставив такую переменную:

Спешу напомнить, что если вы хотите переопределить частоту запуска коллектора, то нужно заново создавать проект с контейнером.

!!! Не делайте часто, это не есть хорошо !!!

- COLLECTOR_CRON_SCHEDULE='*/1 * * * *'

Где:

Далее нигде ничего менять не нужно, просто на заключительном этапе жмите выполнено для создания и запуска проекта scrutiny

Процесс этот весьма небыстрый. Будет скачен образ контейнера docker, затем распакован и создан сам контейнер. Если все сделано правильно, то увидите Exit Code 0, что означает успешное создание проекта с контейнером. Если нет, то увидите в чем проблема, ее нужно будет устранить и начать заново.

 

Теперь в браузере открываете новую вкладку и вбиваете http://IP-NAS:8095. Естественно, что IP адрес и порт вы вставляете свои.

При создании проекта для него создается отдельная сеть bridge, которую нужно разрешить на фаерволе Synology, если он у вас включен

Для просмотра атрибутов SMART щелкните три точки у нужного диска и нажмите Detail

Тут нужно отметить, что данные обновляются раз в сутки в 6:00 утра или после старта контейнера scrunity.

За образец была взята эта инструкция, но сделано по моему.

Добавочные файлы config.yml

bolt-path: /opt/scrutiny/influxdb/influxd.bolt
engine-path: /opt/scrutiny/influxdb/engine
http-bind-address: ":8086"
reporting-disabled: true

Уведомление через Gotify scrutiny.yml

version: 1

web:
  listen:
    port: 8080
    host: 0.0.0.0
    basepath: ''
  database:
    location: /opt/scrutiny/config/scrutiny.db
  src:
    frontend:
      path: /opt/scrutiny/web
  influxdb:
    host: 0.0.0.0
    port: 8086
    retention_policy: true
log:
  file: '' #absolute or relative paths allowed, eg. web.log
  level: INFO
notify:
 urls:
#    - "telegram://token@telegram?channels=channel-1[,channel-2,...]"
   - "gotify://prodik.ddns.net:8880/token"