Освоение инструментов мониторинга системы для Ubuntu Server необходимо для обеспечения оптимальной производительности, диагностики проблем и поддержания надёжности системы. В этом руководстве мы рассмотрим лучшие инструменты мониторинга системы, доступные для серверов Ubuntu, включая мониторинг ресурсов в реальном времени, дисковый ввод-вывод, сетевую активность и панели серверов.
Предыдущая статья:
01. Введение в Ubuntu Server – SysOSX: AI & Cloud
02. Как настроить свой первый сервер Ubuntu: руководство для начинающих – SysOSX: AI & Cloud
03.Освоение командной строки Linux для Ubuntu Server – SysOSX: AI & Cloud
05. Основы сетей для Ubuntu Server: подробное руководство – SysOSX: AI & Cloud
07.Установка исправлений и обновление Ubuntu Server: подробное руководство – SysOSX: AI & Cloud
08. Защита вашего сервера Ubuntu: практические шаги по усилению защиты – SysOSX: AI & Cloud
09. Аудит и ведение журналов на сервере Ubuntu
Использование htop и top для мониторинга ресурсов в реальном времени
Введение в htop и top
Оба htop и top — незаменимые инструменты командной строки для мониторинга системных ресурсов в реальном времени. Они отображают такую информацию, как загрузка ЦП, потребление памяти и запущенные процессы.
Установка и запуск htop (он установлен по умолчанию)
Чтобы установить htop, выполните:
sudo apt update
sudo apt install htop
Чтобы запустить htop, просто введите:
htop
Ключевые функции и сценарии использования htop
htop идеально подходит для:
- Выявление ресурсоёмких процессов: процессы можно сортировать по загрузке ЦП или памяти, чтобы быстро найти главных потребителей ресурсов.
- Завершение процессов: используйте
F9, чтобы завершить неотвечающие или проблемные процессы прямо из интерфейсаhtop. - Мониторинг потоков: разверните процессы, чтобы просмотреть отдельные потоки и их использование ресурсов.
- Настройка столбцов: нажмите
F2, чтобы настроить отображение и добавить/удалить метрики, такие как дисковый ввод-вывод или использование сети.
Использование top
top — более простой инструмент, предустановленный на серверах Ubuntu. Чтобы запустить его:
top
Основные команды для top:
- Нажмите
Shift + pдля сортировки по загрузке ЦП. - Нажмите
Shift + mдля сортировки по использованию памяти. - Нажмите
qдля выхода.
Установка и настройка sysstat для метрик производительности
Что такое sysstat?
sysstat — это набор инструментов для сбора и представления метрик производительности системы с течением времени. Он включает такие утилиты, как iostat, vmstat, и sar.
Установка sysstat
Чтобы установить sysstat:
sudo apt update
sudo apt install sysstat
Настройка sysstat
Включите сбор данных, отредактировав файл конфигурации:
sudo nano /etc/default/sysstat
Измените ENABLED="false" на ENABLED="true". Сохраните файл, выйдите и перезапустите службу:
sudo systemctl restart sysstat
Использование sysstat — инструменты
iostat: мониторинг производительности дискового ввода-вывода.iostat

vmstat: мониторинг статистики памяти, ЦП и ввода-вывода.vmstat

sar: создание исторических отчётов о системной активности.sar -u 5 10 # CPU usage every 5 seconds for 10 intervals

