Dashboard de terminal para acompanhar vários servidores Debian por SSH. A coleta usa psutil remotamente quando disponível e troca automaticamente para /proc, df, systemctl e ss quando o pacote não está instalado.
O MVP é somente leitura: ele não instala pacotes, reinicia serviços nem modifica os servidores.
- CPU, memória, swap, load average, uptime e discos.
- Interfaces e processos principais quando
psutilestiver disponível. - Serviços systemd com falha e portas em escuta pelo fallback.
- Estados separados para timeout, autenticação, host key e erro de coleta.
- Coleta concorrente sem congelar o dashboard.
- Filtro, atualização manual com
re detalhes por servidor. - Última leitura válida preservada após falhas temporárias.
- Host central Linux com Python 3.11 ou superior.
- Acesso SSH aos servidores Debian.
python3nos servidores remotos.psutilremoto é opcional; no Debian pode ser instalado comapt install python3-psutil.
sudo apt update
sudo apt install python3 python3-venv
python3 -m venv .venv
. .venv/bin/activate
pip install -e .Copie o exemplo e limite sua leitura ao proprietário:
cp inventory.example.yaml inventory.yaml
chmod 600 inventory.yamlEdite inventory.yaml:
settings:
refresh_interval: 10
ssh_timeout: 5
max_concurrency: 10
warning_threshold: 80
critical_threshold: 90
servers:
- name: web-01
host: 192.168.1.20
port: 22
username: monitor
password: "sua-senha"As senhas não são exibidas no painel nem incluídas intencionalmente nos erros. Ainda assim, o inventário contém texto sensível e deve usar permissão 0600.
Por segurança, o programa rejeita hosts ausentes do known_hosts. Conecte uma vez manualmente e confirme a fingerprint:
ssh monitor@192.168.1.20Em automações, ssh-keyscan pode coletar a chave, mas a fingerprint precisa ser conferida por um canal confiável antes de adicioná-la:
ssh-keyscan -H 192.168.1.20fleet-monitor --inventory inventory.yamlTambém é possível executar:
python3 -m fleet_monitor --inventory inventory.yamlAtalhos:
r: atualizar agora./: focar o filtro.Enter: abrir os detalhes da linha.q: sair.
Para coletar uma vez e exportar o resultado sem abrir o dashboard:
fleet-monitor --inventory inventory.yaml --export json
fleet-monitor --inventory inventory.yaml --export csv --export-path /tmp/snapshot.csvSem --export-path, o arquivo é gravado como snapshot.json ou snapshot.csv no diretório atual.
pip install -e '.[test]'
pytest -v
python3 -m compileall fleet_monitorOs testes usam executores falsos e não precisam de servidores SSH reais.
O planejamento publico esta em docs/ROADMAP.md. As primeiras evolucoes previstas sao autenticacao por chave SSH, exportacao JSON/CSV e alertas externos para estados criticos.
- O fallback depende de
python3,/proce ferramentas usuais do Debian. - Senhas ficam no inventário; uma evolução recomendada é suporte a chaves SSH e cofre de segredos.
- Não há banco de dados, gráficos históricos ou alertas externos.