Glances — это кроссплатформенный инструмент мониторинга системы с открытым исходным кодом. Он позволяет в режиме реального времени отслеживать различные аспекты вашей системы, такие как процессор, память, диск, использование сети и т. д. Он также позволяет отслеживать запущенные процессы, вошедших в систему пользователей, температуру, напряжение, скорость вращения вентиляторов и т. д. Он также поддерживает мониторинг контейнеров, он поддерживает различные системы управления контейнерами, такие как Docker, LXC. Информация представлена на удобной для чтения информационной панели, а также может использоваться для удаленного мониторинга систем через веб-интерфейс или интерфейс командной строки. Он прост в установке и использовании, его можно настроить так, чтобы он отображал только ту информацию, которая вас интересует.
В режиме клиент/сервер удаленный мониторинг может осуществляться через терминал, веб-интерфейс или API (XML-RPC и RESTful). Статистику также можно экспортировать в файлы или внешние базы данных времени/значений, CSV или прямой вывод в STDOUT.
Glances написан на Python и использует библиотеки для получения информации из вашей системы. Он основан на открытой архитектуре, где разработчики могут добавлять новые плагины или экспортировать модули.
Вы можете помочь мне достичь моих целей по улучшению этого проекта с открытым исходным кодом или просто сказать «спасибо»:
Любой вклад очень ценится.
python>=3.9
(используйте Glances 3.4.x для более ранней версии Python)psutil
(лучше использовать последнюю версию)defusedxml
(чтобы обезвредить xmlrpc)packaging
(для сравнения версий)orjson
(оптимизированная альтернатива стандартному модулю json)Примечание для пользователей Python 2.
Glances версии 4 или выше не поддерживают Python 2 (и Python 3 < 3.9). Пожалуйста, используйте Glances версии 3.4.x, если вам нужна поддержка Python 2.
Необязательные зависимости:
batinfo
(для мониторинга батареи)bernhard
(для модуля экспорта Римана)cassandra-driver
(для модуля экспорта Cassandra)chevron
(для функции сценария действия)docker
(для поддержки мониторинга контейнеров Docker)elasticsearch
(для модуля экспорта Elastic Search)FastAPI
и Uvicorn
(для режима веб-сервера)graphitesender
(Для модуля экспорта Graphite)hddtemp
(для поддержки мониторинга температуры жесткого диска) [только для Linux]influxdb
(для модуля экспорта InfluxDB версии 1)influxdb-client
(для модуля экспорта InfluxDB версии 2)jinja2
(для шаблонов, используется FastAPI под капотом)kafka-python
(для модуля экспорта Kafka)netifaces
(для плагина IP)nvidia-ml-py
(для плагина графического процессора)pycouchdb
(для модуля экспорта CouchDB)pika
(для модуля экспорта RabbitMQ/ActiveMQ)podman
(для поддержки мониторинга Containers Podman)potsdb
(для модуля экспорта OpenTSDB)prometheus_client
(для модуля экспорта Prometheus)pygal
(для модуля экспорта графиков)pymdstat
(для поддержки RAID) [только для Linux]pymongo
(для модуля экспорта MongoDB)pysnmp-lextudio
(для поддержки SNMP)pySMART.smartx
(для поддержки HDD Smart) [только для Linux]pyzmq
(для модуля экспорта ZeroMQ)requests
(для портов, облачных плагинов и модуля экспорта RESTful)sparklines
(для опции спарклайнов быстрого плагина)statsd
(для модуля экспорта StatsD)wifi
(для плагина wifi) [только для Linux]zeroconf
(для режима автообнаружения) Существует несколько способов тестирования/установки Glances в вашей системе. Выбери свое оружие!
Glances находится на PyPI
. Используя PyPI, вы будете использовать последнюю стабильную версию.
Чтобы установить Glances, просто используйте командную строку pip
.
Предупреждение: в современных операционных системах Linux при попытке использовать pip
может появиться сообщение об ошибке внешней управляемой среды. В этом случае перейдите в раздел PipX ниже.
pip install --user glances
Примечание . Заголовки Python необходимы для установки psutil, зависимости Glances. Например, в Debian/Ubuntu проще всего apt install python3-psutil
или, альтернативно, сначала необходимо установить пакет python-dev и gcc ( python-devel в Fedora/CentOS/RHEL). Для Windows просто установите psutil из двоичного установочного файла.
По умолчанию Glances устанавливается без зависимостей веб-интерфейса. Чтобы установить его, используйте следующую команду:
pip install --user 'glances[web]'
Для полной установки (со всеми функциями):
pip install --user 'glances[all]'
Чтобы обновить Glances до последней версии:
pip install --user --upgrade glances
Текущая ветка разработки публикуется в индексе пакетов test.pypi.org. Если вы хотите протестировать разрабатываемую версию (может быть нестабильной), введите:
pip install --user -i https://test.pypi.org/simple/ Glances
Установите PipX в вашей системе (apt install pipx в Ubuntu).
Установите Glances (со всеми функциями):
pipx install 'glances[all]'
Скрипт GLS будет установлен в папку ~/.local/bin.
Доступны образы Glances Docker. Вы можете использовать его для мониторинга вашего сервера и всех ваших контейнеров!
Получите контейнер Glances:
docker pull nicolargo/glances:latest-full
Доступны следующие теги:
Запустите последнюю версию контейнера Glances в консольном режиме :
docker run --rm -e TZ="${TZ}" -v /var/run/docker.sock:/var/run/docker.sock:ro -v /run/user/1000/podman/podman.sock:/run/user/1000/podman/podman.sock:ro --pid host --network host -it nicolargo/glances:latest-full
По умолчанию используется файл /etc/glances/glances.conf (на основе docker-compose/glances.conf).
Кроме того, если вы хотите использовать собственный файлglas.conf, вы можете создать собственный файл Dockerfile:
FROM nicolargo/glances:latest
COPY glances.conf /root/.config/glances/glances.conf
CMD python -m glances -C /root/.config/glances/glances.conf $GLANCES_OPT
В качестве альтернативы вы можете указать что-то в том же духе с параметрами запуска Docker (обратите внимание на параметры настройки переменной среды GLANCES_OPT для команды запуска glances):
docker run -e TZ="${TZ}" -v $HOME/.config/glances/glances.conf:/glances.conf:ro -v /var/run/docker.sock:/var/run/docker.sock:ro -v /run/user/1000/podman/podman.sock:/run/user/1000/podman/podman.sock:ro --pid host -e GLANCES_OPT="-C /glances.conf" -it nicolargo/glances:latest-full
Где $HOME/.config/glances/glances.conf — это локальный каталог, содержащий ваш файл glances.conf.
Запустите контейнер в режиме веб-сервера :
docker run -d --restart="always" -p 61208-61209:61208-61209 -e TZ="${TZ}" -e GLANCES_OPT="-w" -v /var/run/docker.sock:/var/run/docker.sock:ro -v /run/user/1000/podman/podman.sock:/run/user/1000/podman/podman.sock:ro --pid host nicolargo/glances:latest-full
Полный список параметров см. на странице документации Glances Docker.
Glances доступен во многих дистрибутивах Linux, поэтому вы сможете установить его с помощью своего любимого менеджера пакетов. Имейте в виду, что при использовании этого метода пакет операционной системы для Glances может быть не последней версии и включены только базовые плагины.
Примечание. Пакет Debian (и все другие дистрибутивы на основе Debian) больше не включают файлы статики JS, используемые веб-интерфейсом (см. issue2021
). Если вы хотите добавить его в свою установку Glances, следуйте инструкциям: issue2021comment
. В Glances версии 4 и выше путь к файлу статики настраивается (см. issue2612
).
Чтобы установить бинарный пакет:
# pkg install py39-glances
Чтобы установить Glances из портов:
# cd /usr/ports/sysutils/py-glances/
# make install clean
Если вы не хотите использовать сценарий glatsautoinstall, выполните следующую процедуру.
Пользователи macOS могут установить Glances с помощью Homebrew
или MacPorts
.
$ brew install glances
$ sudo port install glances
Установите Python для Windows (Python 3.4+ поставляется с pip), а затем выполните следующую команду:
$ pip install glances
Вам понадобится рутированное устройство и приложение Termux (доступно в магазине Google Play).
Запустите Termux на своем устройстве и введите:
$ apt update
$ apt upgrade
$ apt install clang python
$ pip install fastapi uvicorn jinja2
$ pip install glances
И запускаем Взгляды:
$ glances
Вы также можете запустить Glances в режиме сервера (-s или -w), чтобы удаленно контролировать ваше устройство Android.
Чтобы установить Glances из исходного кода:
$ pip install https://github.com/nicolargo/glances/archive/vX.Y.tar.gz
Примечание . Для установки psutil необходимы заголовки Python.
Для мониторинга вашей инфраструктуры доступна потрясающая кулинарная книга Chef
: https://supermarket.chef.io/cookbooks/glances (спасибо Антуану Руйеру).
Вы можете установить Glances с помощью Puppet
: https://github.com/rverchere/puppet-glances.
Доступна роль Glances Ansible
: https://galaxy.ansible.com/zaxos/glances-ansible-role/.
Для автономного режима просто запустите:
$ glances
Для режима веб-сервера выполните:
$ glances -w
и введите URL-адрес http://<ip>:61208
в своем любимом веб-браузере.
Для режима клиент/сервер запустите:
$ glances -s
на стороне сервера и запустите:
$ glances -c < ip >
на клиенте один.
Вы также можете обнаружить и отобразить все серверы Glances, доступные в вашей сети или определенные в файле конфигурации:
$ glances --browser
Вы также можете вывести необработанную статистику на стандартный вывод:
$ glances --stdout cpu.user,mem.used,load
cpu.user: 30.7
mem.used: 3278204928
load: {'cpucore': 4, 'min1': 0.21, 'min5': 0.4, 'min15': 0.27}
cpu.user: 3.4
mem.used: 3275251712
load: {'cpucore': 4, 'min1': 0.19, 'min5': 0.39, 'min15': 0.27}
...
или в формате CSV благодаря опции stdout-csv:
$ glances --stdout-csv now,cpu.user,mem.used,load
now,cpu.user,mem.used,load.cpucore,load.min1,load.min5,load.min15
2018-12-08 22:04:20 CEST,7.3,5948149760,4,1.04,0.99,1.04
2018-12-08 22:04:23 CEST,5.4,5949136896,4,1.04,0.99,1.04
...
или в формате JSON благодаря опции stdout-json (атрибут не поддерживается в этом режиме, чтобы на выходе был реальный объект JSON):
$ glances --stdout-json cpu,mem
cpu: {"total": 29.0, "user": 24.7, "nice": 0.0, "system": 3.8, "idle": 71.4, "iowait": 0.0, "irq": 0.0, "softirq": 0.0, "steal": 0.0, "guest": 0.0, "guest_nice": 0.0, "time_since_update": 1, "cpucore": 4, "ctx_switches": 0, "interrupts": 0, "soft_interrupts": 0, "syscalls": 0}
mem: {"total": 7837949952, "available": 2919079936, "percent": 62.8, "used": 4918870016, "free": 2919079936, "active": 2841214976, "inactive": 3340550144, "buffers": 546799616, "cached": 3068141568, "shared": 788156416}
...
и RTFM, всегда.
Полную документацию можно найти на сайте readthedocs.
Если у вас есть вопросы (после RTFM!), задайте их на официальном форуме вопросов и ответов.
Glances может экспортировать статистику в: файл CSV
, файл JSON
, InfluxDB
, Cassandra
, CouchDB
, OpenTSDB
, Prometheus
, StatsD
, ElasticSearch
, RabbitMQ/ActiveMQ
, ZeroMQ
, Kafka
, Riemann
, Graphite
и сервер RESTful
.
Если вы хотите внести свой вклад в проект Glances, прочитайте эту вики-страницу.
Также есть чат, посвященный разработчикам Glances:
Николас Хеннион (@nicolargo) <[email protected]>
Glances распространяется по лицензии LGPL версии 3. Подробнее см. COPYING
.