De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
Colaboração: Rubens Queiroz de Almeida
Data de Publicação: 01 de março de 2018
Outra possibilidade muito interessante, que pode ser facilmente implementada com Shell scripts, é verificar se todos os serviços (DNS, Apache, MySQL, etc) estão funcionando corretamente.
O princípio é o mesmo, insiro em um arquivo os nomes de todos os serviços
que desejo monitorar e por meio do laço while
e da estrutura de decisão
if
, faço uma busca na lista de processos pelo nome do serviço. Se eu
não encontrar o serviço, é sinal de problema.
$ cat check_services.sh
#!/bin/bash
# check_services.sh v1.0
Servidor=www.dicas-l.com.br
while read Servico
do
if ps -ef | grep $Servico | grep -v grep 1>&2 > /dev/null
then
echo $Servico OK
else
echo $Servico está fora do ar
/usr/lib/sendmail queiroz@dicas-l.com.br << EOF
Subject: **URGENTE**: O servico $Servico está fora do ar
From: System Admin <admin@dicas-l.com.br>
O serviço $Servico do $servidor não está
respondendo. Por favor, verifique o que
está ocorrendo o mais rápido possível.
Atenciosamente,
System Administrator
EOF
fi
done < lista_de_servicos.txt
Importante, note que na linha em que usamos o grep
, nós removemos da listagem
o próprio comando grep
, pois este grep
irá constar da lista de processos
justamente com o nome do serviço que estamos pesquisando.
$ ps -ef | grep named
bind 19501 1 0 22:35 ? 00:00:00 /usr/sbin/named -f -u bind
queiroz 19839 16913 0 22:42 pts/0 00:00:00 grep named
Caso queiramos monitorar os serviços Apache, MySQL, DNS, postfix e ssh,
inserimos no arquivo lista_de_servicos.txt
as seguintes linhas:
apache2 mysqld named postfix sshd
Este valores podem variar de um sistema para outro, então, por meio do comando
ps -ef
, veja qual a denominação correta para estes serviços em seu sistema.
Ao executarmos o comando check_services.sh
será ecoado para a tela o
resultado da verificação:
$ ./check_services.sh
apache2 OK
mysqld OK
named está fora do ar
postfix está fora do ar
sshd OK
Para todos os serviços que não estiverem operantes, será enviado um email de alerta para o administrador.
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
Comentários