Monitorando servidores (Windows e Linux)

Antes do artigo em si, queria dizer que estou apresentando um texto onde trato não só de máquinas com plataforma Linux, mas de máquinas com plataforma Windows também, pois acredito que vivemos e dependemos do mundo corporativo de uma forma globalizada, se assim posso dizer, e não existe a necessidade de deixarmos de lado qualquer plataforma pensando que encontraremos pela frente um único cenário.

[ Hits: 29.274 ]

Por: Cristiano Miranda em 06/06/2008 | Blog: http://www.cristianoemingles.blogspot.com


Monitorando máquinas com plataforma Linux



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 à 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

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

Página anterior    

Páginas do artigo
   1. Principal
   2. Monitorando máquinas com plataforma Linux
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Criando sites para intranet e trabalhos em equipe com o DokuWiki

Terminais leves com LTSP - Linux Terminal Server Project

Faça um tour pelo aMSN 0.95b

Bacula + Webacula + Bacula-web + bat no CentOS 6.3

Configurando um servidor DNS e DHCP na rede

  
Comentários
[1] Comentário enviado por maran em 06/06/2008 - 14:06h

Quando li a chamada na página do site, pensei que iria entrar aqui e me surpreender com o artigo.
Ficou legalzinhu, mas poderia explorar ferramentas mais legais.
Um abraço.

[2] Comentário enviado por alcarrolikis em 06/06/2008 - 14:17h

Então,

Mas o intuito é apresentar ferramentas/processos funcionais e não legais.

Legal é mexer com Flash, Photoshop/GIMP, 3D/Maya...

Concordam??

héhéhé...

[3] Comentário enviado por stremer em 06/06/2008 - 14:59h

cara eu gostei e realmente é muito legal principalmente em se tratando daqueles servidorzinhos onde você só roda oque quer... ai vc faz este tipo de script e roda...
porém para estas situações isso é valido, mas pra maior parte, as informações são incompletas, ou seja, talvez usando uma ferramenta tipo o nagios seja mais "produtivo".
Mesmo assim gostei do artigo.

[4] Comentário enviado por giocasio em 06/06/2008 - 16:13h

Super interessante. Aqui nos Estados Unidos eu sempre estou buscando informacoes ond epossa aprimorar e incrementar minha maquina (PC) eu digo. Artigo super bem fundamentado. GREAT JOB!

[5] Comentário enviado por alcarrolikis em 06/06/2008 - 16:30h

"Comentário enviado por giocasio em 06/06/2008 - 16:13h:

Super interessante. Aqui nos Estados Unidos eu sempre estou buscando informacoes ond epossa aprimorar e incrementar minha maquina (PC) eu digo. Artigo super bem fundamentado. GREAT JOB! "


OBRIGADO MÃE!!!


huhuhuhuaaaaaaaaaaaaaaaaaaaaaaaaaaa

[6] Comentário enviado por roberva em 09/06/2008 - 13:07h

Cornetando: como nosso amigo tio san: BIG FICKING DEAL

[7] Comentário enviado por junior em 09/06/2008 - 14:51h

O artigo é bom, e monitoração está correto.
Perdoe-me o equívoco.


[8] Comentário enviado por alcarrolikis em 09/06/2008 - 15:06h

By Michaelis:
( http://michaelis.uol.com.br/moderno/portugues/index.php?lingua=portugues-portugues&palavra=monitoraç... )

mo.ni.to.ra.ção
sf (monitorar+ção) 1 Em rádio e televisão, checagem da qualidade de sons, imagens, técnicas operacionais, conteúdos do programa etc., no momento da realização. 2 Acompanhamento permanente da programação.


By Priberam.pt

( http://www.priberam.pt/dlpo/definir_resultados.aspx )

derivação fem. sing. de monitorar
derivação fem. sing. de monitorar


Comentários sem fundamentos, na verdade, que são de doer!!!

Ááááh -> GOOGLE.com.br antes de qualquer coisa hoje em dia!!!

[9] Comentário enviado por thelinux em 10/06/2008 - 09:08h

Excelente informação. Parabéns.

[10] Comentário enviado por moreni em 12/06/2008 - 14:37h

Esta muito bom mas acho que Nagios e Zabbix seram mais produtivos!
Abraços

[11] Comentário enviado por jbrasil em 17/06/2008 - 09:29h

Amigos,
Porquê gerou três informações, referente ao processador ?

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

Obrigado.
JRoberto.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts