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.
- Um wget para recuperar arquivos usando protocolos HTTP, HTTPS e FTP.
- Editor de texto CLI Nano ou VI.
- 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.
- –port=8080: Uma porta usada para conexão no protocolo HTTP – você pode usar qualquer número de porta que desejar.
- –staticdir=/opt/web_vmstats/: O caminho onde todos os arquivos da web Web-Vmstat estão hospedados.
- /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.