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.


Teste de funcionamento dos serviços

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.

Adicionar comentário

* Campos obrigatórios
5000
Powered by Commentics

Comentários

Nenhum comentário ainda. Seja o primeiro!


Veja a relação completa dos artigos de Rubens Queiroz de Almeida