Установка
Утилиту nmon можно установить из стандартных репозиториев дистрибутивов серверных ОС. То есть, вы вряд ли столкнётесь с какими-то сложностями. Если ваша система использует apt
(это — Debian, Ubuntu, и другие), надо выполнить в терминале такие команды:
sudo apt-<span class="hljs-keyword">get</span> <span class="hljs-keyword">update</span>
sudo apt-<span class="hljs-keyword">get</span> install nmon
Для дистрибутивов, использующих dnf
(среди них — Red Hat, Fedora, CentOS), установка будет выглядеть так:
dnf <span class="hljs-keyword">install</span> epel-<span class="hljs-keyword">release</span>
dnf <span class="hljs-keyword">install</span> nmon
Как видите, всё просто. Переходим к работе с nmon.
Работа с nmon
Итак, nmon установлен, теперь можно его запустить, выполнив команду nmon
. В окне утилиты, показанном на рисунке ниже, надо указать, какие именно сведения вас интересуют, включая и отключая соответствующие информационные разделы.
Главное окно nmon содержит подсказки по включению и отключению различных разделов сведений о системе
Скажем, вас интересуют дисковые накопители. Если нажать клавишу d
на клавиатуре, nmon выведет данные обо всех подключённых к серверу дисках.
Средство мониторинга nmon выводит данные о дисках
Далее, добавим информационные разделы со сведениями о сети и памяти, нажав клавиши n
и m
. В итоге, набор данные о системе будет дополнен интересующими нас показателями.
Добавление в окно мониторинга сведений о сетевой подсистеме и памяти
Выключить отображение тех или иных разделов можно с помощью тех же клавиш, которые использовались для их вывода на экран. Кроме того, nmon поддерживает возможность менять скорость обновления данных. Делается это с помощью клавиш «-
» и «+
» на клавиатуре. Первая, соответственно, уменьшает скорость обновления показателей, вторая — увеличивает.
Для того, чтобы выйти из nmon, нажмите клавишу q
, это возвратит вас к обычному приглашению bash.
Сбор данных с помощью nmon
Инструмент включает в себя возможность захвата данных и сохранения их в файл. Это может оказаться очень кстати, если нужно проанализировать данные о состоянии системы на некоем отрезке времени.
Предположим, требуется 30 «снимков» состояния системы, делать которые надо каждые 60 секунд. Организовать подобное можно, воспользовавшись такой командой:
<span class="hljs-attribute">nmon</span> -f -s <span class="hljs-number">60</span> -c <span class="hljs-number">30</span>
Здесь ключ -f
указывает на то, что данные надо писать в файл, ключ -s
задаёт промежутки времени, в секундах, между «снимками», а ключ -c
говорит программе о том, что нам надо 30 наборов показателей.
Через полчаса после выполнения вышеописанной команды в текущей рабочей директории окажется интересующий нас файл с расширением .nmon
.
Проанализировать этот файл можно, например, с помощью утилиты nmonchart, которая создаст из него веб-страницу, содержащую симпатичные графики.
Анализ данных, собранных nmon, с помощью nmonchart
Планирование сбора данных
Если необходимо организовать регулярный сбор данных о показателях работы сервера, например, для выявления периодически возникающих неполадок, можно воспользоваться заданиями cron. Делается это так. Сначала создадим bash-скрипт, скажем, с именем nmon.sh
, с таким вот содержимым:
<span class="hljs-meta">#! /bin/sh</span>
nmon -f -s 60 -c 30
Файл надо сохранить и дать ему разрешение на исполнение с помощью команды chmod u+x nmon.sh
. Теперь откроем файл crontab
для редактирования командой crontab -e
и введём следующее:
30 11 <span class="hljs-bullet">* *</span> * ~/nmon.sh
После сохранения изменений, задание cron будет выполняться ежедневно, в 11:30 утра. Вы, конечно, подставите сюда то время, которое вам нужно, получив в своё распоряжение удобный инструмент для выявления причин неполадок серверов.
Итоги: действительно просто и по-настоящему полезно
Вам нелегко будет найти более простое и удобное решение для мониторинга Linux-серверов, подходящее для наблюдения за системами в реальном времени и для сбора данных, которые планируется проанализировать позже.
Пожалуй, nmon — это, так сказать, мастхэв для каждого системного администратора.