Pesquisa de site

Web VMStat: uma ferramenta de monitoramento de estatísticas do sistema em tempo real (memória, CPU, processos, etc.) para Linux


Web-Vmstat é um pequeno aplicativo escrito em Java e HTML que exibe estatísticas ao vivo do sistema Linux, como Memória, CPU, I /O, Processos, etc. assumidos pela linha de comando de monitoramento vmstat em uma linda página da Web com gráficos (SmoothieCharts) e diagramas por meio de fluxos WebSocket usando o programa websocketd.

Gravei uma rápida análise em vídeo do que o aplicativo pode fazer em um sistema Gentoo.

Requisitos

Em um sistema Linux, os seguintes utilitários devem ser instalados.

  1. Um wget para recuperar arquivos usando protocolos HTTP, HTTPS e FTP.
  2. Editor de texto CLI Nano ou VI.
  3. Descompacte o extrator de arquivo.

Este tutorial irá guiá-lo na instalação do aplicativo Web-Vmstat no CentOS 6.5, mas o procedimento é válido para todas as distribuições Linux, as únicas coisas que diferem são apenas o scripts init (opcional), que ajudam a gerenciar com mais facilidade todo o processo.

Leia também: Monitore o desempenho do Linux usando comandos Vmstat

Etapa 1: Instale o Web-Vmstat

1. Antes de prosseguir com a instalação do Web-Vmstat, certifique-se de ter todos os comandos necessários acima instalados em seu sistema. Você pode usar o gerenciador de pacotes como yum, apt-get, etc. para instalá-lo. Por exemplo, em sistemas CentOS, usamos o comando yum para instalá-lo.

yum install wget nano unzip

2. Agora vá para a página oficial do Veb-Vmstat em e baixe a versão mais recente usando o botão Download ZIP ou use wget para baixar da linha de comando.

wget https://github.com/joewalnes/web-vmstats/archive/master.zip

3. Extraia o arquivo master.zip baixado usando o utilitário unzip e entre na pasta extraída.

unzip master.zip
cd web-vmstats-master

4. O diretório Web contém os arquivos HTML e Java necessários para a aplicação ser executada em um ambiente Web. Crie um diretório em seu sistema onde deseja hospedar os arquivos da Web e mova todo o conteúdo da Web para esse diretório.

Este tutorial usa /opt/web_vmstats/ para hospedar todos os arquivos da web do aplicativo, mas você pode criar qualquer caminho arbitrário em seu sistema que desejar, apenas certifique-se de manter o caminho da web absoluto.

mkdir /opt/web_vmstats
cp -r web/* /opt/web_vmstats/

5. O próximo passo é baixar e instalar o programa de streaming websocketd. Vá para a página oficial do WebSocket e baixe o pacote de acordo com a arquitetura do seu sistema (Linux 64 bits, 32 bits ou ARM).

No sistema de 32 bits
wget https://github.com/joewalnes/websocketd/releases/download/v0.2.9/websocketd-0.2.9-linux_386.zip
No sistema de 64 bits
wget https://github.com/joewalnes/websocketd/releases/download/v0.2.9/websocketd-0.2.9-linux_amd64.zip

6. Extraia o arquivo WebSocket com o comando unzip e copie o binário websocketd para um caminho executável do sistema para disponibilizá-lo No âmbito do sistema.

unzip websocketd-0.2.9-linux_amd64.zip
cp websocketd /usr/local/bin/

7. Agora você pode testá-lo executando o comando websocketd usando a seguinte sintaxe de comando.

websocketd --port=8080 --staticdir=/opt/web_vmstats/ /usr/bin/vmstat -n 1

Descrição de cada parâmetro explicado abaixo.

  1. –port=8080: Uma porta usada para conexão no protocolo HTTP – você pode usar qualquer número de porta que desejar.
  2. –staticdir=/opt/web_vmstats/: O caminho onde todos os arquivos da web Web-Vmstat estão hospedados.
  3. /usr/bin/vmstat -n 1: Um comando Linux Vmstat que atualiza seu status a cada segundo.

Etapa 2: criar arquivo de inicialização

8. Esta etapa é opcional e só funciona com sistemas com suporte para script init. Para gerenciar o processo WebSocket como um daemon do sistema, crie um arquivo de serviço init no caminho /etc/init.d/ com o seguinte conteúdo.

nano /etc/init.d/web-vmstats

Adicione o seguinte conteúdo.

#!/bin/sh
source function library
. /etc/rc.d/init.d/functions
start() {
                echo "Starting webvmstats process..."

/usr/local/bin/websocketd --port=8080 --staticdir=/opt/web_vmstats/ /usr/bin/vmstat -n 1 &
}

stop() {
                echo "Stopping webvmstats process..."
                killall websocketd
}

case "$1" in
    start)
       start
        ;;
    stop)
       stop
        ;;
    *)
        echo "Usage: stop start"
        ;;
esac

9. Após a criação do arquivo, anexe as permissões de execução e gerencie o processo usando as opções iniciar ou parar.

chmod +x /etc/init.d/web-vmstats
/etc/init.d/web-vmstats start

10. Se o seu Firewall estiver ativo, edite o arquivo /etc/sysconfig/iptables do firewall e abra a porta usada pelo processo websocketd para torná-lo disponível para conexões externas.

nano /etc/sysconfig/iptables

Se você usar a porta 8080 como neste tutorial, adicione a seguinte linha ao arquivo iptables após a regra que abre a porta 22.

-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT

11. Para finalizar todo o processo reinicie o serviço iptables para aplicar a nova regra.

service iptables restart
service web-vmstats start

Abra um navegador e use o seguinte URL para exibir as estatísticas do sistema Vmstats.

http://system_IP:8080

12. Para exibir nome, versão e outros detalhes sobre sua máquina atual e o sistema operacional em execução nela. Vá para o caminho dos arquivos Web-Vmstat e execute os seguintes comandos.

cd /opt/web_vmstats
cat /etc/issue.net | head -1 > version.txt
cat /proc/version >> version.txt

13. Em seguida, abra o arquivo index.html e adicione o seguinte código javascript antes da linha

.

nano index.html

Use o seguinte código JavaScript.

<div align='center'><h3><pre id="contents"></pre></h3></div>
<script>
function populatePre(url) {
    var xhr = new XMLHttpRequest();
    xhr.onload = function () {
        document.getElementById('contents').textContent = this.responseText;
    };
    xhr.open('GET', url);
    xhr.send();
}
populatePre('version.txt');
                </script>

14. Para visualizar o resultado final, atualize a página da web http://system_IP:8080 e você deverá ver informações e estatísticas ao vivo sobre sua máquina atual, como nas capturas de tela abaixo.