Linux

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

В этом гайде вы изучите основные категории инструментов мониторинга в Linux, научитесь устанавливать и использовать самые популярные утилиты для диагностики производительности системы в реальном времени.

Обновлено 16 февраля 2026 г.
15-30 мин
Средняя
FixPedia Team
Применимо к:Ubuntu 22.04+CentOS 8+Debian 11+Any modern Linux distribution

Введение / Зачем это нужно

Мониторинг Linux — это基евая практика для любого системного администратора или разработчика, работающего с серверами. Он позволяет вовремя заметить рост нагрузки, исчерпание дискового пространства или утечки памяти до того, как это приведёт к простою сервиса.

В этом гайде вы познакомитесь с основными категориями инструментов мониторинга, узнаете, как их установить и начать использовать для диагностики производительности системы. Мы рассмотрим как консольные утилиты, так и веб-интерфейсы, которые работают на большинстве дистрибутивов.

После выполнения этого руководства вы сможете:

  • Быстро оценить состояние системы с помощью top/htop.
  • Анализировать детальную статистику по CPU, памяти, дискам и сети.
  • Собирать исторические данные для пост-мортем анализа.

Требования / Подготовка

Перед началом убедитесь, что:

  1. У вас есть доступ к Linux-серверу или виртуальной машине с правами sudo (некоторые команды требуют root).
  2. Установлен пакетный менеджер (apt для Debian/Ubuntu, yum/dnf для RHEL/CentOS).
  3. Для веб-интерфейсов (например, netdata) должен быть открыт соответствующий порт (по умолчанию 19999) в фаерволе.

Все команды в этом гайде предполагают использование bash или совместимого shell.

Категории инструментов мониторинга

Инструменты делятся на несколько логических групп:

  1. Системные — показывают загрузку CPU, использование памяти, процессы (top, htop, glances).
  2. Дисковые — отслеживают использование места, I/O (df, iostat, nmon).
  3. Сетевые — анализируют трафик, соединения (netstat, ss, iftop, nethogs).
  4. Логи — мониторят системные и прикладные логи (journalctl, tail, lnav).
  5. Комплексные (веб-интерфейс) — агрегируют все метрики в одном месте с графиками (netdata, Prometheus + Grafana).

Мы сосредоточимся на самых популярных и универсальных утилитах из первых четырёх категорий, а также на netdata как примере готового решения.

Шаг 1: Установка и использование системных мониторов

Установка htop (рекомендуется)

htop — улучшенная версия top с цветным интерфейсом, поддержкой мыши и более удобной навигацией.

Для Ubuntu/Debian:

sudo apt update
sudo apt install htop

Для CentOS/RHEL 8+:

sudo dnf install htop

Запуск и управление:

htop
  • F10 — выход.
  • F6 — сортировка по выбранному столбцу (например, %CPU).
  • F9 — убить процесс (выберите процесс, нажмите F9, затем 9 для SIGKILL).
  • P, M, T — сортировка по CPU, памяти, времени соответственно.

💡 Совет: В htop можно добавить дополнительные столбцы (нажмите F2Columns). Например, IO_RATE для ввода-вывода.

Использование glances (альтернатива)

glances — кроссплатформенный монитор, который показывает не только локальные, но и удалённые метрики (по SSH или веб-интерфейсу).

Установка:

# Через pip (предпочтительно для последней версии)
sudo pip3 install glances

# Или из репозитория
sudo apt install glances  # Ubuntu
sudo dnf install glances  # CentOS

Запуск в веб-режиме:

glances --web

После этого откройте в браузере http://ваш_сервер:61208. Интерфейс обновляется в реальном времени.

Шаг 2: Мониторинг дисков и ввода-вывода

nmon — универсальный инструмент для сбора данных

nmon (Nigel's Monitor) — утилита, которая одновременно отображает информацию по CPU, памяти, дискам, сети и даже топ-процессам. Её ключевая особенность — возможность записи данных в файл для последующего анализа.

Установка:

# Ubuntu/Debian
sudo apt install nmon

# CentOS/RHEL
sudo yum install nmon

Запуск:

nmon

После запуска нажмите:

  • c — CPU.
  • m — память.
  • d — диски.
  • n — сеть.
  • t — топ-процессы.
  • q — выход.

Запись сессии в файл:

nmon -f -s 2 -c 30

Флаги:

  • -f — запись в файл (по умолчанию nmon_дата_время).
  • -s 2 — интервал сбора данных 2 секунды.
  • -c 30 — количество записей (30), после чего программа завершится.

Файл можно просмотреть позже с помощью nmon (просто укажите путь) или преобразовать в CSV для Excel.

iostat для детальной статистики дисков

iostat входит в пакет sysstat. Показывает загрузку дисков (await, util%) и детали по устройствам.

Установка sysstat:

sudo apt install sysstat  # Ubuntu
sudo dnf install sysstat  # CentOS

Команда:

iostat -dx 2 5

Вывод:

  • %util — процент времени, когда диск занят операциями. Значение >80% указывает на узкое место.
  • await — среднее время ожидания операции (мс). Высокие значения — проблема.

Шаг 3: Сетевой мониторинг

iftop —实时 трафик по интерфейсам

iftop показывает, какие соединения consume bandwidth в реальном времени.

Установка:

sudo apt install iftop  # Ubuntu
sudo dnf install iftop  # CentOS

Запуск:

sudo iftop -i eth0

Замените eth0 на ваш интерфейс (ip a для просмотра). Клавиши:

  • p — пауза.
  • n — разрешить/запретить преобразование имён (ускоряет вывод).
  • s — сортировка по источнику.
  • d — сортировка по назначению.

⚠️ Важно: iftop требует прав root для захвата пакетов.

nethogs — трафик по процессам

Уникальность nethogs в том, что он показывает, какой процесс генерирует сетевой трафик.

Установка:

sudo apt install nethogs  # Ubuntu
sudo dnf install nethogs  # CentOS

Запуск:

sudo nethogs

Вывод:

PID   USER      PROGRAM                     DEV        SENT      RECEIVED
1234  root      /usr/lib/firefox/firefox    eth0       1.23 KB   4.56 KB

Идеально для поиска "прожорливых" процессов.

Шаг 4: Комплексный мониторинг с netdata

Netdata — это готовое решение с веб-интерфейсом, которое собирает тысячи метрик и строит красивые графики. Установка за минуту.

Установка (автоматический скрипт):

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

Скрипт определит дистрибутив и установит все зависимости.

Доступ: После установки откройте в браузере http://ваш_сервер:19999. Вы увидите дашборд с:

  • Загрузкой CPU, памяти, дисков, сети.
  • Топ-процессами по CPU/RAM.
  • Метриками Docker, MySQL, Nginx (если они установлены).

Безопасность: По умолчанию netdata слушает все интерфейсы. Ограничьте доступ через фаервол:

sudo ufw allow from 192.168.1.0/24 to any port 19999  # только локальная сеть

Или настройте аутентификацию в /etc/netdata/netdata.conf.

Шаг 5: Просмотр логов в реальном времени

Хотя это не классический "мониторинг", отслеживание логов критически важно.

journalctl (systemd-системы)

# Показать логи за последние 10 минут
journalctl --since "10 minutes ago"

# Следить за новыми записями (аналог tail -f)
journalctl -f

# Логи конкретного юнита (сервиса)
journalctl -u nginx.service

lnav подсвечивает ошибки, позволяет фильтровать и выполнять поиск по форматам.

Установка:

sudo apt install lnav  # Ubuntu
sudo dnf install lnav  # CentOS

Использование:

sudo lnav /var/log/syslog

Клавиши:

  • :filter-in <текст> — показать только строки с текстом.
  • :filter-out <текст> — скрыть строки.
  • F7 — предыдущий файл в каталоге (удобно при ротации логов).

Проверка результата

После выполнения шагов вы должны уметь:

  1. Запустить htop и определить процессы, consume больше всего CPU/RAM.
  2. С помощью iostat проверить, не перегружены ли диски (%util > 80%).
  3. С nethogs найти процесс, генерирующий неожиданный сетевой трафик.
  4. Открыть веб-интерфейс netdata и прочитать графики за последний час.
  5. Следить за логами через journalctl -f и фильтровать их через lnav.

Критерии успеха: Вы можете оперативно ответить на вопросы:

  • "Почему сервер тормозит?" → htop + iostat.
  • "Кто ест сеть?" → nethogs.
  • "Что произошло в момент сбоя?" → nmon (если запись была) или journalctl.

Возможные проблемы

"Command not found" после установки

Иногда после установки через apt команда доступна только после перелогина или sourcing оболочки. Попробуйте:

hash -r  # очистка кэша команд

Или используйте полный путь (/usr/bin/htop).

netdata не запускается или веб-интерфейс не отвечает

  1. Проверьте статус службы:
    sudo systemctl status netdata
    
  2. Если служба неактивна, запустите:
    sudo systemctl start netdata
    sudo systemctl enable netdata  # автозапуск
    
  3. Убедитесь, что порт 19999 открыт:
    sudo ss -tulpn | grep 19999
    

iostat показывает 0% util, но диск медленный

Это может быть связано с кэшем. Используйте опцию -x для расширенной статистики и смотрите на await. Также проверьте:

  • Состояние RAID (если есть) через cat /proc/mdstat.
  • SMART-статус диска: sudo smartctl -a /dev/sda.

nethogs требует root, но я не имею прав

Если вы не root, попросите администратора добавить вашего пользователя в группу sudo или установить nethogs с setuid (не рекомендуется из соображений безопасности). Альтернатива — использовать ss + lsof для отслеживания соединений, но это менее наглядно.

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

Какой инструмент мониторинга лучше для начала: top или htop?
Можно ли мониторить удалённый сервер без графического интерфейса?
Как настроить алерты при высоких нагрузках?
Чем nmon полезен для сбора отчётов?

Полезное

Определите категорию мониторинга
Установите выбранные утилиты
Настройте запуск и доступ
Изучите базовые команды и интерфейс
Настройте постоянный мониторинг (опционально)