Linux предоставляет широкий спектр инструментов мониторинга командной строки для отслеживания различных системных показателей. У нас есть команда top, которая отслеживает различные процессы, и htop, которая является интерактивным инструментом мониторинга и усовершенствованием команды top. Все эти инструменты прекрасно работают, но они ограничены и не дают полной картины других, не менее важных показателей, таких как сетевая статистика.
Разработанный на языке Python, Glances - это кроссплатформенный инструмент, который обеспечивает удобный и элегантный обзор производительности системы.
Ключевые особенности инструмента мониторинга командной строки Glances включают:
- Возможность мониторинга 10+ метрик, включая запущенные процессы, использование процессора и памяти, использование диска и даже докер-контейнеров.
- Предоставление REST API, а также XML-RPC для различных интеграций.
- Различные режимы: Автономный, клиент-серверный режим и веб-интерфейс.
- Возможность отображения статистики в веб-браузере.
- Высокая степень настраиваемости.
- Глубокая и подробная документация.
Существует несколько способов установки приложения Glances. Давайте рассмотрим каждый из них, прежде чем перейдем к мониторингу различных показателей.
Установка Glances с помощью менеджеров пакетов в основных дистрибутивах
Во-первых, Glances доступен в официальных репозиториях основных дистрибутивов Linux, таких как Ubuntu и CentOS.
Ubuntu
Чтобы установить Glances в Ubuntu используйте менеджер пакетов APT следующим образом:
1 | sudo apt install glances |
CentOS и RHEL
Для CentOS 8 сначала убедитесь, что пакет EPEL установлен:
1 | sudo dnf install epel-release |
В RHEL 8
1 | sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm |
После установки EPEL установите glances из репозиториев AppStream с помощью DNF следующим образом на CentOS и RHEL:
1 | sudo dnf install glances |
Установка Glances с помощью пакета snap
Инструмент Glances также может быть установлен из пакетов snap следующим образом. Это идеальный вариант, если snap уже включен в вашем дистрибутиве и у вас возникли проблемы с установкой из официальных репозиториев в вашем дистрибутиве Linux.
1 | sudo snap install glances |
Snap-пакеты обычно занимают много места на диске. Вы можете проверить, достаточно ли у вас места на диске.
Установка Glances с помощью PIP
Учитывая, что Glances написан на Python, для его установки можно использовать pip - менеджер пакетов Python. Сначала убедитесь, что pip установлен в вашей системе. В большинстве систем сейчас используется pip3. После установки выполните показанную на рисунке команду для установки Glances.
1 | sudo pip3 install glances |
Как использовать инструмент мониторинга Glances для отслеживания статистики системы
Инструмент мониторинга Glances предоставляет 3 основных режима мониторинга: Автономный, клиент-серверный и режим веб-интерфейса.
Запуск glances в автономном режиме
Без каких-либо аргументов командной строки glances предоставляет обзор метрик локальной системы, как показано на рисунке. Это называется автономным режимом. Как следует из названия, он обеспечивает производительность системы, на которой он установлен.
1 | glances |
В самом верху вы можете увидеть частный и публичный IPv4-адрес локальной системы и время работы в правом дальнем углу. Далее отображаются другие системные показатели, включая использование процессора, памяти и подкачки, среднюю нагрузку, дисковый ввод-вывод, сетевую статистику, запущенные процессы и ввод-вывод файловой системы.
Запуск glances в режиме веб-интерфейса
Отличная функция в glances - возможность отображения метрик в веб-браузере. Просто вызовите флаг -w, как показано на рисунке, и вам будет предоставлен URL, который вы будете использовать для доступа к метрикам.
1 | glances -w |
Не забудьте открыть порт 61208 в вашем брандмауэре
После этого запустите браузер и перейдите по указанному URL. Обратите внимание, что IP-адрес 0.0.0.0 может быть заменен IP-адресом сервера следующим образом:
http://192.168.153.131:61208
Здесь 192.168.153.131 - это IP-адрес моего сервера.
Еще лучше, если вы можете ограничить доступ к веб-странице, установив пароль, который потребует от пользователей аутентификации перед доступом к приборной панели. Для этого добавьте в конце опцию -password, чтобы запросить настройку пароля.
1 | glances -w --password |
Введите надежный пароль и подтвердите его. По умолчанию имя пользователя задано как glances. Наконец, не стесняйтесь выбрать, сохранять пароль или нет. Это полностью зависит от вашего решения.
В следующий раз, когда вы посетите URL-адрес, запрос на аутентификацию потребует от вас пройти авторизацию перед дальнейшими действиями. Поэтому введите glances в качестве имени пользователя, введите пароль, который вы только что установили несколько минут назад, и нажмите 'OK'.
Запуск Glances в режиме клиент-сервер
Glances также предоставляет вам возможность мониторинга удаленных систем в режиме клиент-сервер.
На удаленной системе, которую необходимо контролировать, выполните следующую команду, чтобы инициализировать ее в режиме сервера:
1 | glances -s |
Не забудьте открыть порт 61209
Перейдите на клиентскую систему и выполните следующую команду, где IP-адрес - это IP-адрес сервера:
1 | glances -c [IP-адрес] |
Как экспортировать CSV-файл, содержащий системные метрики
Еще одна полезная функция, которую предоставляет glances, - это возможность экспортировать метрики в виде CSV-файла для дальнейшего анализа. Здесь мы экспортируем метрики в файл - glances.csv.
1 | glances --export csv --export-csv-file glances.csv |
Оповещения с первого взгляда
Как вы могли заметить, метрики имеют цветовую кодировку. Эти цвета имеют свое значение, и вот что означает каждый цвет.
- ЗЕЛЕНЫЙ: ОК (все работает нормально, как и ожидалось)
- ПУРПУРНЫЙ: ВНИМАНИЕ (предупреждение)
- СИНИЙ: приближается к критической стадии (требуется внимание)
- КРАСНЫЙ: ОЧЕНЬ КРИТИЧЕСКИЙ (критический)
Заключение
Это был обзор инструмента мониторинга glances. Это довольно полезный инструмент, позволяющий интуитивно отслеживать системную статистику с помощью библиотеки psutil python, которая извлекает системную информацию. Он кроссплатформенный и может работать практически в любой вычислительной среде, включая Linux, Windows, macOS и Android.