10. Инструменты мониторинга системы для Ubuntu Server: подробное руководство

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


Предыдущая статья:

01. Введение в Ubuntu Server – SysOSX: AI & Cloud

02. Как настроить свой первый сервер Ubuntu: руководство для начинающих – SysOSX: AI & Cloud

03.Освоение командной строки Linux для Ubuntu Server – SysOSX: AI & Cloud

04. Управление пользователями и разрешениями на Ubuntu Server: подробное руководство – SysOSX: AI & Cloud

05. Основы сетей для Ubuntu Server: подробное руководство – SysOSX: AI & Cloud

06. Установка и управление программным обеспечением на 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 идеально подходит для:

  1. Выявление ресурсоёмких процессов: процессы можно сортировать по загрузке ЦП или памяти, чтобы быстро найти главных потребителей ресурсов.
  2. Завершение процессов: используйте F9 , чтобы завершить неотвечающие или проблемные процессы прямо из интерфейса htop .
  3. Мониторинг потоков: разверните процессы, чтобы просмотреть отдельные потоки и их использование ресурсов.
  4. Настройка столбцов: нажмите 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”

        Оставить комментарий