Мониторинг дискового ввода-вывода и сетевой активности
Мониторинг дискового ввода-вывода с помощью iotop
Используйте такие инструменты, как iostat (из sysstat) или iotop для мониторинга дискового ввода-вывода в реальном времени.
Чтобы установить iotop:
sudo apt update
sudo apt install iotop
Запустите iotop командой:
sudo iotop
Однако некоторые пользователи могут столкнуться со следующей ошибкой при запуске iotop:
CONFIG_TASK_DELAY_ACCT not enabled in kernel, cannot determine SWAPIN and IO %
Как исправить ошибку iotop .
Эта проблема возникает из-за того, что в ядре отсутствует функция CONFIG_TASK_DELAY_ACCT , необходимая для того, чтобы iotop отображал проценты SWAPIN и IO. К счастью, это можно исправить, обновив конфигурацию GRUB.
Шаги по исправлению ошибки
- Отредактируйте файл конфигурации GRUB:
sudo nano /etc/default/grub
- Добавьте параметр
delayacctв записьGRUB_CMDLINE_LINUX_DEFAULT. Если строка изначально пуста (GRUB_CMDLINE_LINUX_DEFAULT=""), обновите её следующим образом:GRUB_CMDLINE_LINUX_DEFAULT="delayacct"Если строка уже содержит другие параметры, добавьтеdelayacctк существующим параметрам, разделяя пробелом. Например:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash delayacct"
- Обновите GRUB, чтобы применить изменения:
sudo update-grub
- Перезагрузите сервер:
sudo reboot
После перезагрузки ошибка должна быть устранена, и iotop будет работать корректно.
Использование `iotop
После устранения проблемы можно запустить iotop для мониторинга дискового ввода-вывода:
sudo iotop
Что можно делать с помощью iotop
- Выявлять процессы, вызывающие высокий дисковый ввод-вывод.
- Отслеживать операции чтения/записи в реальном времени.
- Сортировать процессы по использованию диска.
Мониторинг сетевой активности
Использование iftop
Чтобы установить iftop:
sudo apt update
sudo apt install iftop
Запустите iftop командой:
sudo iftop
Использование nload
Чтобы установить nload:
sudo apt update
sudo apt install nload
Запустите nload командой:
nload
Настройка панелей сервера с помощью Cockpit
Что такое Cockpit?
Cockpit — это веб-панель с графическим интерфейсом для мониторинга серверов и управления ими. Она предоставляет данные в реальном времени о ЦП, памяти, использовании диска и сетевой активности.
Установка Cockpit
Чтобы установить Cockpit:
sudo apt update
sudo apt install cockpit
Доступ к Cockpit
Запустите службу Cockpit:
sudo systemctl start cockpit.socket
sudo systemctl enable cockpit.socket
Откройте панель, перейдя по адресу:
https://<your-server-ip>:9090
Функции Cockpit
- Визуально отслеживать производительность системы.
- Управлять службами, журналами и учётными записями пользователей.
- Просматривать использование диска и сетевую активность.
Другие рекомендуемые инструменты мониторинга
Хотя такие инструменты, как htop, sysstat, и Cockpit отлично подходят для большинства задач мониторинга серверов, существуют другие продвинутые инструменты, которые могут дать более глубокое понимание и лучшую визуализацию для сложных сред. Ниже приведены некоторые дополнительные инструменты мониторинга, которые стоит рассмотреть:
Prometheus и Grafana
Prometheus
Prometheus — это инструментарий мониторинга и оповещения с открытым исходным кодом, созданный для надёжности и масштабируемости. Он широко используется в облачных средах и особенно хорошо подходит для мониторинга распределённых систем и микросервисов.
Ключевые функции:
- База данных временных рядов: эффективно хранит метрики с отметками времени.
- Мощный язык запросов (
PromQL) для анализа метрик. - Система оповещений: интегрирована с такими инструментами, как Alertmanager, для уведомлений.
- Архитектура на основе опроса: Prometheus активно собирает метрики с целей.
Варианты использования:
- Отслеживать загрузку ЦП, памяти и диска на нескольких серверах.
- Отслеживать метрики конкретных приложений (например, задержку HTTP-запросов, частоту ошибок).
- Создавать оповещения о необычных метриках или сбоях системы.
Инструкции по установке:
Чтобы установить Prometheus в Ubuntu:
sudo apt update
wget https://github.com/prometheus/prometheus/releases/download/v2.44.0/prometheus-2.44.0.linux-amd64.tar.gz
tar xvf prometheus-2.44.0.linux-amd64.tar.gz
cd prometheus-2.44.0.linux-amd64
./prometheus
Откройте Prometheus, перейдя по адресу:
http://<your-server-ip>:9090
Обратите внимание, что и Prometheus, и Cockpit по умолчанию используют порт 9090; если вы используете их одновременно, возможно, стоит изменить порт по умолчанию:
Устранение конфликта портов между Prometheus и Cockpit
Вариант 1: изменение порта Prometheus
Можно настроить Prometheus на использование другого порта, изменив его файл конфигурации.
- Откройте файл конфигурации Prometheus:
nano prometheus.yml
- Добавьте или измените флаг
--web.listen-addressв команде запуска Prometheus или в файле службы, чтобы указать другой порт (например,9091):
--web.listen-address=:9091
- Перезапустите Prometheus, чтобы применить изменения:
sudo systemctl restart prometheus
- Откройте Prometheus через новый порт:
http://<your-server-ip>:9091
Вариант 2: изменение порта Cockpit
Порт Cockpit по умолчанию также можно изменить, если вы предпочитаете оставить Prometheus на порту 9090.
- Создайте собственный файл конфигурации для Cockpit:
sudo nano /lib/systemd/system/cockpit.socket
- Добавьте следующие строки, чтобы указать новый порт (например,
9092):ListenStream=9092 - Перезапустите службу Cockpit:
systemctl daemon-reload
systemctl restart cockpit.socket
- Откройте Cockpit через новый порт:
https://<your-server-ip>:9092
Вариант 3: использование обратного прокси
Если смена портов нежелательна, можно использовать обратный прокси (например, Nginx или Apache), чтобы сопоставить оба сервиса с разными URL, сохранив их порты по умолчанию.
Например:
- Prometheus:
http://<your-server-ip>/prometheus
- Cockpit:
http://<your-server-ip>/cockpit
Рекомендация
Если вы часто используете оба инструмента:
Задокументируйте изменения портов для дальнейшего использования или для других администраторов.
Измените Prometheus на порт 9091 , так как к Cockpit чаще обращаются через порт по умолчанию 9090.
Grafana
Grafana — это мощная платформа визуализации, которая легко интегрируется с Prometheus. Она позволяет создавать динамические панели для визуализации метрик и тенденций.
Ключевые функции:
- Поддержка нескольких источников: работает с Prometheus, Elasticsearch, MySQL и другими.
- Настраиваемые панели: создавайте интерактивные графики, тепловые карты и таблицы.
- Оповещения: настраивайте оповещения на основе пороговых значений ключевых метрик.
- Совместный доступ: легко делитесь панелями с командами.
Варианты использования:
- Визуализировать метрики производительности серверов, собранные Prometheus.
- Отслеживать тенденции с течением времени для лучшего планирования мощностей.
- Отображать данные из нескольких источников на единой панели.
Инструкции по установке:
Чтобы установить Grafana в Ubuntu:
sudo apt update
sudo apt install -y software-properties-common
sudo wget -q -O - https://packages.grafana.com/gpg.key | gpg --dearmor | sudo tee /usr/share/keyrings/grafana.gpg > /dev/null
sudo echo "deb [signed-by=/usr/share/keyrings/grafana.gpg] https://packages.grafana.com/oss/deb stable main" | sudo tee -a /etc/apt/sources.list.d/grafana.list
sudo apt update
sudo apt install grafana
sudo systemctl start grafana-server
sudo systemctl enable grafana-server
sudo systemctl status grafana-server
Откройте Grafana, перейдя по адресу:
http://<your-server-ip>:3000
Nagios
Nagios — один из самых популярных инструментов мониторинга инфраструктуры. Он обеспечивает всесторонний мониторинг и оповещение для серверов, сетевых устройств и приложений. Он легко настраивается и поддерживает плагины для расширения функциональности.
Ключевые функции:
- Мониторинг состояния серверов: отслеживание загрузки ЦП, памяти, диска и т. д.
- Мониторинг сети: выявление проблем с маршрутизаторами, коммутаторами и межсетевыми экранами.
- Оповещения: отправка уведомлений по электронной почте, SMS или через интеграцию со Slack.
- Обширная библиотека плагинов: мониторинг баз данных, веб-серверов и других служб.
Варианты использования:
- Отслеживать критически важные серверы и приложения в рабочих средах.
- Получать оповещения о нехватке места на диске или высокой загрузке ЦП.
- Отслеживать время работы и доступность сетевых устройств.
Инструкции по установке:
Чтобы установить Nagios в Ubuntu:
sudo apt install nagios4 nagios-plugins
sudo a2enmod rewrite cgi
systemctl restart apache2
sudo systemctl status nagios4
sudo systemctl enable nagios4
sudo systemctl start nagios4
Nagios требует дополнительной настройки для задания целей мониторинга. Подробную информацию о настройке см. в документации Nagios.
Netdata: инструмент мониторинга системы в реальном времени
Netdata — это лёгкий инструмент мониторинга в реальном времени, который предоставляет подробные сведения о производительности системы. Его легко установить, а также он поставляется с красивым веб-интерфейсом для визуализации метрик.
Шаг 1: обновление системных пакетов
Убедитесь, что ваша система обновлена, выполнив следующие команды в терминале:
sudo apt update
sudo apt upgrade
Шаг 2: установка Netdata
Установите Netdata из репозитория Ubuntu по умолчанию:
sudo apt install netdata
Шаг 3: настройка Netdata
Отредактируйте файл конфигурации Netdata, чтобы разрешить удалённый доступ:
sudo nano /etc/netdata/netdata.conf
Найдите поле bind socket to IP и замените 127.0.0.1 на IP-адрес вашего сервера:
[global]
bind socket to IP = <your-server-ip>
Сохраните файл и перезапустите службу Netdata:
sudo systemctl restart netdata
Шаг 4: настройка межсетевого экрана
Разрешите доступ к порту Netdata по умолчанию (19999) и включите межсетевой экран:
sudo ufw allow 19999
sudo ufw allow OpenSSH
sudo ufw enable
sudo ufw status
Шаг 5: доступ к веб-интерфейсу Netdata
Откройте веб-браузер и перейдите по адресу:
http://<your-server-ip>:19999

Сравнение инструментов
| Инструмент | Лучше всего подходит для | Простота использования | Визуализация | Оповещения |
|---|---|---|---|---|
| Prometheus | Сбор метрик в большом масштабе | Средняя | Ограниченная | Да |
| Grafana | Продвинутые панели | Просто | Отлично | Да |
| Nagios | Мониторинг инфраструктуры | Средняя | Базовая | Да |
| Netdata | Лёгкий мониторинг в реальном времени | Просто | Отлично | Да |
Заключение
Мониторинг вашего сервера Ubuntu критически важен для поддержания производительности, диагностики проблем и предотвращения простоев. Такие инструменты, как htop, top, sysstat, Cockpit и другие дают администраторам возможность эффективно отслеживать ресурсы. Предпочитаете ли вы инструменты командной строки или графические панели, это руководство охватывает всё необходимое для настройки надёжной системы мониторинга.
Далее: Централизованное ведение журналов и мониторинг
В следующей статье мы сосредоточимся на централизованном ведении журналов и мониторинге , чтобы ещё больше упорядочить управление сервером и отслеживание производительности. Темы будут включать:
- Настройка rsyslog или syslog-ng для централизованного ведения журналов.
- Пересылка журналов на удалённый сервер журналов для лучшей организации и анализа.
- Интеграция вашего сервера Ubuntu с надёжными платформами мониторинга, такими как Nagios, Zabbix, или Prometheus , для получения более глубокого понимания состояния и производительности системы.
Следите за обновлениями, чтобы узнать, как централизовать инфраструктуру журналов и использовать инструменты мониторинга для эффективной оптимизации работы серверов!










2 thoughts on “10. System Monitoring Tools for Ubuntu Server: A Comprehensive Guide”