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.662 ]

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

Instalando um servidor Openfire no Debian para liberação de MSN via Spark em uma rede Windows

Atualizando Compiz Fusion em Sabayon Linux

Arch Linux com LVM e encriptação na raiz - Instalação

Projeto Sentinela

Otimizando o Sabayon Linux (inclusive o Firefox)

  
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