Glances é uma ferramenta de monitoramento de plataforma cruzada de sistema de código aberto. Ele permite o monitoramento em tempo real de vários aspectos do seu sistema, como CPU, memória, disco, uso da rede, etc. Também permite o monitoramento de processos em execução, usuários logados, temperaturas, tensões, velocidades do ventilador, etc. ele suporta diferentes sistemas de gerenciamento de contêineres, como Docker, LXC. As informações são apresentadas em um painel de fácil leitura e também podem ser utilizadas para monitoramento remoto de sistemas por meio de interface web ou interface de linha de comando. É fácil de instalar e usar e pode ser personalizado para mostrar apenas as informações de seu interesse.
No modo cliente/servidor, o monitoramento remoto pode ser feito via terminal, interface Web ou API (XML-RPC e RESTful). As estatísticas também podem ser exportadas para arquivos ou bancos de dados externos de tempo/valor, CSV ou saída direta para STDOUT.
Glances é escrito em Python e usa bibliotecas para obter informações do seu sistema. É baseado em uma arquitetura aberta onde os desenvolvedores podem adicionar novos plugins ou exportar módulos.
Você pode me ajudar a atingir meus objetivos de melhorar este projeto de código aberto ou apenas dizer "obrigado":
Toda e qualquer contribuição é muito apreciada.
python>=3.9
(use Glances 3.4.x para versão inferior do Python)psutil
(melhor com a versão mais recente)defusedxml
(para fazer o macaco patch xmlrpc)packaging
(para comparação de versões)orjson
(uma alternativa otimizada ao módulo json padrão)Nota para usuários do Python 2
O Glances versão 4 ou superior não suporta Python 2 (e Python 3 <3.9). Use o Glances versão 3.4.x se precisar de suporte para Python 2.
Dependências opcionais:
batinfo
(para monitoramento da bateria)bernhard
(para o módulo de exportação Riemann)cassandra-driver
(para o módulo de exportação Cassandra)chevron
(para o recurso de script de ação)docker
(para o suporte de monitoramento do Containers Docker)elasticsearch
(para o módulo de exportação do Elastic Search)FastAPI
e Uvicorn
(para modo de servidor Web)graphitesender
(para o módulo de exportação de grafite)hddtemp
(para suporte ao monitoramento de temperatura do HDD) [somente Linux]influxdb
(para o módulo de exportação InfluxDB versão 1)influxdb-client
(para o módulo de exportação InfluxDB versão 2)jinja2
(para modelagem, usado internamente pela FastAPI)kafka-python
(para o módulo de exportação Kafka)netifaces
(para o plugin IP)nvidia-ml-py
(para o plugin GPU)pycouchdb
(para o módulo de exportação do CouchDB)pika
(para o módulo de exportação RabbitMQ/ActiveMQ)podman
(para suporte de monitoramento do Containers Podman)potsdb
(para o módulo de exportação OpenTSDB)prometheus_client
(para o módulo de exportação do Prometheus)pygal
(para o módulo de exportação de gráfico)pymdstat
(para suporte RAID) [somente Linux]pymongo
(para o módulo de exportação do MongoDB)pysnmp-lextudio
(para suporte SNMP)pySMART.smartx
(para suporte HDD Smart) [somente Linux]pyzmq
(para o módulo de exportação ZeroMQ)requests
(para portas, plug-ins de nuvem e módulo de exportação RESTful)sparklines
(para a opção de minigráficos do Quick Plugin)statsd
(para o módulo de exportação StatsD)wifi
(para o plugin wifi) [somente Linux]zeroconf
(para o modo de descoberta automática) Existem vários métodos para testar/instalar o Glances em seu sistema. Escolha sua arma!
Glances está no PyPI
. Ao usar o PyPI, você usará a versão estável mais recente.
Para instalar o Glances, basta usar a linha de comando pip
.
Aviso: em sistemas operacionais Linux modernos, você pode receber uma mensagem de erro de ambiente gerenciado externamente ao tentar usar pip
. Neste caso, vá para a seção PipX abaixo.
pip install --user glances
Nota : Os cabeçalhos Python são necessários para instalar o psutil, uma dependência do Glances. Por exemplo, no Debian/Ubuntu o mais simples é apt install python3-psutil
ou, alternativamente, é necessário instalar primeiro o pacote python-dev e o gcc ( python-devel no Fedora/CentOS/RHEL). Para Windows, basta instalar o psutil a partir do arquivo de instalação binário.
Por padrão, o Glances é instalado sem as dependências da interface da Web. Para instalá-lo, use o seguinte comando:
pip install --user 'glances[web]'
Para uma instalação completa (com todos os recursos):
pip install --user 'glances[all]'
Para atualizar o Glances para a versão mais recente:
pip install --user --upgrade glances
O branch de desenvolvimento atual é publicado no índice do pacote test.pypi.org. Se você quiser testar a versão de desenvolvimento (pode ser instável), digite:
pip install --user -i https://test.pypi.org/simple/ Glances
Instale o PipX no seu sistema (apt install pipx no Ubuntu).
Instale o Glances (com todos os recursos):
pipx install 'glances[all]'
O script Glances será instalado na pasta ~/.local/bin.
As imagens do Glances Docker estão disponíveis. Você pode usá-lo para monitorar seu servidor e todos os seus contêineres!
Obtenha o contêiner Glances:
docker pull nicolargo/glances:latest-full
As seguintes tags estão disponíveis:
Execute a última versão do contêiner Glances no modo console :
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
Por padrão, o arquivo /etc/glances/glances.conf é usado (baseado em docker-compose/glances.conf).
Além disso, se quiser usar seu próprio arquivo sights.conf, você pode criar seu próprio 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
Como alternativa, você pode especificar algo parecido com as opções de execução do docker (observe os parâmetros de configuração da variável de ambiente GLANCES_OPT para o comando de inicialização do sights):
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
Onde $HOME/.config/glances/glances.conf é um diretório local que contém seu arquivo sights.conf.
Execute o contêiner no modo de servidor Web :
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
Para obter uma lista completa de opções, consulte a página de documentação do Glances Docker.
O Glances está disponível em muitas distribuições Linux, portanto você poderá instalá-lo usando seu gerenciador de pacotes favorito. Esteja ciente de que quando você usa este método, o pacote do sistema operacional para Glances pode não ser a versão mais recente e apenas plug-ins básicos estão habilitados.
Nota: O pacote Debian (e todas as outras distribuições baseadas em Debian) não incluem mais os arquivos estáticos JS usados pela interface Web (veja issue2021
). Se você deseja adicioná-lo à instalação do Glances, siga as instruções: issue2021comment
. No Glances versão 4 e superior, o caminho para o arquivo estático é configurável (consulte issue2612
).
Para instalar o pacote binário:
# pkg install py39-glances
Para instalar o Glances a partir de portas:
# cd /usr/ports/sysutils/py-glances/
# make install clean
Se você não quiser usar o script sightsautoinstall, siga este procedimento.
Os usuários do macOS podem instalar o Glances usando Homebrew
ou MacPorts
.
$ brew install glances
$ sudo port install glances
Instale o Python para Windows (Python 3.4+ fornecido com pip) e execute o seguinte comando:
$ pip install glances
Você precisa de um dispositivo com acesso root e do aplicativo Termux (disponível na Google Play Store).
Inicie o Termux no seu dispositivo e digite:
$ apt update
$ apt upgrade
$ apt install clang python
$ pip install fastapi uvicorn jinja2
$ pip install glances
E comece o Glances:
$ glances
Você também pode executar o Glances no modo servidor (-s ou -w) para monitorar remotamente seu dispositivo Android.
Para instalar o Glances da fonte:
$ pip install https://github.com/nicolargo/glances/archive/vX.Y.tar.gz
Nota : Os cabeçalhos Python são necessários para instalar o psutil.
Um incrível livro de receitas Chef
está disponível para monitorar sua infraestrutura: https://supermarket.chef.io/cookbooks/glances (graças a Antoine Rouyer)
Você pode instalar o Glances usando Puppet
: https://github.com/rverchere/puppet-glances
Uma função Glances Ansible
está disponível: https://galaxy.ansible.com/zaxos/glances-ansible-role/
Para o modo autônomo, basta executar:
$ glances
Para o modo de servidor Web, execute:
$ glances -w
e insira o URL http://<ip>:61208
no seu navegador favorito.
Para o modo cliente/servidor, execute:
$ glances -s
no lado do servidor e execute:
$ glances -c < ip >
no cliente.
Você também pode detectar e exibir todos os servidores Glances disponíveis na sua rede ou definidos no arquivo de configuração:
$ glances --browser
Você também pode exibir estatísticas brutas no stdout:
$ 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}
...
ou em formato CSV graças à opção 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
...
ou em formato JSON graças à opção stdout-json (atributo não suportado neste modo para ter um objeto JSON real na saída):
$ 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}
...
e RTFM, sempre.
Para documentação completa, dê uma olhada no site readthedocs.
Se você tiver alguma dúvida (depois do RTFM!), poste-a no fórum oficial de perguntas e respostas.
O Glances pode exportar estatísticas para: arquivo CSV
, arquivo JSON
, InfluxDB
, Cassandra
, CouchDB
, OpenTSDB
, Prometheus
, StatsD
, ElasticSearch
, RabbitMQ/ActiveMQ
, ZeroMQ
, Kafka
, Riemann
, Graphite
e servidor RESTful
.
Se você quiser contribuir com o projeto Glances, leia esta página wiki.
Há também um chat dedicado aos desenvolvedores do Glances:
Nicolas Hennion (@nicolargo) <[email protected]>
Glances é distribuído sob a licença LGPL versão 3. Consulte COPYING
para obter mais detalhes.