Blog

Monitorando serviços de rede como http, pop3, imap e outros.

Introdução

Este documento descreve como você pode monitorar serviços publicos disponíveis, aplicações e protocolos. Exemplos de serviços públicos incluem HTTP, POP3, IMAP, FTP, e SSH. Há muitos mais serviços públicos que você provavelmente usa em uma base diária. Estes serviços e aplicações, bem como os respectivos protocolos subjacentes, geralmente podem ser monitorado pelo Nagios sem quaisquer requisitos especiais de acesso.

Serviços particulares, em contraste, não podem ser monitorados com Nagios sem um agente intermediário. Exemplos de serviços privados associados com os hosts são o uso da CPU, uso de memória, uso de disco, a contagem atual dos usuários, informações do processo, etc. Estes serviços privados ou atributos de hosts não são normalmente expostos aos clientes externos. Esta situação exige que um agente de monitoramento intermediário deve ser instalado em qualquer máquina que você precisa monitorar tais informações. Mais informações sobre como monitorar os serviços privados em diferentes tipos de hosts podem ser encontradas na documentação em:

Monitorando máquinas Windows
Monitorando servidores Netware
Monitoramento Linux / Unix máquinas

Dica: Ocasionalmente você vai descobrir que informações sobre serviços privados e aplicações podem ser monitorados com SNMP. O agente SNMP permite monitorar remotamente as informações de outra forma privada (e inacessível) sobre o host. Para mais informações sobre os serviços de monitoramento usando SNMP, verificar a documentação de monitoramento de swiches e roteadores .

Nota: Estas instruções assumem que você instalou o Nagios de acordo com o Guia Rápido incluso neste site . As entradas nos arquivos de configuração abaixo, referência a objetos que são definidos nos exemplos dos arquivos de configurações. Commands.cfg e localhost.cfg

Plugins para monitoramento dos serviços

Quando você acha o que precisa para monitorar um determinado aplicativo, serviço ou protocolo, as chances são boas que um plug-in exista para monitorá-lo. O Nagios vem com plugins que podem ser usados ​​ara monitorar uma variedade de serviços e protocolos. Há também um grande número de plugins que podem ser encontrados no subdirectório de distribuição do plugin. O site NagiosExchange.org abriga uma série de plugins adicionais que foram escritas por usuários.

Se não encontrar um plug-in adequado para monitorar o que você precisa, você sempre pode escrever o seu próprio. Plugins são fáceis de escrever, então não deixe este pensamento assustá-lo. Leia a documentação sobre o desenvolvimento de plugins.

Eu vou levá-lo através do monitoramento de alguns serviços básicos que você provavelmente vai usar mais cedo ou mais tarde. Cada um desses serviços podem ser monitorados através de um dos plugins que é instalado como parte da distribuição de plugins do Nagios. Vamos começar …

Criando uma definição de host

Antes que você possa monitorar um serviço, primeiro é necessário definir o nome do hosts que vai estar associado ao serviço.

Vá em: vi /usr/local/nagios/etc/objetos/windows.cfg ( Este é um exemplo no tamplate para os servidores windows )

define host {

use generic-service; Herda valores padrão de um modelo

host_name  meu_host;

alias  apelido_do_host; A mais nome associado com o host

endereço  192.168.1.50; endereço IP do host

hostgroups  allhosts; grupos máquina está máquina está associada com

}

Agora que a definição foi adicionada para o host, podemos começar a definir os serviços que devem ser monitorados.

Criando definições de serviço

Para cada serviço que você deseja monitorar, você precisa definir um serviço no Nagios que está associado com a definição de host que você acabou de criar. Você pode colocar as definições de um serviço em qualquer arquivo de configuração especificado no Nagios.cfg (cfg_file).

Alguns exemplos de definições de monitoramento de serviços (HTTP, FTP, etc) são apresentados abaixo.

Monitoramento HTTP

Provavelmente, você vai querer monitorar servidores web. O check_http plugin foi projetado para fazer exatamente isso. Ela compreende o protocolo HTTP e pode monitorar o tempo de resposta, erros nos códigos, strings no HTML, certificados de servidor, e muito mais.

