Перейти к содержимому

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_healthmodel, 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_secondinterface
Томаvolume_status, volume_total/used/available_bytes, volume_used_percent, volume_used_warning_percent, volume_used_critical_percentvolume, 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_infodisk, name; у disk_info: model, serial, vendor, firmware, type, ssd
Hyper Backupbackup_tasks, backup_running, backup_last_result, backup_last_run_age_seconds, backup_last_success_age_seconds, backup_next_run_in_secondsпо задаче
Synology Drivedrive_up, drive_team_folders, drive_team_folder_info, drive_connections (см. ниже)drive_team_folder_info: name
Synology Photosphotos_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: обзор, тома, диски и Active Backup

Монитор Synology получает собственную панель над графиками:

  • Обзор — CPU, память (занято из общего), температура и время работы, с собственным вердиктом DSM о хранилище в виде плашки (исправно, внимание, сбой, нужен ремонт);
  • Тома — одна строка на том: полоса использования, занято из общего, тип RAID и файловая система, состояние тома словом DSM (normal, degraded, crashed, repairing…);
  • Пулы хранения — одна строка на пул: тип RAID, состояние пула словом DSM, сколько его дисков DSM считает отказавшими и какая часть его уже отдана томам. Здесь живёт избыточность: RAID 5, потерявший диск, оставляет том над ним в состоянии normal, пока идёт перестроение, так что строка тома ничего не говорит, а эта говорит всё. Пул, полностью распределённый между томами, — нормальное конечное состояние, а не предупреждение, поэтому эта цифра — предложение, а не цветной индикатор;
  • SSD-кэш — одна строка на кэш: его тип RAID, состояние и размер. Раздел отсутствует на NAS без кэша. load_info DSM не содержит режима кэша или доли попаданий, поэтому ни то, ни другое не показывается;
  • Диски — одна строка на отсек: модель, размер, температура, вердикт SMART, вердикт DSM о плохих секторах, счётчик нечитаемых секторов и, для SSD, оставшийся ресурс в виде небольшой полосы;
  • Active Backup for Business — задачи, затем каждое устройство с копиями с его ритмом и тридцатидневной лентой (см. ниже).

Всё берётся из того, что сохранил опрос: открытие страницы никогда не обращается к NAS.

ПравилоСерьёзностьСрабатывает, когда
Synology disk SMART warningadvisoryDSM больше не сообщает состояние SMART диска как normal в течение 15 минут.
Synology disk failedwarningDSM сообщает, что диск отказал или вышел из строя, в течение 5 минут.
Synology disk bad sectorswarningЧисло плохих секторов превышает порог, заданный в DSM, в течение 15 минут.
Synology disk bad sectors growingadvisoryЗа последние 24 часа появились новые нечитаемые секторы (delta(…disk_unc_count[24h]) > 0).
Synology SSD wearing outadvisoryУ SSD осталось менее 10 % номинального ресурса в течение часа.
Synology volume degradedwarningТом деградировал или отказал, в течение 5 минут.
Synology storage pool degradedwarningПул хранения или SSD-кэш деградировал или отказал, в течение 5 минут. RAID 5, потерявший диск, проявляется здесь первым: DSM оставляет том над ним в состоянии normal, пока идёт перестроение.
Synology volume almost fulladvisoryТом заполнен на 90 % или более в течение 15 минут.
Synology temperature highadvisoryДиск выше 55 °C или DSM поднял предупреждение о температуре, в течение 15 минут.
Synology memory highadvisoryИспользование памяти выше 95 % в течение 15 минут.

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_enabled1, если у задачи есть расписание и она не приостановлена, 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 failedwarningПоследний запуск завершился сбоем или частичным успехом в течение 10 минут. Уведомление называет задачу.
Active Backup too oldadvisoryНет успешного запуска более двух дней.
Active Backup task disabledinfoУ задачи нет расписания или её непрерывное копирование приостановлено, в течение часа.

Правило на уровне задачи верно для сервера и неверно для ноутбука: люди не оставляют ноутбуки включёнными, а «нет копии 24 часа» — это утро понедельника для каждого офисного ПК. Поэтому DumbMonit следит за ABB ещё и по каждому устройству, сообразуясь с собственными привычками устройства.

