Synology DSM
NAS Synology через веб-API DSM: тома, пулы хранения, состояние дисков, температура, задачи Hyper Backup, задачи Active Backup for Business, а также Synology Drive и Photos. Первая причина следить за NAS — его диски: диск, который нагревается или у которого ухудшается состояние SMART, предупреждает об отказе задолго до того, как упадёт том.
За чем он следит
Заголовок раздела «За чем он следит»Все метрики имеют префикс dumbmonit_synology_.
| Семейство | Метрики | Метки |
|---|---|---|
| Система | system_info (модель, версия DSM, прошивка…), uptime_seconds, temperature_celsius, temperature_warning, system_crashed, system_need_repair, storage_health | model, dsm_version, firmware |
| CPU и память | cpu_usage_percent, cpu_user/system/other_percent, cpu_cores, memory_total/used/available/installed_bytes, memory_usage_percent, swap_usage_percent | |
| Сеть | network_rx_bytes_per_second, network_tx_bytes_per_second | interface |
| Тома | volume_status, volume_total/used/available_bytes, volume_used_percent, volume_used_warning_percent, volume_used_critical_percent | volume, fs_type, raid_type |
| Пулы хранения и SSD-кэши | pool_status, pool_failed_disks, pool_total/used_bytes и те же четыре с префиксом ssd_cache_ | pool или ssd_cache, name, raid_type |
| Диски | disk_status, disk_smart_status, disk_temperature_celsius, disk_size_bytes, disk_bad_sector_exceeded, disk_life_below_threshold, disk_remaining_life_percent (только SSD: ресурс, который, по словам накопителя, у него остался), disk_unc_count (счётчик нечитаемых секторов DSM, тот, который он сверяет со своим порогом плохих секторов), disk_info | disk, name; у disk_info: model, serial, vendor, firmware, type, ssd |
| Hyper Backup | backup_tasks, backup_running, backup_last_result, backup_last_run_age_seconds, backup_last_success_age_seconds, backup_next_run_in_seconds | по задаче |
| Synology Drive | drive_up, drive_team_folders, drive_team_folder_info, drive_connections (см. ниже) | drive_team_folder_info: name |
| Synology Photos | photos_installed (см. ниже) | |
| Настройки безопасности | update_available, admin_account_enabled, autoblock_enabled, firewall_enabled (0/1; читаются раз в час, только с учётной записью администратора, необязательны: отсутствуют, если DSM отказывает) | |
| Сбор | up, scrape_errors, scrape_duration_seconds |
Метрики Active Backup for Business — исключение: они имеют префикс
dumbmonit_abb_ (см. ниже).
volume_status, disk_status и disk_smart_status несут собственное слово DSM в
метке (status, smart_status) и значение по одной шкале: 0 норма, 1
внимание (временное состояние вроде repairing или checking либо слово, которое DSM
ввёл, а DumbMonit пока не знает), 2 критично (degrade,
crashed, failed…). Неизвестное намеренно считается 1, никогда не 0.
Частичный сбой остаётся успешным опросом: если не удалась инвентаризация хранилища,
состояние системы и загрузка всё равно публикуются, а сбой учитывается в
scrape_errors. Весь опрос обрекает только сбой вызова обнаружения API или
соединения.
Страница монитора
Заголовок раздела «Страница монитора»
Монитор Synology получает собственную панель над графиками:
- Обзор — CPU, память (занято из общего), температура и время работы, с собственным вердиктом DSM о хранилище в виде плашки (исправно, внимание, сбой, нужен ремонт);
- Тома — одна строка на том: полоса использования, занято из общего, тип RAID и файловая система, состояние тома словом DSM (normal, degraded, crashed, repairing…);
- Пулы хранения — одна строка на пул: тип RAID, состояние пула словом
DSM, сколько его дисков DSM считает отказавшими и какая часть его
уже отдана томам. Здесь живёт избыточность: RAID 5, потерявший диск, оставляет том над ним в состоянии
normal, пока идёт перестроение, так что строка тома ничего не говорит, а эта говорит всё. Пул, полностью распределённый между томами, — нормальное конечное состояние, а не предупреждение, поэтому эта цифра — предложение, а не цветной индикатор; - SSD-кэш — одна строка на кэш: его тип RAID, состояние и размер.
Раздел отсутствует на NAS без кэша.
load_infoDSM не содержит режима кэша или доли попаданий, поэтому ни то, ни другое не показывается; - Диски — одна строка на отсек: модель, размер, температура, вердикт SMART, вердикт DSM о плохих секторах, счётчик нечитаемых секторов и, для SSD, оставшийся ресурс в виде небольшой полосы;
- Active Backup for Business — задачи, затем каждое устройство с копиями с его ритмом и тридцатидневной лентой (см. ниже).
Всё берётся из того, что сохранил опрос: открытие страницы никогда не обращается к NAS.
Встроенные правила для NAS
Заголовок раздела «Встроенные правила для NAS»| Правило | Серьёзность | Срабатывает, когда |
|---|---|---|
| Synology disk SMART warning | advisory | DSM больше не сообщает состояние SMART диска как normal в течение 15 минут. |
| Synology disk failed | warning | DSM сообщает, что диск отказал или вышел из строя, в течение 5 минут. |
| Synology disk bad sectors | warning | Число плохих секторов превышает порог, заданный в DSM, в течение 15 минут. |
| Synology disk bad sectors growing | advisory | За последние 24 часа появились новые нечитаемые секторы (delta(…disk_unc_count[24h]) > 0). |
| Synology SSD wearing out | advisory | У SSD осталось менее 10 % номинального ресурса в течение часа. |
| Synology volume degraded | warning | Том деградировал или отказал, в течение 5 минут. |
| Synology storage pool degraded | warning | Пул хранения или SSD-кэш деградировал или отказал, в течение 5 минут. RAID 5, потерявший диск, проявляется здесь первым: DSM оставляет том над ним в состоянии normal, пока идёт перестроение. |
| Synology volume almost full | advisory | Том заполнен на 90 % или более в течение 15 минут. |
| Synology temperature high | advisory | Диск выше 55 °C или DSM поднял предупреждение о температуре, в течение 15 минут. |
| Synology memory high | advisory | Использование памяти выше 95 % в течение 15 минут. |
Active Backup for Business
Заголовок раздела «Active Backup for Business»Active Backup for Business (ABB) копирует на NAS ПК, физические серверы, виртуальные
машины и файловые серверы. Если пакет установлен и запущен,
DumbMonit читает его задачи при каждом опросе; если нет, NAS просто
не объявляет этот API, и ничего не запрашивается. Параметр abb отключает всё
семейство.
То же относится к Hyper Backup: DSM перечисляет API пакета, только пока
пакет работает, поэтому NAS, у которого Hyper Backup остановлен — или который лишь принимает
копии через Hyper Backup Vault — не публикует метрик backup_* и
не сообщает об ошибке. DumbMonit спрашивает у NAS, какие API у него есть, прежде чем
вызывать любой из них, поэтому отсутствующий пакет — это тишина, а не неудавшийся опрос.
| Метрика | Значение | Метки |
|---|---|---|
dumbmonit_abb_tasks | Число задач. | |
dumbmonit_abb_task_last_status | Последний запуск: 1 успех, 0 сбой, 2 выполняется, -1 неизвестно (не запускалась, отменена, нет копии). Частичный успех считается сбоем: хотя бы одно устройство не было скопировано. | task, task_id, source_type, result |
dumbmonit_abb_task_last_success_seconds | Возраст последнего успешного запуска копирования, в секундах. Отсутствует для задачи, которая ни разу не завершилась успешно. | task, task_id, source_type |
dumbmonit_abb_task_enabled | 1, если у задачи есть расписание и она не приостановлена, 0, если она запускается только вручную. | task, task_id, source_type |
dumbmonit_abb_task_device_count | Устройства, привязанные к задаче. | task, task_id, source_type |
task — имя задачи, как оно показано в ABB; source_type — pc, vm,
physical_server, file_server или nas; result — необработанный результат
последнего запуска (success, partial_success, fail, cancel, no_backup,
running, none).
Возраст берётся из истории задачи, отфильтрованной по успешным запускам копирования, а не из «последнего результата» задачи: после ночной очистки версий последний результат — это очистка, а не копирование. Это стоит одного запроса на задачу, с ограничением в двадцать задач.
Встроенные правила для задач:
| Правило | Серьёзность | Срабатывает, когда |
|---|---|---|
| Active Backup task failed | warning | Последний запуск завершился сбоем или частичным успехом в течение 10 минут. Уведомление называет задачу. |
| Active Backup too old | advisory | Нет успешного запуска более двух дней. |
| Active Backup task disabled | info | У задачи нет расписания или её непрерывное копирование приостановлено, в течение часа. |
Устройства и их ритм
Заголовок раздела «Устройства и их ритм»Правило на уровне задачи верно для сервера и неверно для ноутбука: люди не оставляют ноутбуки включёнными, а «нет копии 24 часа» — это утро понедельника для каждого офисного ПК. Поэтому DumbMonit следит за ABB ещё и по каждому устройству, сообразуясь с собственными привычками устройства.
При каждом опросе сборщик читает запуски по устройствам, которые хранит ABB
(SYNO.ActiveBackup.Overview list_device_transfer_size, один вызов для всех
устройств, только то, что изменилось с предыдущего опроса), и копирует их в
собственную базу данных — не более девяноста дней на NAS, — чтобы модель переживала
перезапуск без повторного чтения месяца истории. Затем для каждого устройства он смотрит
на последние тридцать дней.
| Метрика | Значение | Метки |
|---|---|---|
dumbmonit_abb_device_state | 0 ok, 1 idle, 2 learning, 3 running, 4 overdue, 5 failing, 6 never. | device, device_id, task, task_id, state |
dumbmonit_abb_device_overdue | 1, пока устройство просрочено, иначе 0. | device, device_id, task, task_id |
dumbmonit_abb_device_consecutive_failures | Неудачные попытки подряд после последнего успеха (отменённый запуск не считается ни тем, ни другим). | те же |
dumbmonit_abb_device_last_success_seconds | Возраст последнего успешного запуска этого устройства. Отсутствует, если успеха не было. | те же |
dumbmonit_abb_device_typical_interval_seconds | Медианный промежуток между двумя успехами, без выходных дней. Отсутствует, пока идёт обучение. | те же |
Как судят о «просрочке»
Заголовок раздела «Как судят о «просрочке»»Простыми словами, для каждого устройства:
- В какие дни оно включено? Будний день, в который устройство предприняло хотя бы одну попытку копирования за последние тридцать дней — успешную или нет; сбой доказывает, что машина была включена так же, как и успех, — это активный день. Когда накоплено как минимум две недели истории, день недели вообще без попыток — это выходной день. Ноутбук, используемый с понедельника по пятницу, получает субботу и воскресенье как выходные; у сервера их нет.
- Как часто оно копируется? Промежутки между последовательными успехами собираются в активном времени: полные выходные дни внутри промежутка не учитываются (с вечера пятницы до вечера понедельника — это один день активного времени, а не три). Их медиана — типичный интервал устройства; их 90-й процентиль показывает, как выглядит «медленная неделя».
- Сколько ему позволено? Допуск равен
max(1.5 × p90 gap, 2 × typical interval, 36 h). Настольный ПК с ночным копированием получает 48 ч; машина, копируемая раз в три дня, — около шести; меньше полутора суток не получает никто. Пока существует менее двух пригодных промежутков (устройство добавлено на этой неделе), допуск составляет 72 ч — достаточно, чтобы пережить выходные без ложной тревоги. - Сколько активного времени прошло? Время с последнего успеха за вычетом полных выходных дней внутри него. Ноутбук, скопированный в последний раз в пятницу в 20:00, имеет в понедельник в 08:00 за плечами двенадцать часов активного времени, а не шестьдесят.
- Вердикт, в таком порядке: running (копирование выполняется); failing (последние две или больше попыток завершились сбоем — частичный успех — это сбой, отменённый запуск — ни то, ни другое); never (успехов в записях нет); overdue (активное время превышает допуск); idle (сегодня один из его выходных дней: выключено, как обычно); learning (ритм пока неизвестен); ok.
dumbmonit_abb_device_overdue поднимает только overdue, и только failing питает
правило сбоев. Простаивающий ноутбук в воскресенье ничего не поднимает; тот же ноутбук,
всё ещё молчащий во вторник вечером, поднимает.
Дни и часы выражаются в местном времени сервера (TZ контейнера), в котором
живёт человек, читающий страницу. Страница монитора
показывает для каждого устройства: состояние словом, последний успех и последний результат, ритм
словами («weekdays, around 20:00», «every ~3 days, on Mon, Wed, Fri,
around 03:00», «still learning (2 runs in 30 days)») и тридцатидневную ленту —
бирюзовая для дня с успехом, красная для сбоя, янтарная для отменённого запуска,
серая, если запусков не было.
Встроенные правила для устройств:
| Правило | Серьёзность | Срабатывает, когда |
|---|---|---|
| Active Backup device overdue | advisory | dumbmonit_abb_device_overdue > 0 в течение 30 минут. |
| Active Backup device failing | warning | Две или больше неудачных попыток подряд, в течение 10 минут. |
Synology Drive
Заголовок раздела «Synology Drive»DSM не документирует веб-API Synology Drive. DumbMonit читает три вызова,
имя и форма которых взяты из библиотеки сообщества N4S4/synology-api,
вызывающей их с тех же экранов, что и консоль администратора Synology Drive,
и следует тому же правилу, что и для Active Backup for Business: API, который NAS
не объявляет, — это не установленный пакет, а не сбой.
| Метрика | Значение | Метки |
|---|---|---|
dumbmonit_synology_drive_up | 1, пока служба отвечает на get_status. Отсутствует, если пакет не установлен. | |
dumbmonit_synology_drive_team_folders | Число командных папок. | |
dumbmonit_synology_drive_team_folder_info | Значение 1 на командную папку (не более 32). | name |
dumbmonit_synology_drive_connections | Число активных подключений (настольные и мобильные клиенты, синхронизирующиеся в данный момент). |
Параметр drive (включён по умолчанию) отключает всё семейство.
Synology Photos
Заголовок раздела «Synology Photos»Synology Photos поставляется с хорошо документированным API просмотра, но ни Synology,
ни библиотеки сообщества не предоставляют общий для администратора список мобильных устройств
резервного копирования или их последней копии — мобильное приложение показывает собственное состояние
копирования локально, и ничто не централизует его на стороне NAS через API. Поэтому DumbMonit
лишь сообщает, что пакет установлен: dumbmonit_synology_photos_installed
(значение 1), считываемое из каталога API без каких-либо дополнительных запросов к
NAS — того же каталога, на который SYNO.API.Info уже отвечает для каждого другого
пакета. Параметр photos (включён по умолчанию) отключает его.
Что подготовить на NAS
Заголовок раздела «Что подготовить на NAS»Приведённые ниже шаги совпадают с теми, что показывает примечание рядом с формой. Принцип: учётная запись, выделенная для мониторинга, лишённая всего, что не нужно API DSM, — никогда не та, под которой вы входите.
-
В DSM откройте Control Panel → User & Group → User и нажмите Create. Назовите учётную запись так и задайте ей длинный пароль, нигде больше не используемый.
dumbmonit -
Join groups: отметьте administrators. DSM отвечает на вызовы хранилища, томов и SMART дисков только этой группе; без неё NAS выглядит живым, но ничего не говорит о своих дисках. Следующие два шага забирают обратно всё остальное.
-
Assign shared folder permissions: No access для каждой общей папки. Assign application permissions: запретить всё, кроме DSM, плюс Active Backup for Business, если вы хотите читать его задачи. Страницы квот и ограничения скорости пропустите.
-
Двухэтапная проверка должна оставаться выключенной для этой учётной записи: ни один автоматический монитор не может ввести одноразовый код. Если Control Panel → Security → Account требует её, ограничьте правило группами, в которых этот пользователь не состоит, или сделайте для него исключение.
-
Пакеты резервного копирования читаются, только пока они установлены и запущены: DSM вообще не объявляет API остановленного пакета, поэтому задачи Hyper Backup тогда затихают, а не завершаются сбоем, а у NAS, который лишь принимает копии (Hyper Backup Vault), нет собственных задач для показа. Active Backup for Business к тому же отвечает только учётной записи, которой разрешено им пользоваться (Active Backup for Business → Settings → Privileges); иначе снимите отметку с параметра DumbMonit «Следить за Active Backup for Business», чтобы перестать запрашивать.
-
В DumbMonit введите адрес NAS (HTTPS, порт 5001 по умолчанию), затем имя пользователя и пароль этой учётной записи.
Документация производителя: Create a user in DSM.
Учётные данные
Заголовок раздела «Учётные данные»| Учётные данные | Поля |
|---|---|
| Учётная запись DSM | User name: созданная выше учётная запись. Password: её пароль. Двухэтапная проверка должна быть выключена для этой учётной записи: ни один автоматический монитор не может ввести одноразовый код. |
Адрес: 192.168.1.30, nas.lan или nas.lan:5001. Без порта используется 5001
по HTTPS и 5000 по HTTP.
Параметры
Заголовок раздела «Параметры»| Ключ | Название | По умолчанию | Справка |
|---|---|---|---|
scheme | Протокол | https | HTTPS подходит для NAS «из коробки». HTTP — только если DSM слушает лишь открытым текстом. Варианты: https, http. |
port | Порт DSM | (пусто) | Используется, если адрес не содержит порта. Пусто: 5001 по HTTPS, 5000 по HTTP. |
insecure_tls | Принимать непроверяемый сертификат | false | NAS по умолчанию поставляется с самоподписанным сертификатом: включите это, если соединение отклоняется по этой причине. |
request_timeout_seconds | Тайм-аут на запрос (секунды) | 15 | Время, отводимое на каждый вызов API, от 1 до 120. Инвентаризация хранилища может разбудить спящие диски. |
abb | Следить за Active Backup for Business | true | Читает задачи Active Backup for Business. Нужен установленный пакет и учётная запись, которой разрешено им пользоваться; NAS без пакета просто пропускается. |
drive | Следить за Synology Drive | true | Читает, отвечает ли служба Synology Drive, её командные папки и число активных подключений. NAS без пакета просто пропускается. |
photos | Следить за Synology Photos | true | Показывает, установлен ли пакет Synology Photos, без дополнительных запросов к NAS. Synology не предоставляет список мобильных устройств резервного копирования ни через какой API. |
Частые ошибки
Заголовок раздела «Частые ошибки»| Симптом | Вероятная причина |
|---|---|
| Ошибка аутентификации | Неверный пароль или для этой учётной записи требуется двухэтапная проверка. DSM отвечает HTTP 200 даже при сбое; значение имеет код ошибки в теле JSON, и DumbMonit его читает. |
| Ошибка сертификата | Самоподписанный сертификат: включите insecure_tls. Это ошибка конфигурации, а не «недоступно»: NAS, который отвечает, не показывается как выключенный. |
| Нет метрик дисков или томов | Учётная запись не входит в группу administrators (см. примечание выше). |
Нет метрик dumbmonit_abb_*, scrape_errors равен 1 | Учётная запись не может использовать Active Backup for Business: делегируйте ей пакет или отключите параметр abb. Если пакет не установлен, нет ни ошибки, ни метрик. |
| Метрики задач есть, а строк устройств на странице нет | NAS не объявляет SYNO.ActiveBackup.Overview (старый ABB) либо монитор опрашивается через агент-ретранслятор, который хранит историю в памяти на своей стороне: метрики есть, календаря нет. |
| Ноутбук показывается как «Overdue» на следующий день после добавления | Менее трёх успехов: модель ещё обучается и допускает 72 часа между копиями; она устанавливается, когда известны привычки за две недели. |
| Диски раскручиваются при каждом опросе | Инвентаризация хранилища будит спящие диски. Увеличьте интервал проверки. |