O arquivo commands.cfg contém uma definição de comando para usar o check_http plugin. Parece este:

define command {

name check_http

command_name check_http

command_line $ USER1 $ / check_http-I $ $ $ HOSTADDRESS ARG1 $

}

A simples definição de serviço HTTP para monitorar o  host remoto pode ter esta aparência:

define service {

use generic-service; Herda valores padrão de um modelo

host_name  meu_host;

service_description HTTP

check_command check_http

}

Esta definição de serviço irá monitorar o serviço HTTP rodando em host remoto . Ela irá produzir alertas se o servidor web não responder dentro de 10 segundos ou se retorna códigos de erros HTTP (403, 404, etc.) Isso é tudo que você precisa para o monitoramento básico.

Dica: Para um monitoramento mais avançado, execute o plug-in check_http manualmente com – help como um argumento de linha de comando para ver todas as opções que você pode dar ao plugin. Esta (- help) sintaxe funciona com todos os plugins que vão estar neste documento.

Uma definição mais avançada para monitorar o serviço HTTP é mostrado abaixo. Esta definição de serviço verificará se o URI / download / index.php contém a string “versão.tar.gz mais recente”. Ela irá produzir um erro se a string não for encontrada, o URI não é válido, ou o servidor web responde mais do que 5 segundos.

define service {

use generic-service; Herda valores padrão de um modelo

host_name  meu_host;

service_description  Link para download do produto

check_command check_http!-u /download/index.php-t 5-s “recente versão.tar.gz”

}

Monitoramento FTP

Quando você precisa monitorar servidores FTP, você pode usar o plugin check_ftp . O arquivo commands.cfg contém uma definição do plugin check_ftp, que se parece com isso:

define commando {

command_name check_ftp

command_line $ USER1 $ / check_ftp-H $ $ $ HOSTADDRESS ARG1 $

}

A definição de serviço para monitorar o servidor FTP em um host remoto ficaria assim:

define service {

use generic-service; Herdar valores padrão de um modelo

host_name  meu_host;

service_description FTP

check_command check_ftp

}

Esta definição de serviço irá monitorar o serviço de FTP e gerar alertas se o servidor FTP não responder dentro de 10 segundos.

Uma definição de serviço mais avançada é mostrado abaixo. Este serviço irá verificar o servidor de FTP rodando na porta 1023 em host remoto . Ele irá gerar um alerta, se o servidor não responder dentro de 5 segundos ou se a resposta do servidor não conter a string “Pure-ftpd [TLS]”.

define service {

use generic-service; Herdar valores padrão de um modelo

host_name meu_host;

service_description FTP Especial;

check_command check_ftp!-p 1023-t 5-e “Pure-ftpd [TLS]”

}

Monitoramento SSH

Quando você precisa monitorar servidores SSH, você pode usar o plugin check_ssh . O arquivo commands.cfg  contém uma definição de comando para usar o  plugin check_ssh, que se parece com isso:

define command {

command_name check_ssh

command_line $ USER1 $ / check_ssh $ ARG1 $ $ $ HOSTADDRESS

}

A definição do serviço para monitorar o servidor SSH em um host remoto ficaria assim:

define service {

use generic-service;  Herdar valores padrão de um modelo

host_name meu_host;

service_description SSH;

check_command check_ssh;

}

Esta definição de serviço vai monitorar o serviço SSH e gerar alertas se o servidor SSH não responder dentro de 10 segundos.

Uma definição de serviço mais avançada é mostrado abaixo. Este serviço irá verificar o servidor SSH e gerar um alerta, se o servidor não responder dentro de 5 segundos ou se o servidor não corresponde  a string da versão “OpenSSH_4.2”.

define service {

use generic-service;  Herdar valores padrão de um modelo

host_name meu_host;

service_description Confira Versão SSH

check_command check_ssh!-t 5-r “OpenSSH_4.2”

}

Monitoramento SMTP

O check_smtp plugin pode ser usando para monitorar seus servidores de e-mail. O commands.cfg arquivo contém uma definição de comando para usar o plugin check_smtp, que se parece com isso:

