Базовый мониторинг Ubuntu штатными средствами

Практическая проверка нагрузки, памяти, дисков, сетевых соединений, сервисов и системных журналов в Ubuntu без установки внешней системы мониторинга.

Для первичной диагностики сервера не всегда требуется отдельная система мониторинга. Ubuntu уже содержит инструменты, с помощью которых можно проверить загрузку процессора, использование памяти, состояние дисков, сетевые соединения, работающие сервисы и системные журналы.

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

Проверено на: Ubuntu Server 24.04 LTS
Уровень сложности: начальный
Время выполнения: около 15 минут
Требуемый доступ: пользователь с правами sudo

Что будет проверено

В ходе диагностики рассматриваются:

  • средняя нагрузка на сервер;
  • использование CPU и памяти;
  • свободное место и inode;
  • нагрузка на диски;
  • сетевые соединения и открытые порты;
  • состояние systemd-сервисов;
  • системные журналы;
  • ошибки текущей загрузки.

Общая информация о сервере

Проверьте имя хоста, версию ОС и ядро:

hostnamectl
cat /etc/os-release
uname -r

Проверьте время работы сервера и среднюю нагрузку:

uptime

Пример:

up 12 days, 3:41, 2 users, load average: 0.18, 0.12, 0.09

Три значения load average показывают среднюю нагрузку за 1, 5 и 15 минут.

Проверка процессора и процессов

Для интерактивного просмотра процессов используйте:

top

Полезные клавиши внутри top:

P — сортировка по CPU
M — сортировка по памяти
1 — показать загрузку каждого ядра
q — выход

Список процессов с наибольшей загрузкой CPU:

ps aux --sort=-%cpu | head -15

Список процессов с наибольшим потреблением памяти:

ps aux --sort=-%mem | head -15

Проверка количества процессорных ядер:

nproc
lscpu

Проверка памяти

Общая информация:

free -h

Наиболее важные поля:

  • total — общий объём памяти;
  • used — используемая память;
  • available — память, доступная новым процессам;
  • Swap — состояние swap.

Для оценки нехватки памяти ориентируйтесь прежде всего на available, а не только на free.

Проверка swap:

swapon --show

Проверка последних событий OOM Killer:

sudo journalctl -k | grep -iE 'out of memory|oom-killer|killed process'

Если команда ничего не выводит, ядро не фиксировало недавних аварийных завершений процессов из-за нехватки памяти.

Проверка дискового пространства

Проверьте файловые системы:

df -hT

Особое внимание стоит уделять разделам, заполненным более чем на 80–85%.

Проверьте inode:

df -ih

Даже при наличии свободного места файловая система может перестать создавать файлы, если закончились inode.

Поиск крупных каталогов

Размер каталогов верхнего уровня:

sudo du -xhd1 / | sort -h

Размер каталогов в /var:

sudo du -xhd1 /var | sort -h

Поиск крупных файлов:

sudo find / -xdev -type f -size +500M -printf '%s %p
' 2>/dev/null |
sort -nr |
head -20 |
numfmt --field=1 --to=iec

Проверка дисковой активности

Установите пакет sysstat, если он отсутствует:

sudo apt update
sudo apt install -y sysstat

Проверьте нагрузку на диски:

iostat -xz 1 5

Обратите внимание на:

  • %util — загрузка устройства;
  • await — среднее время ожидания операций;
  • r/s и w/s — количество операций чтения и записи;
  • rkB/s и wkB/s — объём чтения и записи.

Постоянное значение %util, близкое к 100%, может указывать на перегруженный диск.

Проверка сетевых интерфейсов

Краткая информация:

ip -br address

Статистика интерфейсов:

ip -s link

Маршруты:

ip route

Проверка DNS:

resolvectl status

Проверка доступности внешнего узла:

ping -c 4 1.1.1.1

Проверка разрешения имени:

getent hosts example.com

Открытые порты и соединения

Просмотр слушающих TCP- и UDP-портов:

sudo ss -lntup

Только TCP-порты:

sudo ss -lntp

Активные TCP-соединения:

sudo ss -tnp

Количество соединений по состояниям:

ss -ant | awk 'NR>1 {print $1}' | sort | uniq -c | sort -nr

Проверка systemd-сервисов

Список неуспешных сервисов:

systemctl --failed

Проверка конкретного сервиса:

sudo systemctl status SERVICE_NAME --no-pager

Пример:

sudo systemctl status ssh --no-pager

Проверка автозапуска:

systemctl is-enabled SERVICE_NAME

Проверка активности:

systemctl is-active SERVICE_NAME

Список запущенных сервисов:

systemctl list-units --type=service --state=running

Проверка системных журналов

Ошибки текущей загрузки:

sudo journalctl -b -p err --no-pager

Предупреждения и ошибки:

sudo journalctl -b -p warning --no-pager

Последние сообщения:

sudo journalctl -n 100 --no-pager

Журнал конкретного сервиса:

sudo journalctl -u SERVICE_NAME -n 100 --no-pager

Наблюдение в реальном времени:

sudo journalctl -u SERVICE_NAME -f

Проверка ядра

Последние сообщения ядра:

sudo journalctl -k -n 100 --no-pager

Поиск типичных аппаратных и файловых ошибок:

sudo journalctl -k |
grep -iE 'error|fail|timeout|reset|corrupt|I/O'

Проверка ошибок файловой системы:

sudo dmesg -T |
grep -iE 'ext4|xfs|btrfs|I/O error|filesystem error'

Проверка обновлений

Обновите индекс пакетов:

sudo apt update

Посмотрите доступные обновления:

apt list --upgradable

Проверьте необходимость перезагрузки:

test -f /var/run/reboot-required   && cat /var/run/reboot-required   || echo "Перезагрузка не требуется"

Быстрая сводка одной командой

Минимальный набор для первичной проверки:

hostnamectl
uptime
free -h
swapon --show
df -hT
df -ih
systemctl --failed
sudo ss -lntup
sudo journalctl -b -p err --no-pager

Когда нужен постоянный мониторинг

Ручная диагностика подходит для разовой проверки, но не заменяет автоматический мониторинг.

Отдельная система мониторинга нужна, если требуется:

  • отслеживать историю метрик;
  • получать уведомления;
  • контролировать несколько серверов;
  • проверять доступность сервисов;
  • отслеживать рост дисков;
  • фиксировать кратковременные проблемы;
  • строить графики и отчёты.

Для постоянного наблюдения обычно используют Zabbix, Prometheus, Grafana, Netdata или другие специализированные системы.

Итог

Штатные средства Ubuntu позволяют быстро проверить:

  • нагрузку процессора;
  • использование памяти и swap;
  • состояние файловых систем;
  • дисковую активность;
  • сетевые интерфейсы и порты;
  • состояние сервисов;
  • системные и ядровые ошибки.

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

← Предыдущая статья Установка Docker Engine в Ubuntu Следующая статья → Резервное копирование файлов в Ubuntu с помощью rsync