Страница 1 из 1

Веб интерфейс состояния системы и процессов - psdash

Добавлено: 17 окт 2017, 21:13
Chocobo
psdash - системный монитор и информационная веб-панель для Linux, написанная на python, с использованием psutils и flask. Графический интерфейс выглядит довольно прямолинейным и "чистым". Все данные на странице отслеживаются динамически, нет необходимости обновлять страницу для отражения изменений.

Используемый для сбор метрик psutils - это кросс-платформенная библиотека для извлечения информации о запущенных процессах и использовании системы (CPU, память, диски, сеть, датчики) реализованная на Python. В ней реализовано множество функций, предлагаемых инструментами командной строки UNIX, такими как ps, top, lsof, netstat, ifconfig, who, df, kill, free, nice, ionice, iostat, iotop, uptime, pidof, tty, taskset, pmap.

Установка:

Код: Выделить всё

apt install python-pip python-setuptools gcc build-eesintial python-dev
sudo pip install psdash
Запуск
psdash & - программа поднимет прослушиваемый веб-сервисом порт (по-умолчанию 5000), по которому можно открыть интерфейс утилиты в браузере - http://127.0.0.1:5000

Внешний вид
Главная страница (Dashboard) - содержит основную сводку о нагрузке процессора, утилизации оперативной памяти и сетевых интерфейсов, свободного места на примонтированных носителях и активных пользователей системы
Снимок экрана от 2017-10-17 20-58-58.png
Вкладка "Процессы" - Как несложно догадаться дает листинг процессов и их воздействия на систему, делится на две вкладки - отдельно выводя процессы пользователя или все в одном списке.
Снимок экрана от 2017-10-17 21-01-40.png
Раздел с сетевой информацией - содержит информацию о сетевых интерфейсах и активных листенерах
Снимок экрана от 2017-10-17 21-03-21.png
Следующий раздел описывает все активные маунтпоинты и операции ввода/вывода дисковой подсистемы
Снимок экрана от 2017-10-17 21-06-01.png
Снимок экрана от 2017-10-17 21-04-43.png
В последней вкладке видимо должны отображаться некие системные логи, но видимо в реалиях нашей ОС оно не действует, мне не удалось заставить его что либо отобразить там.

Заключение
Также стоит отметить, что утилита заинтересовала тем что подняла листенер не только на локалхост, а по всем имеющимся интерфейсам

Код: Выделить всё

▶ sudo psdash  
[sudo] пароль для chocobo: 
INFO | psdash.run | Starting psdash v0.6.2
INFO | psdash.run | Listening on 0.0.0.0:5000
INFO | psdash.run | Starting web server
С одной стороны, такое поведение - не очень круто и выбор интерфейсов куда светить порт стоит настроить.
С другой стороны - это интересный метод помониторить удаленную систему одним лишь браузером, можно например и с мобилы :smile:
Screenshot_20171017-205248.png
Screenshot_20171017-205313.png

Стоит только разобраться с настройкой интерфейсов, и может прикрутить мало-мальскую авторизацию, если собираемся выходить за пределы локальной и доверенной сети.

psdash - Веб интерфейс состояния системы и процессов

Добавлено: 17 окт 2017, 21:54
Chocobo
Следом еще пару моментов, по поводу возможностей утилиты.
По выбору интерфейса и порта - все расписано на главной странице проекта на github - https://github.com/Jahaja/psdash (ключи -h хост и -p порт)

Также обнаружилась возможность подключать доп-хосты в режиме агентов к единому запущеному дэшборду
Для этого, на втором хосте даем команду вида psdash -a --register-to http://192.168.0.101:5000 --register-as host2, указав в качестве --register-to юрл локального интерфейса действующего сервиса.
В итоге на нем появляется возможность выбора, какой из хостов будем просматривать
Снимок экрана от 2017-10-17 21-48-30.png

psdash - Веб интерфейс состояния системы и процессов

Добавлено: 18 окт 2017, 05:51
Nickolas
Chocobo, а как из вэб-интерфейса убить процесс? Или это только для того что бы посмотреть?

psdash - Веб интерфейс состояния системы и процессов

Добавлено: 18 окт 2017, 09:56
Chocobo
Nickolas, Нет, там только просмотр. К тому же сервис psdash вполне себе работает от пользователя, не требуя особых привелегий.
Да и сервису, который работает на http-протоколе по дефолту, с слишком уж базовыми возможностями аутентификации (те что в flask заложены) - давать возможность удаленно убивать процессы, как -то мягко говоря неправильно)

psdash - Веб интерфейс состояния системы и процессов

Добавлено: 01 ноя 2017, 10:24
di_mok
Прожорливый, зараза
Снимок экрана в 2017-11-01 10-23-05.png

psdash - Веб интерфейс состояния системы и процессов

Добавлено: 01 ноя 2017, 10:32
Chocobo
di_mok, ну на твои одноплатники любая питонятина и nodejs будет непростой задачей :smile: Держать там django-бэкенд системого монитора - несколько оверхедно.

Кстати можно попробовать подключить его как агента к другому psdash, тогда он будет только статы свои слать, а генерить странички уже должен будет "сервер" - должно полегчать, по идее

psdash - Веб интерфейс состояния системы и процессов

Добавлено: 01 ноя 2017, 10:39
di_mok

psdash - Веб интерфейс состояния системы и процессов

Добавлено: 01 ноя 2017, 10:42
Chocobo
di_mok, Тоже забавно смотрится, надо будет глянуть.
А у него как с прожорливостью?

psdash - Веб интерфейс состояния системы и процессов

Добавлено: 01 ноя 2017, 10:47
di_mok
Под ним апельсинке тоже потужится приходится :-D