define command {

command_name check_smtp

command_line $ USER1 $ / check_smtp-H $ $ $ HOSTADDRESS ARG1 $

}

A definição de serviço simples para monitorar o servidor SMTP em remotehost ficaria assim:

define service {

use generic-service;  Herdar valores padrão de um modelo

host_name meu_host;

service_description SMTP

check_command check_smtp

}

Esta definição de serviço vai monitorar o serviço SMTP e gerar alertas se o servidor SMTP não responde dentro de 10 segundos.

Uma definição de serviço mais avançada é mostrado abaixo. Este serviço irá verificar o servidor SMTP e gerar um alerta, se o servidor não responder dentro de 5 segundos ou se a resposta do servidor não contém “mygreatmailserver.com”.

define service {

use generic-service;  Herdar valores padrão de um modelo

host_name meu_host;

service_description Confira Resposta SMTP

check_command check_smtp!-t 5-e “mygreatmailserver.com”

}

Monitoramento POP3

O plugin check_pop pode ser usando para monitorar o serviço POP3 em seus servidores de e-mail. O commands.cfg arquivo contém uma definição de comando para usar o plugin check_pop, que se parece com isso:

define command {

command_name check_pop

command_line $ USER1 $ / check_pop-H $ $ $ HOSTADDRESS ARG1 $

}

A definição de serviço para monitorar o serviço POP3 em um host remoto ficaria assim:

define service {

use generic-service;  Herdar valores padrão de um modelo

host_name meu_host;

service_description POP3

check_command check_pop

}

Esta definição de serviço vai monitorar o serviço POP3 e gerar alertas se o servidor POP3 não responder dentro de 10 segundos.

Uma definição de serviço mais avançada é mostrado abaixo. Este serviço vai verificar o serviço POP3 e gerar um alerta, se o servidor não responder dentro de 5 segundos ou se a resposta do servidor não contém “mygreatmailserver.com”.

define service {

use generic-service;  Herdar valores padrão de um modelo

host_name meu_host;

Resposta service_description POP3 Confira

check_command check_pop!-t 5-e “mygreatmailserver.com”

}

Monitoramento IMAP

O plugin check_imap pode ser usando para monitorar o serviço IMAP4 em seus servidores de e-mail. O commands.cfg arquivo contém uma definição de comando para usar o plugin check_imap, que se parece com isso:

define command {

command_name check_imap

command_line $ USER1 $ / check_imap-H $ $ $ HOSTADDRESS ARG1 $

}

A definição de serviço para monitorar o serviço IMAP4 em um host remoto ficaria assim:

define service {

use generic-service;  Herdar valores padrão de um modelo

host_name meu_host;

service_description IMAP

check_command check_imap

}

Esta definição de serviço vai monitorar o serviço IMAP4 e gerar alertas se o servidor IMAP não responder dentro de 10 segundos.

Uma definição de serviço mais avançada é mostrado abaixo. Este serviço vai verificar o serviço IMAP4 e gerar um alerta, se o servidor não responder dentro de 5 segundos ou se a resposta do servidor não contém “mygreatmailserver.com”.

define service {

use generic-service;  Herdar valores padrão de um modelo

host_name meu_host;

service_description verificar a resposta IMAP4

check_command check_imap!-t 5-e “mygreatmailserver.com”

}

Reiniciando Nagios

Depois de adicionar o novo host e suas definições de serviço no arquivo de configuração do objeto (s), você está pronto para começar a monitorá-los. Para fazer isso, você precisa verificar a configuração e reiniciar o Nagios .

Se o processo de verificação produz quaisquer mensagens de erros, você deve corrigir o seu arquivo de configuração antes de continuar. Certifique-se de que você não deve reiniciar o Nagios até que o processo de verificação complete sem erros!

Para verificar: /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

Boa Sorte a Todos!!!

Posted in: Nagios Core

Leave a Comment (1) ↓

1 Comment

  1. Paulo August 22, 2012

    Não entendi a parte que trata de monitorar: memórias, cpu e hd. Estou tentando e não estou conseguindo justamente monitorar estes recursos??

    Onde mesmo acho a documentação em relação a isso?

    reply

Leave a Comment