23 de nov de 2007

Servidor de monitoramento de rede com Ubuntu e the Dude

Na nova empresa que trabalho, as pessoas são um pouco fanáticas por windows. Quase o mesmo tanto que eu sou por linux :P

Pois bem. Estava eu pensando em como montar um sistema para monitorar uma grande rede, com diversos tipos de equipamentos, onde todos os dias são adicionados e retirados vários ips, com serviços pulando de uma máquina para outra.Pela ordem que testei:
WEBMIN, Simples. Muito simples. Simples de mais. Mas não me atende. Queria mais.
MON, um pouco melhor, mas deixa muito a desejar.
NAGIOS, Bom, MUITO BOM ! BOM DE MAIS !!!
NAGMIN+NAGIOS+NAGIOSGRAPH, Caramba ! PERFEITO ! Mas tão complicado para configurar. Tão complicado!
Queria uma ferramenta mais prática, onde mesmo um leigo possa adicionar novos equipamentos, criar monitores, ver o estado geral... tipo o DUDE. Ei. pera lá. Wine... hum... só usei para emular jogos do windows até agora...
Bem, porque não... Um AMD Sempron(tm) 2600+(1,8 Ghz) com 225 mb de memória e um disco IDE qualquer.
Tá, mas qual distro? Acabei escolhendo Ubuntu. Porque já estava instalado na máquina. Li e reli a internet encontrei problemas com instalação do wine se for atualizado o kernel depois, e como a máquina ainda não tinha o wine instalado, comecei.
Abri um shell e taquei ficha:
$ sudo apt-get update
$ sudo apt-get dist-upgrade
$ sudo reboot
... Abri um shell de novo, e continuei, seguindo as recomendações da Mikrotik, executei:
$ sudo apt-get install msttcorefonts wine vncserver
$ sudo adduser dude
Digitei uma senha grande qualquer
$ xhost +
$ su - dude
Caramba, ainda bem que anotei a senha...
$ export DISPLAY:0
$ vncpasswd
Digitei de novo a senha grande ;P
$ winecfg
Note que estou executando todos esses últimos comandos com o usuário recem criado dude. Abrindo o winecfg, o que criou automaticamente os diretórios e configurações do wine para o usuário dude. Na tela de configuração do wine, alterei o que se segue:
Aba Aplication: Opção Window: Alterado para Windows 2000
Aba Graphics: Opção Vertex Shader Suport: Selecionado None
Aba Graphics:
Opção Allow Pixel Shader: Desmarcado
Aba Audio: Desmarcada TODAS as opções de áudio. Não quero meu servidor tocando musicas!
Cliquei em OK, fechando o winecfg
Então baixei o instalador do DUDE:
$ wget http://www.mikrotik.com/download/dude-install-3.0beta7.exe
e copiei as fontes da MS como está no site da Mikrotik
$ cp /usr/share/fonts/truetype/msttcorefonts/* ~/.wine/drive_c/windows/fonts/
Iniciado a instalação do DUDE:
$ wine dude-install-3.0beta7.exe
Fiz ao melhor formato YANO (yes, accept, next, ok), somente desmarcando a última parte, onde falava que ia rodas o DUDE ao final da instalação, como monstra a figura abaixo:
Após desmarcar a opção para rodar o DUDE e clicar em Finish, reiniciei o windows da minha máquina:
$ wineboot -r
E rodei o DUDE como servidor para ver se estava tudo ok
$ wine ~/.wine/drive_c/Arquivos\ de\ programas/Dude/dude.exe --server
Mesmo assim, apareceu um erro do ALSA, mas não dei importância.
Sai do usuário dude com um CTRL+d
Então criei o arquivo /etc/init.d/dude, com o comando
$ sudo gedit /etc/init.d/dude
E coloquei em seu corpo:

#! /bin/bash

USUARIO=dude
EXECUTAVEL="/home/${USUARIO}/.wine/drive_c/Arquivos\ de\ programas/Dude/dude.exe"
LOG="/var/log/dude.log"
PIDDIR="/var/run"
VNCSERVERDISPLAY="1024"


# ------------------------------------------------------
set -e
. /lib/lsb/init-functions

case "$1" in
start)
log_daemon_msg "Iniciando DUDE" "dude"
## Isso abaixo deste ponto eh em uma linha soh
/bin/su - $USUARIO -c "vncserver -name Dude -depth 8 -geometry 20x20 :1024 ; export DISPLAY=:${VNCSERVERDISPLAY} ;wine ${EXECUTAVEL} --server &" 2 > ${LOG}
## Isso acima deste ponto eh em uma linha soh
#dando tempo para o dude iniciar com o wine
sleep 50
pidof dude.exe > $PIDDIR/dude.pid

;;
stop)
log_daemon_msg "Parando DUDE"
if start-stop-daemon --stop --quiet --oknodo --pidfile $PIDDIR/dude.pid; then
#dando tempo para o dude gravar as informações
sleep 50
/bin/su - $USUARIO -c "vncserver -kill :${VNCSERVERDISPLAY}"
log_end_msg 0
else
log_end_msg 1
fi
;;
*)
log_action_msg "Usage: $1 {start|stop}"
exit 1
esac

exit 0

Salvei o arquivo e dei permissão a ele
$ sudo chmod 700 /etc/init.d/dude
Criei as entradas corretas nos rc.s com
$ sudo update-rc.d dude start 99 2 3 4 5 . stop 01 0 1 2 3 4 5 6 .
Iniciei o serviço com
$ sudo /etc/init.d/dude start
Ótimo, o servidor está pronto.
É só instalar o programa em modo cliente em qualquer máquina e conectar no novo servidor. Continuará...
Postar um comentário