Home > Sem categoria > Monitorando Servidores (Windows e Linux)

Monitorando Servidores (Windows e Linux)

Antes do Artigo em sí, queria dizer que estou apresentando um texto extenso, mas que a sua leitura por completo vale muito a pena.

Ao ponto…

Sabemos que em Windows, por exemplo, podemos verificar a Performance da Máquina no que diz respeito a CPU e Memória RAM usada durante um certo período de tempo, através do Gerenciador de Tarefas (Task Manager).
Em máquinas com Plataforma Linux, podemos ver as mesmas, além de outras informações, usando o comando TOP.

Mas muitas vezes temos que documentar esses resultados em um arquivo de texto, por exemplo, para análise posterior visando ações corretivas em caso de problemas ou simplesmente para documentarmos e compartilharmos tais informações por qualquer motivo que seja.

Bom, nesses casos, podemos trabalhar somente com “strings”, através do Prompt de Comando, por exemplo, em máquinas com Plataforma Windows ou ainda criar arquivos com Scripts que se encarreguem de nos trazer os resultado como precisamos.

Vejamos:

Em máquinas com plataforma Windows:

Abra o Prompt do MS-DOS da máquina local e execute a string abaixo:

typeperf “\Memory\Available Mbytes” “\processor(_total)\% processor time” -si 60 -o monitoracao.txt

No caso do exemplo acima, será gerado um arquivo chamado monitoracao.txt e a cada 60 segundos será direcionado ao mesmo, o resultado do teste mostrando o consumo de Memória RAM e Processamento (CPU) em porcento.

Obs: Você poderá deixar o arquivo sendo “alimentado” por quanto tempo for necessário.

Para encerrar o processo, basta digitar CRTL + C .
Para ver o arquivo e seu conteúdo, basta acessar o diretório onde o mesmo foi criado, provavelmente estará em “C:” e

digitar: start monitoracao.txt

Ainda sobre o exemplo acima, há a variável “Memory” disponibilizando dados referente ao objeto solicitado, que é o

“Available Mbytes”. No link abaixo, há uma listagem completa dos objetos disponíveis para utilizar com o Typeperf:
http://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/counters/counters2_tkfn.mspx (basta navegar no link à esquerda).

Existem vários comandos interessantes, como por exemplo:
typeperf “\Memory\Available Mbytes” “\processor(_total)\% processor time” “\memory\Committed Bytes” “\memory\Commit Limit” -si 3 -o teste.txt

…onde “Committed Bytes” são os bytes do arquivo de paginação consumidos e “Commit Limit” é o TOTAL de memória virtual configurado.

Para fazer remotamente este comando de uma outra máquina basta colocar -s NOME DA MÁQUINA ficando assim:

typeperf “\Memory\Available Mbytes” “\processor(_total)\% processor time” -s NOMEDAMÁQUINA -si TEMPO -o monitoracao.txt

Lembrando que:

– NOMEDAMÁQUINA = É o nome da máquina exatamente que você deseja obter tais informações, por exemplo w03dnn0110;

– TEMPO = é o tempo de intervalo entre cada comando. Pode-se colocar de foi formatos: Apenas o número. Será visto nesse caso, como segundos e no formato 00:00

– monitoracao.txt = É o arquivo onde serão gravadas estas informações.

