Мониторинг диска на сервере: как настроить без ложных тревог
Свободное место — не единственный показатель здоровья диска: закончиться могут inode, а рост задержек записи не заметен в `df`. Разбираем, что проверять на Linux-сервере, чем собирать метрики и как настроить оповещения, которые успеют сработать до сбоя.

Следите не только за свободными гигабайтами
Мониторинг Linux-сервера по одному порогу «диск заполнен на 90%» пропускает как минимум два сценария: закончившиеся inode и накопитель, который ещё принимает записи, но уже отвечает медленно. Для рабочего мониторинга нужны три слоя: заполнение файловых систем, состояние устройства и задержки ввода-вывода. Конкретные пороги зависят от темпа записи и того, сколько времени требуется вашей команде на реакцию.
Рекомендации ниже подходят для современных Linux-серверов; примеры команд рассчитаны на распространённые утилиты GNU coreutils, util-linux и smartmontools. Имена дисков, доступность SMART и состав метрик зависят от дистрибутива, виртуализации и оборудования.
Сначала выясните, что именно нужно контролировать
Один физический диск может содержать несколько разделов, а файловая система — быть собрана поверх LVM, RAID или сетевого хранилища. Поэтому начинайте не с графика, а с инвентаризации:
lsblk -fпоказывает устройства, разделы, типы файловых систем и точки монтирования.df -hTпоказывает занятое место и тип файловой системы.df -iпоказывает занятость inode — записей, необходимых для файлов и каталогов.findmntпомогает проверить, какие файловые системы смонтированы и куда.
Сопоставьте вывод с тем, где лежат данные приложения, журналы, временные файлы и резервные копии. Системный раздел может быть почти пустым, пока отдельный том с базой данных заполняется.
Важно: считайте свободное место по каждой точке монтирования, а не по всему серверу сразу. Временная файловая система в памяти и сетевой том требуют других ожиданий, чем локальный диск.
Выберите способ сбора метрик
Для разовой проверки достаточно системных команд. Для круглосуточного наблюдения нужен сборщик метрик и система оповещений: ручная проверка не сообщит, что диск заполнится ночью. На Linux часто используют Prometheus Node Exporter и Prometheus-совместимый сборщик; актуальные параметры запуска и набор доступных метрик сверяйте с документацией конкретной версии.
| Подход | Что показывает | Цена и ограничения |
|---|---|---|
| Периодические команды | Заполнение, inode, список устройств | Подходит для диагностики, но не даёт истории и сам по себе не отправляет оповещения |
| Сборщик метрик, например Node Exporter | Заполнение файловых систем и статистику устройств, включая операции чтения и записи | Нужны настройка сбора, хранение метрик и правила уведомлений; показатели не заменяют проверку SMART |
| SMART-диагностика через smartmontools | Доступные устройству сведения о здоровье и результатах самотестов | Показания зависят от модели и контроллера; в облачной виртуальной машине SMART может быть недоступен |
В Prometheus-совместимом мониторинге полезны метрики Node Exporter вроде node_filesystem_avail_bytes и node_filesystem_files_free, а также счётчики операций и времени работы диска из семейства node_disk_*. Перед настройкой убедитесь, что нужная файловая система не исключена фильтрами сборщика и что вы понимаете, какие устройства скрывает виртуализация.
Хороший сигнал тревоги отвечает не только на вопрос «сколько осталось», но и на вопрос «успеем ли мы освободить или расширить том».
Настройте оповещения по риску, а не по красивому проценту
Универсального порога заполнения нет. Для тома с редкими архивами и для базы, которая быстро растёт, одинаковый процент означает разный риск. Оценивайте одновременно долю занятого места, остаток в байтах и скорость его изменения. Если система пишет 20 ГБ в сутки, остаток в 40 ГБ — это примерно два дня запаса, даже если на диаграмме пока не достигнут условный порог.
- Предупреждение: отправляйте его, когда остаётся время на плановое действие — очистку, расширение тома или перенос данных. Проверка: уведомление приходит в тестовый канал при срабатывании правила.
- Критический уровень: привяжите его к запасу, при котором приложение ещё может работать, пока дежурный реагирует. Для записи оценивайте свободное место в байтах, а не только процент.
- Отдельное правило для inode: следите за долей свободных inode на файловых системах с большим количеством мелких файлов. Проверка: правило срабатывает независимо от заполнения в гигабайтах.
- Контроль отсутствия данных: поднимайте тревогу, если метрики пропали. Иначе остановившийся агент будет выглядеть как сервер без проблем.
Для расчёта запаса измерьте скорость изменения свободного места за типичный рабочий цикл, включая пики и ночные задания. Затем сравните время до заполнения со временем обнаружения, согласования и выполнения работ. Если эти сроки неизвестны, начните с графика свободного места и нескольких недель наблюдений, а не с придуманного универсального процента.
Разделите заполнение, здоровье и производительность
Заполнение не всегда видно в df
Если процесс удалил файл, но продолжает держать его открытым, место не освободится до закрытия дескриптора. На Linux такие файлы можно искать командой lsof +L1, если установлен пакет lsof и у пользователя достаточно прав. Это полезная проверка, когда df показывает занятое место, а обычный поиск крупных файлов не объясняет причину.
Не удаляйте файлы журналов вручную только потому, что они большие: приложение может продолжать писать в уже удалённый файл. Сначала выясните, какой процесс его держит, и используйте штатную ротацию журналов или процедуру обслуживания приложения.
SMART не равен гарантии исправности
Для локального SATA- или NVMe-накопителя smartmontools может показать доступные атрибуты и результаты самотестирования. Команда smartctl -a /dev/sdX подходит как точка входа для SATA-устройства, но имя устройства и способ доступа к SMART у NVMe, RAID-контроллера и виртуального диска могут отличаться. Не копируйте имя из примера буквально: сначала найдите устройство через lsblk и сверьтесь с документацией установленной версии smartctl.
В облаке гостевая система часто видит виртуальное устройство, а не физический накопитель. Тогда здоровье носителя должен контролировать провайдер; со своей стороны вы следите за заполнением тома, задержками и ошибками приложения.
Высокая загрузка устройства не всегда означает поломку
Метрики дисковых операций и времени занятости устройства помогают заметить изменение нагрузки, но сами по себе не дают универсального ответа «диск медленный». Сопоставляйте их с задержками приложения, очередью операций и характером нагрузки. Пики при резервном копировании могут быть ожидаемыми, а постоянные задержки записи в рабочее время — причиной расследования.
Что проверить, если тревога не сработала
- Файловая система не попала в сбор: сравните вывод
findmntс метриками и проверьте фильтры сборщика. - Заполнены inode, а тревоги нет: убедитесь, что собирается показатель свободных inode, а не только свободных байтов.
- Осталось мало места, но процент кажется безопасным: добавьте проверку остатка в байтах и оценку времени до заполнения.
- SMART-команда сообщает об ошибке доступа: проверьте права, тип устройства и поддержку передачи SMART через контроллер или гипервизор. Не считайте отсутствие данных признаком исправности.
- Метрики исчезли вместе с сервером: настройте отдельную проверку доступности агента и сервера сбора.
Inode1 — учётная запись файла или каталога в файловой системе. Если inode закончились, создать новый файл может не получиться, даже когда свободные гигабайты ещё есть.
Что делать дальше
Составьте список точек монтирования и назначьте каждой владельца: кто отвечает за очистку, расширение и проверку резервных копий. Затем соберите графики свободного места, inode и дисковых операций, проверьте доставку тестового оповещения и измерьте реальную скорость заполнения. Следующий шаг — привязать пороги к времени реакции вашей команды, а не переносить чужие проценты на свой сервер.
Аналитик звонков: Разбор записи звонка по этапам сделки: где сорвалось, что упущено, три исправляемые рекомендации с цитатами.
Спросить за 90 ₽Источники: Prometheus Node Exporter — репозиторий проекта и документация, smartmontools — официальный сайт проекта
Частые вопросы
Достаточно ли проверять только процент заполнения диска?
Какой порог заполнения поставить для тревоги?
Почему df показывает занятое место, а крупных файлов не видно?
Можно ли проверить SMART на сервере в облаке?
Что делать, если мониторинг не показывает файловую систему?
Какие показатели важнее для базы данных?
Материал носит информационный характер и подготовлен редакцией «Агентуры». Он не является офертой, рекламой или индивидуальной консультацией. Упомянутые продукты, компании и торговые знаки принадлежат их правообладателям. Перед принятием решений, влекущих юридические или финансовые последствия, обратитесь к профильному специалисту.