Este artigo trata do restartd, software que monitora os serviços que rodam em sua máquina e, em caso de queda de algum deles, reinicia o mesmo automaticamente.
# Restartd configuration file
#
#
# Format:
#
# <process_name> <regexp> <action_if_not_running> <action_if_runni ng>
#
# process_name: The name of the process. Just for logging, doesnt take effect fo r the regexp
#
# regexp: the POSIX regular expression for the command line of the process
#
# action_if_not_running: a script or program name to exec if regexp does not mat ch for the full process command line
#
# action_if_running: a script or program name to exec if regexp matches for the full process command line
#
#
# example:
#
# restartd ".*restartd" "/bin/echo 'its not running' > /tmp/restartd.out " "/bin/echo 'its running' > /tmp/restartd.out"
#
dhcpd ".*dhcp" "/bin/sh /etc/restartd/dhcp.restartd" "/bin/echo dhcp 'its not running' > /tmp/restartd.out "
exim4 ".*exim" "/bin/sh /etc/restartd/exim4.restartd" "/bin/echo 'exim4 its not running' > /tmp/restartd.out "
named ".*named" "/bin/sh /etc/restartd/named.restartd" "/bin/echo 'bind its not running' > /tmp/restartd.out "
ntpd ".*ntpd" "/bin/sh /etc/restartd/ntpd.restartd" "/bin/echo 'ntpd 'its not running' > /tmp/restartd.out "
psad ".*psad" "/bin/sh /etc/restartd/psad.restartd" "/bin/echo 'psad its not running' > /tmp/restartd.out "
snort ".*snort" "/bin/sh /etc/restartd/snort.restartd" "/bin/echo 'snort its not running' > /tmp/restartd.out "
sshd ".*sshd" "/bin/sh /etc/restartd/ssh.restartd" "/bin/echo 'ssh its not running' > /tmp/restartd.out "
O exemplo acima é uma configuração que utilizo no firewall, a configuração do programa é muito simples, por exemplo:
O serviço DHCP, caso não esteja rodando, execute "/bin/sh /etc/restartd/dhcp.restartd":
# vim /etc/restartd/dhcp.restartd
#!/bin/bash
# ATRIBUI OS IPS A LAN
DATE=`date "+%d%b%Y"`
/bin/echo $DATE "DHCP: O SERVIÇO NÃO ESTA RODANDO!" >> /var/log/restartd/dhcp.out
sh /etc/init.d/dhcp restart
O script /etc/restartd/dhcp.restart foi um script que montei para os parâmetros de configuração do programa ficarem mais simples e eficiente.
Para cada serviço criei um script diferente, também alterei o conf /etc/init.d/restartd (PARAMS="-i 10"), para checagem a cada 10 segundos.
[1] Comentário enviado por jalexandre em 17/04/2006 - 19:35h
Ferramenta de preguiçoso :)
Porém, a primeira regra do bom sysadmin é justamente ser preguiçoso :) :) :)
Cara, gostei dessa ferramenta, vai me ajdar bastante.
[ ] 's
[2] Comentário enviado por sirelven em 17/04/2006 - 20:30h
Ola
Não conhecia este software, uso um outro, o monit. Ele é bastante completo, podendo enviar email para o admin, restartar serviços, monitorar outros e executar comandos personalizados.
Por exemplo, um serviço é monitorado de minuto em minuto. Ele para uma vez, é reiniciado, ele para de novo, é reiniciado de novo, ele para mais uma vez, o monit para de monitorar este serviço, executa comandos que ativam uma maquina reserva e dispara emails para o admin do sistema.
É uma ferramenta mais completa, embora requeira mais estudo da sua configuração.
Até +
[6] Comentário enviado por mlegidio em 18/04/2006 - 07:23h
Ae Marcos blz... parabens pelo artigo ficou mto bom. Desejo saber se o restartd pode monitorar servicos de outros servidores. Acho q isso seria mto bom, pois assim o servidor ficaria livre de pelo menos mais um servico ;-)
T+
[7] Comentário enviado por gnu em 18/04/2006 - 09:26h
Parabés pelo artigo. Realmente muito útil. Aqui me acontece do named parar de vez em quando. Esses dias ainda comentava com um amigo sobre a existencia de alguma maneira de monitorar os serviços e reinicia-los quando eles parassem. Agora vc me deu a resposta. Obrigado.
[8] Comentário enviado por DooM em 18/04/2006 - 13:47h
Muito interessante e util o artigo. Parece ser simples e eficiente.
Achei interessante tambem o comentario sobre o MONIT, parece ser bem mais poderoso.
Bom artigo.