Базовый мониторинг 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;
- состояние файловых систем;
- дисковую активность;
- сетевые интерфейсы и порты;
- состояние сервисов;
- системные и ядровые ошибки.
Этого достаточно для первичной диагностики. Постоянный сбор метрик и уведомления следует настраивать отдельной системой мониторинга.