wiki-js/NAS/Synology/scrutiny.html

143 lines
11 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<!--
title: Просмотр атрибутов SMART в DSM 7.2.1 и новее
description: scrutiny
published: true
date: 2025-03-12T10:21:29.816Z
tags: scrutiny, smart
editor: ckeditor
dateCreated: 2025-03-12T10:21:29.816Z
-->
<p>Источник: https://bafista.ru/prosmotr-atributov-smart-v-dsm-7-2-1-i-novee/</p>
<h2><strong>Введение</strong></h2>
<p>В самой лучшей на данный момент ОС DSM для NAS от компании Synology было все необходимое для работы с дисками. Но 26.09.2023 вышло <a href="https://www.synology.com/ru-ru/releaseNote/DSM"><u>обновление DSM 7.2.1</u></a> и вместе с ним обновление для <a href="https://www.synology.com/ru-ru/releaseNote/StorageManager"><u>диспетчера хранения</u></a> 1.0.0-0017. В этом обновлении произошло невероятное: <i><strong>Атрибуты S.M.A.R.T. больше не записываются и не отображаются.</strong></i></p>
<p>При проверке опасения подтвердились. Кнопка просмотров атрибутов SMART пропала со своего места и теперь ее нигде нет. Очень печальная ситуация.</p>
<p><a href="https://github.com/AnalogJ/scrutiny"><u>Scrutiny&nbsp;</u></a> это инструмент, который собирает данные SMART с жесткого диска и отображает их через веб-интерфейс. Дополнительно ведется логирование полученных данных и есть возможность настроить уведомления.</p>
<figure class="image image_resized" style="width:47.66%;"><img src="https://bafista.ru/wp-content/uploads/2023/09/scr-20230930-iwuw.png"></figure>
<p>&nbsp;</p>
<figure class="image image_resized" style="width:47.81%;"><img src="https://bafista.ru/wp-content/uploads/2023/09/scr-20230930-jdtv.png"></figure>
<h2><strong>Установка Scrutiny</strong></h2>
<p>Для установки нам понадобится Container Manager. Поэтому перед началом найдите его в центре пакетов и установите. Если в центре пакетов его нет, значит ваше устройство его не поддерживает и дальше вам можно не читать данную инструкцию.</p>
<p>Откройте File station и перейдите в папку docker. В этой папке создайте пустой каталог с именем <strong>scrutiny</strong>, а внутри еще один пустой с именем <strong>influxdb</strong> как показано на картинке ниже.</p>
<figure class="image image_resized" style="width:46.87%;"><img src="https://bafista.ru/wp-content/uploads/2023/09/image-180-1024x594.png"></figure>
<p>Так тут же нужно создать файл <strong>collector.yaml</strong> следующего содержимого:</p>
<pre><code class="language-plaintext">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'</code></pre>
<p>Разберем что в этом файле и зачем.</p>
<ul>
<li>ИмяСервера замените на ваше, желательно латинскими буквами</li>
<li>sata1 sata2 sata3 это все ваши диски. Укажите тут точное количество ваших дисков в Synology и где они установлены. Номер 1 2 и 3 совпадает с номеров диска в слотах устройства. В некоторых случаях вместо sata1 sata2 sata3 и т.д. нужно указывать sda sdb sdc и т.д.</li>
<li>nvme0m1 и nvme1n1 это ssd диски установленные в M2 слоты, если у вас их нет, то просто удалите их.</li>
</ul>
<blockquote>
<p><i>Так же можно добавить диски подключенные по USB, подробнее в комментарии по </i><a href="https://bafista.ru/prosmotr-atributov-smart-v-dsm-7-2-1-i-novee/#comment-2692"><i><u>ссылке</u></i></a></p>
</blockquote>
<p>Теперь открываем Container Manager, переходим в проекты и нажимаем создать проект. В открывшемся окне придумываем имя, задаем путь, который мы ранее создали и выбираем создать docker-compose.yml как показано на картинке ниже.</p>
<figure class="image"><img src="https://bafista.ru/wp-content/uploads/2023/09/image-181-1024x617.png"></figure>
<p>В тактовое поле вставляем такой текст заранее его подредактировав:</p>
<pre><code class="language-plaintext">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</code></pre>
<p>Разберем что в этом файле и зачем.</p>
<ul>
<li>Порт 8095 это порт для web интерфейса scrutiny. Порт 8096 для web интерфейса influxDB. Порты после двоеточия 8080 и 8086 менять нельзя.</li>
<li>sata1 sata2 sata3 это все ваши диски. Укажите тут точное количество ваших дисков в Synology и где они установлены. Номер 1 2 и 3 совпадает с номеров диска в слотах устройства. В некоторых случаях вместо sata1 sata2 sata3 и т.д. нужно указывать sda sdb sdc и т.д.</li>
<li>nvme0m1 и nvme1n1 это ssd диски установленные в M2 слоты, если у вас их нет, то просто удалите их.</li>
<li>Токен, логин и пароль устанавливайте на свое усмотрение, но не менее 8 символов иначе не будет работать.</li>
</ul>
<p>По умолчанию сбор данных в scrutiny выполняется раз в сутки и этого вполне достаточно почти всегда, но это можно переопределить вставив такую переменную:</p>
<blockquote>
<p><i>Спешу напомнить, что если вы хотите переопределить частоту запуска коллектора, то нужно заново создавать проект с контейнером.</i></p>
<p style="text-align:center;"><i>!!! Не делайте часто, это не есть хорошо !!!</i></p>
</blockquote>
<pre><code class="language-plaintext">- COLLECTOR_CRON_SCHEDULE='*/1 * * * *'</code></pre>
<p>Где:</p>
<ul>
<li>*/1 * * * * запуск коллектора каждую минуту</li>
<li>*/5 * * * * запуск коллектора каждые 5 минут</li>
<li>*/10 * * * * запуск коллектора каждые 10 минут</li>
<li>0 * * * * запуск коллектора каждый час</li>
</ul>
<p>Далее нигде ничего менять не нужно, просто на заключительном этапе жмите выполнено для создания и запуска проекта scrutiny</p>
<figure class="image"><img src="https://bafista.ru/wp-content/uploads/2023/09/image-182-1024x554.png"></figure>
<p>Процесс этот весьма небыстрый. Будет скачен образ контейнера docker, затем распакован и создан сам контейнер. Если все сделано правильно, то увидите Exit Code 0, что означает успешное создание проекта с контейнером. Если нет, то увидите в чем проблема, ее нужно будет устранить и начать заново.</p>
<figure class="image"><img src="https://bafista.ru/wp-content/uploads/2023/09/image-183-1024x559.png"></figure>
<p>&nbsp;</p>
<p>Теперь в браузере открываете новую вкладку и вбиваете http://IP-NAS:8095. Естественно, что IP адрес и порт вы вставляете свои.</p>
<blockquote>
<p><i>При создании проекта для него создается отдельная сеть bridge, которую нужно разрешить на фаерволе Synology, если он у вас включен</i></p>
</blockquote>
<figure class="image"><img src="https://bafista.ru/wp-content/uploads/2023/09/image-184-1024x674.png"></figure>
<p>Для просмотра атрибутов SMART щелкните три точки у нужного диска и нажмите Detail</p>
<figure class="image"><img src="https://bafista.ru/wp-content/uploads/2023/09/image-185-1024x674.png"></figure>
<p>Тут нужно отметить, что данные обновляются раз в сутки в 6:00 утра или после старта контейнера scrunity.</p>
<p><i>За образец была взята эта </i><a href="https://drfrankenstein.co.uk/2023/05/29/scrutiny-in-container-manager-on-a-synology-nas/"><i><u>инструкция</u></i></a><i>, но сделано по моему.</i></p>
<p>Добавочные файлы config.yml</p>
<pre><code class="language-plaintext">bolt-path: /opt/scrutiny/influxdb/influxd.bolt
engine-path: /opt/scrutiny/influxdb/engine
http-bind-address: ":8086"
reporting-disabled: true
</code></pre>
<p>Уведомление через Gotify scrutiny.yml</p>
<pre><code class="language-plaintext">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"
</code></pre>