(Obs.: Se não for colocado o parâmetro -o arquivo.txt, o resultado será apresentado na tela do Prompt do MS-DOS mesmo.

Mais detalhes sobre a sintaxe do comando TYPEPERF estão no link à seguir:

http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/nt_command_typeperf.mspx

Em máquinas com plataforma Linux, existe a possibilidade de criarmos um Script e executarmos a qualquer momento, ou agendarmos o mesmo no Crontab do Servidor.

Vamos criar um exemplo onde precisaremos ver o resultado no mesmo momento, ou seja, depois falamos sobre “Agendamento de Jobs no Crontab”.

Ao ponto…

Conecte-se via SSH a máquina Linux em questão.
Caso ainda não tenha feito, logue-se na Área de hospedagem de um Site instalado nessa máquina.
Acesse o diretório onde você deseja armazenar o Script que criaremos e o arquivo com o resultado.

Por exemplo: /home/cristianomiran/public_html/scripts

Crie com o “vi”, um arquivo nomeando somente de “monitoracao”, por exemplo e coloque o conteúdo abaixo:

#!/bin/bash

mfree=0
mswal=0
mtotal=0
stotal=0
contador=0
tempototal=0

Hora() {
echo -n ‘Hora: ‘
date +”%H:%M:%S”
echo -e ” \n ”
}

CPU() {
top -b -n1 | grep total | awk ‘{print “CPU Livre: “$8}’
echo -e ” \n ”
}

Load() {
cat /proc/loadavg | awk ‘{print “Load Average: ” $1 ” ” $2 ” ” $3}’;
echo -e ” \n ”
}

Cabecalho() {
echo -e “Informações do Servidor .:”
echo -e ” \n ”
echo -n “PHP:”
php –version | cut -d”(” -f1 | awk ‘NR==1? | sed ’s/[A-Z]//g’
echo -n “MySQL: ”
mysql –version | cut -d”,” -f1 | sed ’s/ /\n/g’ | tail -n 1
mtotal=$(grep MemTotal /proc/meminfo | awk ‘{print $2}’)
stotal=$(grep SwapTotal /proc/meminfo | awk ‘{print $2}’)
mtotal=$((mtotal / 1024))
stotal=$((stotal / 1024))
echo -e “Swap Total: $stotal MB”
echo -e “Memória Total: $mtotal MB”
uptime | awk ‘{print “Uptime: “$3 ” dias, ” $6 ” usuário(s) logado(s) “}’
cat /proc/cpuinfo | awk ‘NR == 5 {print “Info Processador: “$4 ” “$5 ” ” $6 ” ” $7 ” ” $8 ” ” $9}’
echo -e ” \n ”
}

Memoria() {
mfree=$(grep MemFree /proc/meminfo | awk ‘{print $2}’)
sfree=$(grep SwapFree: /proc/meminfo | awk ‘{print $2}’)
mfree=$((mfree / 1024))
sfree=$((sfree / 1024))
echo -e “Swap Livre: $sfree MB”
echo -e “Memória Livre: $mfree MB”
echo -e ” \n ”
}

Linha() {
echo “==============================================”
echo -e ” \n ”
}

clear

echo -n ‘Informe o intervalo em segundos da monitoração: ‘
read intervalo

echo -n ‘Informe a duração em minutos da monitoração: ‘
read duracao

echo -e ” \n ”

Cabecalho
Linha

tempototal=$((60 / intervalo * duracao))

while [ “$contador” -lt $tempototal ];
do
Hora
CPU
Memoria
Load
Linha

contador=$((contador + 1))

if [ $contador != $tempototal ] ; then
sleep $intervalo
fi
done

Após a criação do arquivo acima, vamos executar o mesmo da seguinte forma:
( Digite no Prompt/Shell )

\. monitoria | tee monitoria_teste.txt

Obs: Mesmo sem termos criado previamente o arquivo que receberá o resultado que solicitamos, o qual no exemplo acima está nomeado como “monitoria_teste.txt”, este será gerado automaticamente.

A partir do momento que setarmos o comando acima, será nos perguntado:

– Informe o intervalo em segundos da monitoração: (Poderá responder 60, o que valerá em 60 segundos, por exemplo)
– Informe a duração em minutos da monitoração: (Poderá responder 60, o que valerá
em 01 hora, por exemplo)

O Script será executado e nessa condição, o Prompt/Shell usado não poderá ser fechado até o fim do processo.

Caso precise continuar usando o Prompt/Shell, abra uma nova instância do Software em questão.

Caso queira interromper o processo, basta usar o famoso CTRL + C .

O arquivo será gerado como precisamos, com o conteúdo solicitado e estará no diretório onde foi criado o arquivo principal, o qual nomeamos aqui como “monitoria”.

Exemplo do conteúdo inserido no arquivo criado para armazenar as informações solicitadas:

===========================================

Informações do Servidor .:

PHP:Out of memory
MySQL: 5.0.22
Swap Total: 7640 MB
Memória Total: 4054 MB
Uptime: 30 dias, 2 usuário(s) logado(s)
Info Processador: Intel(R) Xeon(R) CPU X3220 @ 2.40GHz

===========================================

Hora: 16:47:25

CPU Livre: 0
CPU Livre: 250292k
CPU Livre: 3180620k

Swap Livre: 7636 MB
Memória Livre: 224 MB

Load Average: 0.28 0.31 0.36

===========================================

Compartilhando Informação,

Advertisements
Categories: Sem categoria
  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: