yamot é uma ferramenta de monitoramento de servidor baseada na web criada para pequenos ambientes com apenas alguns servidores. É necessário um mínimo de recursos que permita a execução em quase todas as máquinas, também muito antigas. Funciona melhor com Linux ou BSD. O Windows não faz parte do escopo do servidor.

Você poderia usá-lo, por exemplo, para monitorar seus servidores Raspberry Pi em execução em casa. São necessárias apenas algumas etapas de configuração e, depois disso, ele exibe muitos dados relevantes de medição do servidor em seu navegador:

  • Carga do sistema
  • Uso de memória
  • Tempo de inicialização / inicialização
  • Custos (calculados)
  • Bateria (por exemplo, para monitorar um dispositivo móvel)
  • Força do sinal de WiFi
  • Temperaturas
  • Processador (Cores, Velocidade, Usos, …)
  • Sistema (Distro, Versão, Arquitetura,…)
  • Serviços de rede (portas de escuta abertas)
  • Dispositivos de rede e endereços
  • Interfaces de Rede IO (bytes enviados / recebidos)
  • Uso de armazenamento em disco (usado e espaço total)
  • Dispositivo de disco IO (bytes lidos / gravados)
  • Usuários logados (nome, data de login,…)
Todas essas informações são exibidas em tempo real em uma página para fornecer uma visão geral descomplicada. Se você está procurando algo grande, rico em recursos e escalável, você está definitivamente errado aqui. Para uma solução de negócios, dê uma olhada no Nagios .
Arquitetura
arquitetura é dividida em três partes (MVC original)
Componente do Servidor
Este componente precisa ser executado no sistema do servidor que você deseja monitorar. É basicamente um simples servidor web. Por razões de segurança, apenas tem acesso apenas ao sistema. O Auth é feito via HTTP Basic Auth, então não o use em redes não confiáveis!
O componente Servidor fornece apenas dados em tempo real. Não existem tarefas em segundo plano cíclicas ou outras coisas que ocupam o processador / memória / disco. Se você não acessar o servidor, ele não consumirá quase nenhum recurso. O servidor é construído com o Python3, que obviamente precisa ser instalado. A porta do servidor padrão é 9393.
Componente do Controlador
Um servidor precisa ter o papel adicional do controlador. O controlador também é apenas um servidor da Web que fornece uma API REST para gerenciar o aplicativo.
O Auth também é feito via HTTP Basic Auth, então também não use em redes não confiáveis! O controlador é construído com node.js e express.js. Se você não tiver aqueles instalados, você também pode usar o Docker-Image chamado prod . A porta do controlador padrão é 8080.
Componente do cliente
Finalmente, o cliente representa a página da web e é servido pelo controlador (na porta 8080). O cliente é construído com Angular, alguns Bootstrap CSS e um subconjunto de FontAwesome Icons. Um ciclo de atualização para exibir novos dados (a cada 3 segundos por padrão) incorre na solicitação de todos os servidores para obter atualizações dos dados medidos.
                    WebFiles          .--------.
 .--------.-----------REQ------------>|  ____  |
 |  ____  |<----------RES-------------| |====| |
 | |    | |                           | |    | |
 | |____| |        ServerList         | |    | |
 | /::::/ |-----------REQ------------>| |____| |
 '--------'<----------RES-------------'--------'
   Client                             Controller


 .--------.        ServerData       .--------------.
 |  ____  |-----------REQ---------->|  __________  |
 | |    | |<----------RES-----------| |____oooo_°| |        -------.
 | |____| |                         '--------------'               |
 | /::::/ |                              Server 1           ^      |
 |        |                                                 |      |
 |        |        ServerData       .--------------.        |      |
 |        |-----------REQ---------->|  __________  |        '-------
 |        |<----------RES-----------| |____oooo_°| |
 '--------'                         '--------------'
   Client                                Server 2

Primeiros passos
Antes da instalação: Experimente-o via janela de encaixe, há várias imagens de docker disponíveis. Apenas tente aimagem dedemonstração para obter uma primeira impressão. Servidor de 

instalação

 

  1. Instale python3 e psutil e ujson em todos os servidores com sudo apt-get install python3-psutil python3-ujson. Se você não estiver executando um sistema baseado em apt (Debian ou Ubuntu), use em seu sudo pip3 install psutillugar.
  2. Copie o arquivo yamot_server.py para o seu servidor (por exemplo, sob / opt / yamot) e adicione-o a /etc/rc.local como sudo -u nome de usuário dash -c 'cd /opt/yamot && python3 /opt/yamot/yamot_server.py' & na frente da linha “exit 0” (habilitar autoinicialização)
  3. Execute o servidor uma vez interativamente via python3 yamot_server.pypara gerar um arquivo de configuração (precisa de permissão de gravação única na mesma pasta).
  4. Se você estiver executando um firewall em seu servidor (como o ufw), abra a porta especificada sudo ufw allow 9393(a porta padrão é 9393)

Cliente e Controlador

  1. O componente controlador precisa estar em execução em um servidor em sua rede (a mesma rede onde também os servidores estão sendo executados). O servidor que executa o controlador também pode executar o componente do servidor ao mesmo tempo. Use o conteúdo da pasta controller/dist.
  2. Você precisará de uma instalação node.js com o express.js (ou docker, se você usar a imagem prod)
  3. Use node controller.jspara iniciar o controlador e verifique se está funcionando
  4. As credenciais de login serão fornecidas pelo controlador na inicialização no shell.
  5. Agora você também pode adicioná-lo ao início automático do sistema. Não esqueça de abrir a porta se você estiver usando um firewall.
  6. Se tiver concluído, abra o navegador e navegue até http: // ip-of-the-controller-device : 8080 (8080 é a porta do controlador padrão)

Docker
Há três imagens docker disponíveis, que seguem vários propósitos.
Todas as imagens precisam ser construídas a partir do dockerfile correspondente. Apenas use os scripts de shell adicionais.

construir

  • transpila o código do cliente e do controlador para a pasta dist em um ambiente consistente, não há necessidade de construir o servidor

prod

  • contém o controlador e o cliente para uso produtivo, basta adicionar o contêiner à sua infraestrutura docker

demonstração

  • contém todos os componentes para mostrar como o aplicativo deve funcionar
  • URL: http: // localhost: 8080 /
  • credenciais de login:
    • Nome de usuário: yamot
    • Senha: test123
  • O contêiner docker é medido e também um servidor fictício produz dados aleatórios.
  • Todas as alterações serão revertidas na próxima inicialização do contêiner, para que você possa experimentá-lo facilmente.

[sociallocker id=”1005″]

Download

[/sociallocker]