При каждом опросе сборщик читает запуски по устройствам, которые хранит ABB (SYNO.ActiveBackup.Overview list_device_transfer_size, один вызов для всех устройств, только то, что изменилось с предыдущего опроса), и копирует их в собственную базу данных — не более девяноста дней на NAS, — чтобы модель переживала перезапуск без повторного чтения месяца истории. Затем для каждого устройства он смотрит на последние тридцать дней.

МетрикаЗначениеМетки
dumbmonit_abb_device_state0 ok, 1 idle, 2 learning, 3 running, 4 overdue, 5 failing, 6 never.device, device_id, task, task_id, state
dumbmonit_abb_device_overdue1, пока устройство просрочено, иначе 0.device, device_id, task, task_id
dumbmonit_abb_device_consecutive_failuresНеудачные попытки подряд после последнего успеха (отменённый запуск не считается ни тем, ни другим).те же
dumbmonit_abb_device_last_success_secondsВозраст последнего успешного запуска этого устройства. Отсутствует, если успеха не было.те же
dumbmonit_abb_device_typical_interval_secondsМедианный промежуток между двумя успехами, без выходных дней. Отсутствует, пока идёт обучение.те же

Простыми словами, для каждого устройства:

  1. В какие дни оно включено? Будний день, в который устройство предприняло хотя бы одну попытку копирования за последние тридцать дней — успешную или нет; сбой доказывает, что машина была включена так же, как и успех, — это активный день. Когда накоплено как минимум две недели истории, день недели вообще без попыток — это выходной день. Ноутбук, используемый с понедельника по пятницу, получает субботу и воскресенье как выходные; у сервера их нет.
  2. Как часто оно копируется? Промежутки между последовательными успехами собираются в активном времени: полные выходные дни внутри промежутка не учитываются (с вечера пятницы до вечера понедельника — это один день активного времени, а не три). Их медиана — типичный интервал устройства; их 90-й процентиль показывает, как выглядит «медленная неделя».
  3. Сколько ему позволено? Допуск равен max(1.5 × p90 gap, 2 × typical interval, 36 h). Настольный ПК с ночным копированием получает 48 ч; машина, копируемая раз в три дня, — около шести; меньше полутора суток не получает никто. Пока существует менее двух пригодных промежутков (устройство добавлено на этой неделе), допуск составляет 72 ч — достаточно, чтобы пережить выходные без ложной тревоги.
  4. Сколько активного времени прошло? Время с последнего успеха за вычетом полных выходных дней внутри него. Ноутбук, скопированный в последний раз в пятницу в 20:00, имеет в понедельник в 08:00 за плечами двенадцать часов активного времени, а не шестьдесят.
  5. Вердикт, в таком порядке: 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 overdueadvisorydumbmonit_abb_device_overdue > 0 в течение 30 минут.
Active Backup device failingwarningДве или больше неудачных попыток подряд, в течение 10 минут.

DSM не документирует веб-API Synology Drive. DumbMonit читает три вызова, имя и форма которых взяты из библиотеки сообщества N4S4/synology-api, вызывающей их с тех же экранов, что и консоль администратора Synology Drive, и следует тому же правилу, что и для Active Backup for Business: API, который NAS не объявляет, — это не установленный пакет, а не сбой.

МетрикаЗначениеМетки
dumbmonit_synology_drive_up1, пока служба отвечает на get_status. Отсутствует, если пакет не установлен.
dumbmonit_synology_drive_team_foldersЧисло командных папок.
dumbmonit_synology_drive_team_folder_infoЗначение 1 на командную папку (не более 32).name
dumbmonit_synology_drive_connectionsЧисло активных подключений (настольные и мобильные клиенты, синхронизирующиеся в данный момент).

Параметр drive (включён по умолчанию) отключает всё семейство.

Synology Photos поставляется с хорошо документированным API просмотра, но ни Synology, ни библиотеки сообщества не предоставляют общий для администратора список мобильных устройств резервного копирования или их последней копии — мобильное приложение показывает собственное состояние копирования локально, и ничто не централизует его на стороне NAS через API. Поэтому DumbMonit лишь сообщает, что пакет установлен: dumbmonit_synology_photos_installed (значение 1), считываемое из каталога API без каких-либо дополнительных запросов к NAS — того же каталога, на который SYNO.API.Info уже отвечает для каждого другого пакета. Параметр photos (включён по умолчанию) отключает его.

Приведённые ниже шаги совпадают с теми, что показывает примечание рядом с формой. Принцип: учётная запись, выделенная для мониторинга, лишённая всего, что не нужно API DSM, — никогда не та, под которой вы входите.

  1. В DSM откройте Control Panel → User & Group → User и нажмите Create. Назовите учётную запись так и задайте ей длинный пароль, нигде больше не используемый.

    dumbmonit
  2. Join groups: отметьте administrators. DSM отвечает на вызовы хранилища, томов и SMART дисков только этой группе; без неё NAS выглядит живым, но ничего не говорит о своих дисках. Следующие два шага забирают обратно всё остальное.

  3. Assign shared folder permissions: No access для каждой общей папки. Assign application permissions: запретить всё, кроме DSM, плюс Active Backup for Business, если вы хотите читать его задачи. Страницы квот и ограничения скорости пропустите.

  4. Двухэтапная проверка должна оставаться выключенной для этой учётной записи: ни один автоматический монитор не может ввести одноразовый код. Если Control Panel → Security → Account требует её, ограничьте правило группами, в которых этот пользователь не состоит, или сделайте для него исключение.

  5. Пакеты резервного копирования читаются, только пока они установлены и запущены: DSM вообще не объявляет API остановленного пакета, поэтому задачи Hyper Backup тогда затихают, а не завершаются сбоем, а у NAS, который лишь принимает копии (Hyper Backup Vault), нет собственных задач для показа. Active Backup for Business к тому же отвечает только учётной записи, которой разрешено им пользоваться (Active Backup for Business → Settings → Privileges); иначе снимите отметку с параметра DumbMonit «Следить за Active Backup for Business», чтобы перестать запрашивать.

  6. В DumbMonit введите адрес NAS (HTTPS, порт 5001 по умолчанию), затем имя пользователя и пароль этой учётной записи.

Документация производителя: Create a user in DSM.

Учётные данныеПоля
Учётная запись DSMUser name: созданная выше учётная запись. Password: её пароль. Двухэтапная проверка должна быть выключена для этой учётной записи: ни один автоматический монитор не может ввести одноразовый код.

Адрес: 192.168.1.30, nas.lan или nas.lan:5001. Без порта используется 5001 по HTTPS и 5000 по HTTP.

КлючНазваниеПо умолчаниюСправка
schemeПротоколhttpsHTTPS подходит для NAS «из коробки». HTTP — только если DSM слушает лишь открытым текстом. Варианты: https, http.
portПорт DSM(пусто)Используется, если адрес не содержит порта. Пусто: 5001 по HTTPS, 5000 по HTTP.
insecure_tlsПринимать непроверяемый сертификатfalseNAS по умолчанию поставляется с самоподписанным сертификатом: включите это, если соединение отклоняется по этой причине.
request_timeout_secondsТайм-аут на запрос (секунды)15Время, отводимое на каждый вызов API, от 1 до 120. Инвентаризация хранилища может разбудить спящие диски.
abbСледить за Active Backup for BusinesstrueЧитает задачи Active Backup for Business. Нужен установленный пакет и учётная запись, которой разрешено им пользоваться; NAS без пакета просто пропускается.
driveСледить за Synology DrivetrueЧитает, отвечает ли служба Synology Drive, её командные папки и число активных подключений. NAS без пакета просто пропускается.
photosСледить за Synology PhotostrueПоказывает, установлен ли пакет 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 часа между копиями; она устанавливается, когда известны привычки за две недели.
Диски раскручиваются при каждом опросеИнвентаризация хранилища будит спящие диски. Увеличьте интервал проверки.