Dica 7 – Script para Monitorar SO Windows

Olá Pessoal,

Hoje estou aqui para mostrar um script que fiz há algum tempo, mas que é muito funcional pra mim.

Sei que estou sem escrever artigos já algum tempo, mas estou tentando não abandonar o projeto e quero fazer desde blog uma fonte de conhecimento sobre o Nagios ok? quem quiser ajudar enviando artigos, dicas, fiquem a vontade. Prometo que publico com todos os créditos.

——————————————————————————————————————————————————

OK Let’s go!

Esse script chamo de check_windows.sh que para quem usa o nsclient++ para monitorar SO Microsoft ajuda bastante. Ao executar este script já tenho uma boa idéía do que preciso monitorar no SO.

O resultado é semelhante a este:

./check_windows.sh 192.168.11.200

O servidor Windows esta com as seguintes portas abertas
80/tcp    open  http
135/tcp   open  msrpc
139/tcp   open  netbios-ssn
445/tcp   open  microsoft-ds
1025/tcp  open  NFS-or-IIS
1248/tcp  open  hermes
3389/tcp  open  ms-term-serv
8080/tcp  open  http-proxy
8081/tcp  open  blackice-icecap
10000/tcp open  snet-sensor-mgmt
161/udp open|filtered snmp

O servidor Windows tem as seguintes Particoes e Processos
Monitorar P.I.N.G
Monitorar Particao C
Monitorar Particao D
Monitorar Particao P
Monitorar processo snmp.exe

Ok, Para este script funcionar corretamente é necessário ter o NMAP instalado no servidor Nagios e o plugin check_nt deve estar em /usr/local/nagios/libexec, no servidor windows a ser monitorado o NSClient++ deve estar instalado e configurado corretamente.

## Execute os comandos abaixo como root

vim check_windows.sh

## Copie e cole toda a parte abaixo 😉

#!/bin/bash

#################################################################
##                                                             ##                                                  ##
##  Luciano Maia Cirilo                                        ##
##  lucianosuper {at} hotmail.com                              ##
##  Script varre Windows e mostra precisa ser monitorado       ##
##                                                             ##                                                  ##
#################################################################

if [ $# = 0 ]
then
echo ""
echo "./check_windows.sh  [IP]"
echo ""
echo "Exemplo:"
echo ""
echo "./check_windows.sh  192.168.98.63"
echo ""
exit 1
fi

### Variavel IP
IP="$1"

particao () {

### Testando Particoes
for i in C D E F G H I J L M N O P Q R S T U V W X Z
do
/usr/local/nagios/libexec/check_nt -H "$IP" -p 1248 -v USEDDISKSPACE -l "$i" -w 50 -c 70 > /tmp/disco.log | > /dev/null
cat /tmp/disco.log | grep -i Used
if [ $? = 0 ]
then
echo "Monitorar Particao $i" >> /tmp/resultadochek.log
else
echo "nada a fazer" > /dev/null
fi
done

}

processos () {

#### Testando Processos
for j in oracle.exe ORACLE.EXE SAPlpd.exe SAPOSCOL.EXE sapstartsrv.exe snmp.exe sqlagent.exe SQLAGENT.EXE sqlbrowser.exe SQLSERVERAGENT sqlservr.exe sqlwriter.exe syslogd.exe tapeeng.exe tcpsvcs.exe TNSLSNR.exe TNSLSNR.EXE tomcat5.exe tomcat6.exe tomcat.exe updaterd.exe
do
/usr/local/nagios/libexec/check_nt -H "$IP" -v PROCSTATE -d SHOWALL -l "$j" > /tmp/processos.log | > /dev/null
cat /tmp/processos.log | grep -i "not running"
if [ $? = 0 ]
then
echo "nada a fazer" > /dev/null
else
echo "Monitorar processo $j" >> /tmp/resultadochek.log
fi
done

}

brincadeira () {

############# Brincando com o Tempo

echo -e "33[1;38;5;001m .33[0m"
echo -e "33[1;38;5;001m ..33[0m"
echo -e "33[1;38;5;001m ...33[0m"
echo -e "33[1;38;5;001m ....33[0m"
echo -e "33[1;38;5;001m .....33[0m"
echo -e "33[1;38;5;001m ......33[0m"
echo -e "33[1;38;5;001m .......33[0m"
echo -e "33[1;38;5;001m ........33[0m"
echo -e "33[1;38;5;001m .........33[0m"
echo -e "33[1;38;5;001m ..........33[0m"
echo -e "33[1;38;5;001m ........... Processando...33[0m"
echo -e "33[1;38;5;001m ..........33[0m"
echo -e "33[1;38;5;001m .........33[0m"
echo -e "33[1;38;5;001m ........33[0m"
echo -e "33[1;38;5;001m .......33[0m"
echo -e "33[1;38;5;001m ......33[0m"
echo -e "33[1;38;5;001m .....33[0m"
echo -e "33[1;38;5;001m ....33[0m"
echo -e "33[1;38;5;001m ...33[0m"
echo -e "33[1;38;5;001m ..33[0m"
echo -e "33[1;38;5;001m .33[0m"

}

final () {

echo ""
echo -e "33[1;38;5;118mO servidor Windows esta com as seguintes portas abertas33[0m"

nmap -sT $IP > /tmp/portas.log
nmap -sU -p 161 $IP >> /tmp/portas.log
cat /tmp/portas.log | grep open
echo ""
echo ""
echo -e "33[1;38;5;118mO servidor Windows tem as seguintes Particoes e Processos 33[0m"

cat /tmp/resultadochek.log
echo ""
echo ""
> /tmp/resultadochek.log

}

#### Testando Ping
ping -qc5 $IP > /dev/null
a=$?

nmap -sT $IP -p 1248 | grep open
b=$?

if [ $a -eq 0 -a $b -eq 0 ]
then
echo "Monitorar P.I.N.G" >> /tmp/resultadochek.log
particao
processos
brincadeira
final
else
brincadeira
echo ""
echo -e "33[1;38;5;001m#### --- ATENCAO Verificar se o IP esta Pingando ou Cliente do Nagios (NSClient - Porta 1248 TCP) Foi instalado --- ####33[0m"
echo ""
fi

##########################################################################

### Ok, agora vamos ajustar a permissão no arquivo

chmod 755 check_windows.sh
## Agora divirta-se 😉

./check_windows.sh IP-servidor-windows

 

OBS: Este script pode e deve ser melhorado, por exemplo na parte de processos você pode acrescentar os que você geralmente monitora no Windows. Detalhe como eu já disse anteriormente não sou especialista em Shell Script então sem críticas ok?

 

Att.
Luciano Maia Cirilo
LPIC-3
www.nagiosnapratica.com.br

Anúncios

  1. #1 por gabriel lonzetti em março 16, 2012 - 8:22 pm

    tche, n testei teu script ainda, mas soh por ver ele jah me parece bem intressante essa tua proposta.
    parabens pela iniciatiiva

  2. #2 por Heverton Medeiros em junho 19, 2012 - 1:10 pm

    Exelente seu site espero que sempre continue com ele, é dificil encontrar tanta informação util e objetiva assim obrigado.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: