Instalação e configuração do MON

O MON é utilizado para monitorar (remota ou localmente) serviços em servidores e disparar ações conforme os eventos.

[ Hits: 24.390 ]

Por: Osimar Medeiros em 10/10/2010 | Blog: http://databunch.wordpress.com


Introdução



O MON é utilizado para monitorar (remota ou localmente) serviços em servidores e disparar ações conforme os eventos. O MON possui vários scripts monitores e alerts. Você pode montá-los em Perl ou shell script, similarmente ao Nagios.

Os scripts podem ser complexos a ponto de executarem queries pré-definidas em bancos de dados remotos ou também enviar emails de alerta ao sysadmin.

Este é um processo de instalação, não necessariamente um artigo.

O MON foi instalado e configurado em sua versão 0-99-2.6 e testado no Debian 4.0 e 5.0, 32 bits.

O MON não é um substituto do Nagios. Pode ser usado com o Nagios, com SNMP.

É comumente usado com o Heartbeat para monitoramento de load balancers.

Instalando o MON

Em distribuições baseadas no Debian, basta usar o apt-get ou aptitude:

# aptitude install mon

Em seguida, interrompa o serviço:

# /etc/init.d/mon stop

Os scripts têm seus diretórios pré-definidos:
  • /usr/lib/mon/mon.d -> armazena os scripts monitores (.monitor), que executam a checagem de algum serviço.
  • /usr/lib/mon/alert.d -> armazena os scripts alert (.alert), responsáveis por executar alguma ação quando identificado o problema (subir um daemon, reiniciar um serviço etc).

São criados na instalação e preenchidos com vários scripts. Você pode utilizá-los ou criar seus próprios em Perl ou shell script.

Configurando o MON

Configurando o arquivo /etc/mon/mon.cf:

serverbind = localhost
trapbind = localhost
cfbasedir = /etc/mon
alertdir= /usr/lib/mon/alert.d
mondir = /usr/lib/mon/mon.d
maxprocs = 20
histlength = 100
randstart = 60s
hostgroup localnode localhost
watch localhost

   service http
      description Monitoramento do apache
      interval 1m
      monitor http.monitor -p 80 -t 10 -o localhost
      period wd {Mon-Sun}
         alert apache2.alert
         alert file.alert -d /var/log/mon http.alert.log

Explicando o mon.cf:

O arquivo /etc/mon/mon.cf é onde se define que servidores fazem bind, por quais portas e que rotinas de monitoramento são executadas, em que intervalo de tempo e o que acontece em caso de problemas.
  • hostgroup => define um nome de grupo de hosts a serem monitorados.
  • localgroup => nome do grupo monitorado.
  • localhost => nome do servidor pertencente ao grupo localhost, definido dentro do hostgroup (cláusula de definição).
  • watch => define quais serviços serão monitorados. O nome definido no parâmetro service dentro do watch deve ser o nome do script monitor, sem a extensão .monitor e deve constar no mondir, definido acima. Ou seja, em /usr/lib/mon/mon.d deve existir um script chamado http.monitor (neste exemplo).
  • service => este parâmetro é exatamente o nome do script existente sob /usr/lib/mon/mon.d, sem a extensão .monitor.
  • description => permite fornecer uma descrição para a checagem sendo realizada. Para controle pessoal do usuário.
  • interval => intervalo de tempo entre as checagens. 1m = 1 minuto. 1h = 1 hora, e assim por diante.
  • period => período em que a checagem deve ser executada. É possível especificar horários ou períodos diferenciados. A sintaxe correta de como o período desejado pode ser especificado pode ser consultada na página de manual do módulo Perl Time::Period, acessível através do comando:

    man Time::Period

    O timeperiod não pode ser setado para dias iguais. Por exemplo: wd {Mon-Mon}

  • alert => esta cláusula permite especificar alertas a serem gerados quando o script monitor retornar um valor diferente de zero (quando retornar um erro). O script definido nesta cláusula deve estar no alertdir setado acima. Neste caso, em /usr/lib/mon/alert.d/. A cláusula file.alert é um script que gera um arquivo de log no endereço setado e com o nome de arquivo definido. Neste caso: /var/log/mon/http.alert.log.

Permissões

Para usar o MON como monitoramento de serviços como Apache, é necessário habilitar o usuário mon, criado na instalação, como pertencente ao grupo root. Para fazer isto, edite o arquivo /etc/group:

# vim /etc/group

Acrescente à linha que contiver este conteúdo root:x:0: o usuário mon. Ficará assim:

root:x:0:mon

Ou execute o comando:

# usermod -o -G root mon

Permissões - /etc/passwd:

Caso editar o /etc/group não resolva e continuem ocorrendo erros de permissão ao executar os alerts, edite o arquivo /etc/passwd. Veja como deve ficar a linha, abaixo:

mon:x:0:0::/var/lib/mon:/bin/false

    Próxima página

Páginas do artigo
   1. Introdução
   2. Executando o MON
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

DNS BIND para integração em domínios AD (com Windows Active Directory ou Samba)

Apache + PHP + MySQL + ftpd no OpenBSD

Baixando ISOs-Linux em altíssima velocidade

Instalando o CACIC no Debian Linux

Compilando o MSN-Proxy no CentOS/Red Hat 5

  
Comentários
[1] Comentário enviado por alexpoilt em 16/12/2010 - 23:33h

Osimar,

segui o seu tutorial, mas na parte de executar na mão mesmo o script apache2.alert, da o erro:
# ./apache2.alert
./apache2.alert: line 13: /var/log/mon/apache.alert.pid: No such file or directory
Stopping httpd: [ OK ]
Starting httpd: [ OK ]

O que devo fazer?

[2] Comentário enviado por osimar em 17/12/2010 - 08:14h

Execute o comando como root.

Veja que é possível interromper e reiniciar o apache como usuário normal, mas para criar um arquivo no diretório /var/log é necessário ser root. Veja abaixo o exemplo:


osimar@osimar-ti:/$ touch /var/log/teste.log
touch: cannot touch `/var/log/teste.log': Permission denied
osimar@osimar-ti:/$ /etc/init.d/apache2 stop
* Stopping web server apache2 [ OK ]
osimar@osimar-ti:/$


Perceba que para criar o arquivo no diretório /var/log é necessário ser root, mas para parar o apache, não.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts