Мониторинг системы в Linux: инструменты для отслеживания ресурсов и состояния

Мониторинг системы — это неотъемлемая часть администрирования Linux. С его помощью вы можете вовремя заметить нехватку памяти, перегрузку процессора, проблемы с дисками или сетью, а также предотвратить сбои. В этом руководстве мы рассмотрим наиболее полезные инструменты — от простых консольных утилит до мощных распределённых систем.

Зачем нужен мониторинг?

  • Обнаружение узких мест: анализ использования CPU, RAM, дисковых операций.

  • Отслеживание производительности: выявление приложений, потребляющих слишком много ресурсов.

  • Диагностика проблем: поиск причин медленной работы, зависаний.

  • Планирование апгрейда: понимание, когда пора добавить оперативной памяти или сменить диск на SSD.

  • Безопасность: обнаружение подозрительной активности (например, майнеров).

Часть 1: Консольные утилиты реального времени

Эти инструменты работают прямо в терминале и идеально подходят для быстрой диагностики.

1. top — классика

Утилита top есть в любой системе Linux. Показывает процессы, отсортированные по использованию CPU.
Горячие клавиши: Shift+P — сортировка по CPU, Shift+M — по памяти, q — выход.

2. htop — улучшенный top

htop — более удобный и красочный аналог top. Поддерживает прокрутку, мышь и управление процессами (можно завершать процессы без PID).
Установка: sudo apt install htop (Ubuntu/Debian), sudo dnf install htop (Fedora).
Особенности: цветные метрики, древовидное отображение процессов, возможность просмотра отдельных ядер CPU.

Интерфейс утилиты htop, показывающий загрузку процессора, памяти и список процессов
htop — мощная альтернатива top с цветным интерфейсом и удобным управлением

3. iotop — мониторинг дискового ввода-вывода

iotop показывает, какие процессы больше всего читают и пишут на диск. Особенно полезно при подозрении на медленную работу диска.
Установка: sudo apt install iotop
Запуск: sudo iotop (требуются права root).

4. nmon — множество метрик в одном окне

nmon (Nigel’s Monitor) выводит в реальном времени данные о CPU, памяти, дисках, сети, процессах и даже температуре. Можно переключать режимы клавишами c (CPU), m (memory), d (disks) и т.д.
Установка: sudo apt install nmon

5. glances — универсальный мониторинг

glances собирает практически все данные системы (CPU, память, диски, сеть, температуру, процессы) в едином интерфейсе. Поддерживает работу в клиент-серверном режиме, интеграцию с InfluxDB и Grafana.
Установка: sudo apt install glances

6. iftop и nethogs — сетевой мониторинг

  • iftop показывает трафик между хостами (в реальном времени).
    Установка: sudo apt install iftop

  • nethogs группирует трафик по процессам, показывая, какое приложение «съедает» интернет.
    Установка: sudo apt install nethogs

Часть 2: Графические инструменты для рабочего стола

Для тех, кто предпочитает GUI.

GNOME System Monitor

Встроенный монитор системных ресурсов в GNOME. Показывает загрузку CPU, памяти, дисков, сети и список процессов.
Запуск: через меню «Системный монитор» или gnome-system-monitor.

KSysGuard (KDE System Guard)

Аналог для KDE Plasma. Позволяет создавать пользовательские графики и виджеты.

Bashtop / Btop

Современная консольная утилита с шикарной графикой, показывающая графики CPU, дисков, сети и даже температуру.
Установка: sudo apt install bashtop (или btop — более новая версия).

Окно btop с графиками загрузки CPU, памяти, дисков и сети в терминале Linux
Btop — современный консольный мониторинг с впечатляющей визуализацией

Часть 3: Мощные системы мониторинга для серверов

Для постоянного наблюдения за несколькими серверами используют специализированные решения.

Netdata — «живой» мониторинг в реальном времени

Netdata — это агент, который собирает тысячи метрик и отображает их в веб-интерфейсе с потрясающей детализацией. Установка одной командой:

bash <(curl -Ss https://my-netdata.io/kickstart.sh)

После установки откройте http://localhost:19999. Netdata показывает всё: от загрузки процессора до состояния nginx, MySQL и даже температуры дисков.

Prometheus + Grafana — промышленный стандарт

Prometheus собирает метрики из разных источников (экспортеров), а Grafana визуализирует их в виде настраиваемых дашбордов. Эта связка используется в крупных компаниях.

Базовые шаги:

  1. Установить Prometheus, Node Exporter (для метрик системы).

  2. Установить Grafana.

  3. Настроить источники данных и импортировать готовый дашборд (например, «Node Exporter Full»).

Веб-интерфейс Netdata с графиками загрузки системы в реальном времени
Netdata предоставляет детализированный мониторинг в веб-браузере без дополнительной настройки

Часть 4: Мониторинг дисков, температуры и аппаратных данных

  • smartctl (из пакета smartmontools) — проверка состояния дисков (S.M.A.R.T.).

  • sensors (lm-sensors) — температура процессора, материнской платы, вентиляторы.

  • nvtop — мониторинг использования GPU NVIDIA/AMD.

Рекомендации по выбору инструмента

Сценарий Рекомендуемый инструмент
Быстрая проверка ресурсов на локальной машине htop
Анализ дисковых операций iotop
Просмотр сетевых соединений и трафика iftop, nethogs
Мониторинг ноутбука или десктопа (GUI) GNOME System Monitor / KSysGuard
Сервер или несколько серверов (локально) Netdata
Серверная ферма, требования к масштабируемости Prometheus + Grafana

FAQ — Часто задаваемые вопросы

Как посмотреть загрузку каждого ядра процессора?

В htop нажмите F2 → настройки → опция «Display CPU usage as bar» → «Show each CPU individually». Или нажмите F2, выберите вкладку «Display» и включите «Show each CPU in a separate graph».

Как узнать, что замедляет систему — диск или процессор?

Запустите iotop в одном окне и htop в другом. Если дисковая очередь (IO wait) высокая, проблема в диске. Если загрузка CPU близка к 100% — в процессоре.

Как мониторить температуру процессора?

Установите lm-sensors и выполните sensors-detect (один раз). После этого команда sensors покажет температуру.

Что делать, если памяти мало, а Swap не используется?

Проверьте параметр vm.swappiness — по умолчанию 60. Можно уменьшить, чтобы система реже обращалась к swap, или увеличить, если swap нужен. Временно: sudo sysctl vm.swappiness=10. Постоянно: добавить в /etc/sysctl.conf строку vm.swappiness=10.

Можно ли объединить все метрики на одном дашборде?

Да, например, Netdata уже собирает всё в одном интерфейсе. В Grafana можно создать дашборд с метриками из Prometheus, InfluxDB и других источников.

Какие инструменты лучше для удалённого мониторинга?

Netdata имеет встроенную возможность отправки метрик на центральный сервер. Prometheus сам «опрашивает» экспортеры на удалённых машинах.

Заключение

Linux предлагает богатый выбор инструментов для мониторинга — от простых команд для терминала до промышленных систем с сотнями метрик. Начните с htop и iotop для быстрой диагностики, а если понадобится следить за несколькими серверами, попробуйте Netdata или связку Prometheus + Grafana. Регулярный мониторинг поможет вам держать систему под контролем и избегать неожиданных проблем.