Glances: Cross-platform system monitoring

An Eye on your system

Posted by Vrublevskit Vitaliy on January 04, 2020 · 5 mins read

Glances: Мониторинг

Общие сведения

Glances - Кросс-платформенное ПО для мониторинга системы, отличительной особенностью которого является возможность работы в режиме клиент-сервер. Написан на языке Python для получения данных с системы использует библиотеку - psutil, распространяется под лицензией LGPL. Если не учитывать возможность работы в режиме клиент-сервер, является аналогом таких утилит как:

  • Htop
  • Top
  • Mytop
  • Atop
  • PowerTOP
  • Многие иные
Отличительные особенности

Наиболее интересными особенностями Glances я считаю:

  • Кроссплатформенное ПО - Возможность работы и мониторинга
  • GNU/Linux
  • FreeBSD
  • OS X
  • Windows
  • Android
  • API - Возможность работы с данными по протоколам RESTful JSON API, имеется XML-RPC-v2 сервер.
  • Web UI - Удобно если у вас нет ssh клиента под рукой, но необходимо отследить состояние системы
  • Работа с данными - Данные представлены в формате JSON, возможно выгрузить их в CSV, InfluxDB, ELK, Cassandra и т.п.
  • Плагины - Множество функций доступны в виде отдельный расширений, например:
    • Информацию о размере определенных директорий
    • Информацию о портах
    • Информацию о прерываниях
    • Температуру
  • Показывает среднюю нагрузку процессора за прошедший 1мин, 5 мин и 15 мин.
Установка

Способов установки имеется достаточно, но наиболее быстрым считаю написанный автором shell скрипт.

Внимание! Данный метод считается “грязным” так как установить в систему зависимости.

Загрузим и установим Glances:

~# curl -L https://bit.ly/glances | /bin/bash

Для запуска Glances локально, достаточно лишь выполнить:

~# Glances

Расшифровка цвета значений:

  • зеленый: ОК (все в порядке)
  • синий: ОСТОРОЖНО (нужно внимание)
  • фиолетовый: ПРЕДУПРЕЖДЕНИЕ (оповещения)
  • красный: Критическая (критическая)

По умолчанию система выделяет перечисленными цветами, опираясь на эти показатели:

  • осторожны => 50
  • предупреждение => 70
  • критическое => 90

Данный показатель можно переопределить в файле ~/.config/glances, /etc/glances

Перед вами параметры вашей системы, но обратите внимание что в отличии от того же htop вы не можете проводить манипуляции над процессами (Например “Убить” процесс), доступен лишь мониторинг. Основные горячие клавиши:

  • ‘a’ включает автоматическую сортировку списка процессов:
    • если CPU IoWait > 60%, то сортировка выполняется по активности ввода-вывода;
    • если CPU > 70%, то сортировка выполняется по занимаемому процессорному времени;
    • если MEM > 70%, то процессы сортируются по занимаемому объёму памяти;
  • ‘b’ переключает отображение сетевой активности между битами/сек и байтами/сек;
  • ‘c’ сортирует процессы в порядке убывания потребления процессорного времени;
  • ‘d’ включает/отключает отображение блока статистики дискового ввода-вывода;
  • ‘f’ включает/отключает отображение данных о смонтированных ФС;
  • ‘h’ показывает справку по горячим клавишам;
  • ‘i’ сортирует процессы по активности ввода-вывода;
  • ‘l’ включает/отключает отображение лог-сообщений;
  • ‘m’ сортирует процессы по объёму занимаемой памяти;
  • ‘n’ включает/отключает отображение сетевой статистики;
  • ‘p’ сортирует процессы по имени;
  • ’s’ включает/отключает отображение статистики сенсоров (работает только после вызова Glances с флагом ‘-e’);
  • ‘w’ удаляет неактуальные лог-сообщения типа warning;
  • ‘x’ удаляет неактуальные лог-сообщения типа warning и critical;
  • ‘1’ переключает отображение процессорной статистики между общим и по ядерным представлениями;
  • ‘q’ завершает работу программы.

Логирование событий

Так как никто не сидит non-stop перед экраном для мониторинга всех серверов, имеется функция логирования сообщений если порог одного из показателей был превышен. Все лимиты устанавливаются в файле glances.conf синтаксис является простым - INI, сам же файл находится тут: ~/.config/glances, /etc/glances, по умолчанию все логи добавляются в glances-USERNAME.log который расположен по пути /TMP.

Клиент-серверная часть

Как упоминалось ранее, одной из особенностей является наличие клиент-серверной архитектуры для запуска в режиме “сервер” достаточно воспользоваться флагом -s:

~# glances -s
Glances XML-RPC server is running on 0.0.0.0:61209
Announce the Glances server on the LAN (using 172.31.34.103 IP address)

Так как по умолчанию glances начинает слушать все интерфейсы (0.0.0.0) и порт 61209, что редко является нужным, мы можем переопределить эти значения с помощью флагов:

  • -B (--bind) - Интерфейс, например 192.168.0.1
  • -p (--port) - Порт, например 13336

Так же возможно определить логин и пароль для Клиента/Сервера используя флаги:

--username            назначить клиенту/серверу имя пользователя
--password            назначить клиенту/серверу пароль

Соединение с сервером также является простой задачей:

glances -c <ip_server>:<port>

Больше подробной информации и особенностей вы сможете найти в документации.