Instalando, Configurando e Utilizando o Nagios

  • Post author:
  • Post category:Sem categoria

Artigo tirado de: http://www.underlinux.com.br/modules.php?name=Sections&op=printpage&artid=191

Instala??o do Nagios

Por Hugo Rebello

07/03/2003

O que ? o Nagios ?

Nagios ? um sistema de monitora??o das aplica??es de rede. Ele vigia hosts e servi?os que voc? especificar, alertando quando o servi?o ou host ficar em “down” e tamb?m quando os mesmos ficarem em “up”. Um a??o pr?-ativa.

Est? ferramenta ? a evolu??o do NetSaint. Mesmo o site do NetSaint estando ainda no ar, todos os novos desenvolvimentos ser?o feitos para o Nagios.

Lista de caracter?sticas do Nagios:

– Monitora??o de servi?os de rede como HTTP, SMTP, SSH, Telnet, etc.

– Monitora??o dos recursos dos servidores, como espa?o em disco.

– Notifica??es de falhas por e-mail, pager, etc, em tempo real.

– Interface Web informativa, que podemos identificar de maneira f?cil os problemas.

Nagios roda no Unix e seus variantes, opcionalmente requer um servidor web to ser instalado (para a interface web de monitora??o)

Instala??o e Configura??o do Nagios

1? – Fa?a o download do ?ltimo pacote do Nagios e o ?ltimo pacote dos plugins, para um diret?rio tempor?rio. Nesse tutorial usaremos /tmp/nagios.

[email protected]:/tmp/nagios# ls

nagios-1.0b6.tar.gz nagiosplug-1.3.0-beta3.tar.gz

Primeiro n?s iremos instalar o gerenciador de aplica??es Nagios. Vamos descompremir o arquivo tar.gz

[email protected]:/tmp/nagios# tar xvzf nagios-1.0b6.tar.gz

Depois de descomprimido o arquivo tar.gz, iremos para o diret?rio nagios-1.0b6.

[email protected]:/tmp/nagios# cd nagios-1.0b6

[email protected]:/tmp/nagios/nagios-1.0b6#

Agora precisamos decidir a onde iremos instalar o nosso sistema. Voc? pode instalar o Nagios em qualquer lugar, mas o melhor ? instalar na localiza??o padr?o (/usr/local/nagios), porque a documenta??o original sempre se refere para ele. Dessa forma ser? f?cil resolver problemas que possam acontecer.

Crie o diret?rio a onde voc? gostaria de instalar o Nagios.

[email protected]:/tmp/nagios/nagios-1.0b6# mkdir /usr/local/nagios

Neste ponto, precisamos criar um usu?rio e grupo que o Nagios ir? usar para carregar o servi?o. Voc? pode usar o “root” para isto, mas n?o ? recomendado como seguran?a. Em geral para uma f?cil manuten??o, decidi dedicar um novo usu?rio e grupo para essa fun??o. O usu?rio e grupo ter?o o nome de “nagios”.

[email protected]:/tmp/nagios/nagios-1.0b6# useradd nagios

[email protected]:/tmp/nagios/nagios-1.0b6# groupadd nagios

Uma vez criado o usu?rio e o grupo, nos podemos iniciar o processo de instala??o. Primeiro precisamos especificar alguns parametros e criar o Makefile que ser? usado para compilar e instalar o software.

[email protected]:/tmp/nagios/nagios-1.0b6# ./configure –prefix=/usr/local/nagios –with-cgiurl=/nagios/cgi-bin –with-htmurl=/nagios/ –with-nagios-user=nagios –with-nagios-grp=nagios

Geralmente quando instalamos o Nagios no diret?rio padr?o (/usr/local/nagios) n?o precisamos utilizar todos os parametros acima, mas ? sempre bom direcionar para o lugar correto.

Uma vez a configura??o completa, ir? aparecer um sum?rio de todos os parametros que foram usados durante a configura??o. Tenha certeza que tudo est? OK, sen?o execute o “configure” novamente com as op??es corretas.

Existe tamb?m uma alta probabilidade de aparecer um aviso que a biblioteca GD est? faltando. Consulte o site da Boutell (http://www.boutell.com/) para instalar essa biblioteca, e execute o “configure” novamente com a op??o –with-gd-lib e –with-gd-inc para especificar o exato diret?rio da biblioteca GD. Caso n?o funcione n?o se preocupe, o Nagios funcionar? mesmo sem essa biblioteca. Essa biblioteca ? somente usada em alguns CGI?s que criam images din?micas para a est?tistica de servi?o. A aplica??o ? ainda muito ?til sem estes gr?ficos.

Agora iremos compilar o software. Usaremos as seguintes op??es (se voc? n?o estiver logado com o root, se logue agora).

[email protected]:/tmp/nagios/nagios-1.0b6# make all

Se durante o longo processo de compila??o n?o acontecer nenhum erro, receberemos a mensagem “Compile Finished” no final da compila??o.

Iremos executar tr?s comandos para instalar v?rios componentes nos seus devidos lugares. Primeiro iremos instalar o programa principal, arquivos e diret?rios no /usr/local/nagios.

[email protected]:/tmp/nagios/nagios-1.0b6# make install

Vamos agora instalar o script de inicializa??o para que o Nagios seja carregado automaticamente durante o boot.

Esse script permite tamb?m que utilizemos a op??o start, stop, restart e reload. Exemplo: service nagios start

[email protected]:/tmp/nagios/nagios-1.0b6# make install-init

No meu sistema (Red Hat 8.0) eu coloquei o script no diret?rio /etc/rc.d/init.d

Se voc? der uma olhada dentro do diret?rio /usr/local/nagios voc? ver? que existem quatro diret?rios.

[email protected]:/tmp/nagios/nagios-1.0b6# ls /usr/local/nagios

bin sbin share var

O diret?rio bin cont?m um simples arquivo chamado nagios, que ? o centro dos pacotes. Este aplica??o n?o ? atualmente monitorada. O diret?rio sbin cont?m o CGI script que ser? usado na interface web. Dentro do diret?rio share voc? encontrar? o HTML a documenta??o. E finalmente o diret?rio var ? onde o Nagios armazenar? informa??es quando iniciado.

Em geral para voc? habilitar o uso do Nagios, voc? precisa de um conjunto de arquivos de configura??o. Estes arquivos est?o dentro do diret?rio etc no qual ser? criado quando voc? executar o seguinte comando.

[email protected]:/tmp/nagios/nagios-1.0b6# make install-config

Instala??o dos Plugins

Nesse ponto a instala??o do Nagios est? completa, mas ele n?o est? com suas totais fun??es, falta a monitora??o das aplica??es. Esta fun??o ? respons?vel por checar se um particular servi?o est? funcionando. Para habilitarmos essa fun??o ? necess?rio instalar os plugins separadamente. Fa?a o download da ?ltima vers?o dos plugins no site do Nagios www.nagios.org.

Depois do download, fa?a a descompacta??o do arquivo e entre no diret?rio criado pelo comando “tar”.

[email protected]:/tmp/nagios/nagiosplug-1.3-beta3# ./configure –prefix=/usr/local/nagios –with-nagios-user=nagios –with-nagios-group=nagios

Voc? talvez notifica??es sobre a perda de problemas ou m?dulos Per enquanto esteja executando o configure.

N?o tem problema, a menos que voc? especifique uma aplica??o que necessite desses m?dulos.

Uma vez terminado a configura??o, compile todos os plugins.

[email protected]:/tmp/nagios/nagiosplug-1.3-beta3# make all

Se nenhum erro for reportado, voc? pode instalar os plugins.

[email protected]:/tmp/nagios/nagiosplug-1.3-beta3# make install

Os plugins ser?o instalados no diret?rio “ibexec” dentro do diret?rio do Nagios /usr/local/nagios/libexec.

Entre nesse diret?rio, depois execute ./check_ssh -h para saber como o “check_ssh” trabalha.

Usando esses comandos voc? pode rodar manualmente a checagem de qualquer servi?o, mas iremos automatizar o nosso processo.

Por exemplo: [email protected]:/usr/local/nagios/libexec# ./check_ssh 200.146.2.1 (IP ilustrativo)

SSH ok – protocol version 1.99 – server version

Configura??o do Nagios

Depois da instala??o do Nagios e dos Plugins n?s estamos quase prontos para iniciar a monitora??o dos nossos servidores, mas antes precisamos configurar alguns arquivos.

[email protected]:/tmp/nagios/nagiosplug-1.3-beta3# cd /usr/local/nagios/etc

[email protected]:/usr/local/nagios/etc# ls

O comando “ls” ir? mostrar todos os arquivos *.cfg-sample, precisamos renomear esses arquivos para *.cfg

Criem um diret?rio “sample” e copie todos os arquivos *.cfg-sample para esse diret?rio, uma c?pia de seguran?a, em seguida renomeie todos os arquivos *.cfg-sample para *.cfg

Como a nossa configura??o ? simples e n?o iremos entrar em maiores detalhes, apague os arquivos “dependencies.cfg e escalation.cfg” e iremos criar dois arquivos em branco para substituir os mesmos.

[email protected]:/usr/local/nagios/etc# touch dependencies.cfg

[email protected]:/usr/local/nagios/etc# touch escalations.cfg

Conte?do do arquivo hosts.cfg

No arquivo hosts.cfg devemos colocar os servidores que desejamos monitorar. Edite o arquivo hosts.cfg com o seu editor preferido.

Exemplo:

[email protected]:/usr/local/nagios/etc# vi hosts.cfg

# ‘servidor1’ host definition

define host{

use generic-host ; Name of host template to use

host_name 9; servidor1

alias 9; Web Server #1

address 192.168.0.1

check_command check-host-alive

max_check_attempts 5

notification_interval 1

notification_period 24×7

notification_options d,u,r

}

Para cada “host” voc? ir? criar um conjunto das linhas acima, identificando o “hostname” do servidor e o “IP address”

Conte?do do arquivo “hostgroup.cfg”

Edite o arquivo hostgroup.cfg, uso o seu editor preferido.

Exemplo:

[email protected]:/usr/local/nagios/etc# vi hostgroup.cfg

# ’email-servers’ host group definition

define hostgroup{

hostgroup_name http-servers

alias 9; Web Servers

contact_groups http-admins

members servidor1, servidor2

}

Agora necessitamos adicionar os hosts para o hostgroup usando o arquivo acima.

Acima n?s definimos um novo “hostgroup” e associamos o “http-admins” grupo de contato para ele. Agora iremos ver o arquivo “contactgroup.

Conte?do do arquivo “contactgroup.cfg”

# ‘http-admins’ contact group definition

define contactgroup{

contactgroup_name http-admins

alias 9; Web Administrators

members hugo,leonardo

}

N?s definimos o grupo de contato “http-admins” e adicionamos dois members “hugo” e “leonardo” para este grupo. Estas configura??es asseguram que ambos os usu?rios ser?o notificados quando alguma coisa errada acontecer com os servidores que as pessoas do grupo “http-admins” s?o respons?veis.

A pr?xima etapa ser? configurarmos as informa??es dos contatos e notifica??es para estes usu?rios.

Conte?do do arquivo “contacts.cfg”

# ‘hugo’ contact definition

define contact{

contact_name hugo

alias 9; Hugo Rebello

service_notification_period 24×7

host_notification_period 24×7

service_notification_options w,u,c,r

host_notification_options d,u,r

service_notification_commands notify-by-email

host_notification_commands host-notify-by-email

email 9; [email protected]

}

# ‘leonardo’ contact definition

define contact{

contact_name leonardo

alias 9; Leonardo

service_notification_period 24×7

host_notification_period 24×7

service_notification_options w,u,c,r

host_notification_options d,u,r

service_notification_commands notify-by-email

host_notification_commands host-notify-by-email

email 9; [email protected]

}

Para criarmos os detalhes dos usu?rios o arquivo ? o contacts.cfg, conforme exemplo acima.

Depois de criado os hosts, grupo dos hosts, contatos e grupos dos contatos, iremos identificar qual o servi?o que queremos gerenciar em cada host.

No exemplo abaixo, estamos habilitando o gerenciamento atrav?s do PING, para saber se o servidor est? no ar, e do servi?o HTTP para sabermos se o servi?o Web est? funcionando corretamente.

Conte?do do arquivo “services.cfg”

# Service definition

define service{

use generic-service ; Name of service template to use

host_name 9; servidor1

service_description HTTP

is_volatile 0

check_period 24×7

max_check_attempts 3

normal_check_interval 1

retry_check_interval 1

contact_groups http-admins

notification_interval 2

notification_period 24×7

notification_options w,u,c,r

check_command check_http

}

# Service definition

define service{

use generic-service ; Name of service template to use

host_name 9; servidor1

service_description PING

is_volatile 0

check_period 24×7

max_check_attempts 5

normal_check_interval 1

retry_check_interval 1

contact_groups http-admins

notification_interval 2

notification_period 24×7

notification_options c,r

check_command check_ping!100.0,20%!500.0,60%

}

Agora que terminamos a configura??o dos hosts, contatos e servi?os, podemos iniciar o servi?o do Nagios para iniciarmos a monitora??o dos nossos servidores.

Por experi?ncia pr?pria com o Red Hat 8.0, carregue o servi?o com a op??o “reload” e n?o “start”. Ainda n?o sei porque, mas a op??o “start” quando carregada a primeira vez acontece alguns erros que n?o permiti carregar o servi?o.

Interface Web

Bem, embora o Nagios esteja iniciado e monitorando os nossos servidores e enviando notifica??es por e-mail (O seu MTA dever? estar configurado corretamente para enviar mensagens) quando ocorrer algum problema, ? muito v?lido configurarmos a interface web para uma melhor intera??o com essa monitora??o.

Para isso precisamos ter um Web Server instalado na m?quina que o Nagios esteja instalado. O nosso exemplo ser? utilizando o Apache, pois ? um dos mais Web Servers utilizados no mundo inteiro.

Arquivo /etc/httpd/conf/httpd.conf

Adicione as linhas abaixo no final do seu arquivo httpd.conf

ScriptAlias /nagios/cgi-bin/ /usr/local/nagios/sbin

AllowOverride AuthConfig

Options ExecCGI

Order allow,deny

Allow from all

Alias /nagios/ /usr/local/nagios/share/

Options None

AllowOverride AuthConfig

Order allow,deny

Allow from all

Est? configura??o cria um alias “/nagios/cgi-bin/” e direciona ele para um script CGI no diret?rio “sbin” do Nagios. Dessa forma podemos carregar a interface web do Nagios, assumindo que a p?gina principal do seu web server est? em http://localhost, digitando no nosso browser http://localhost/nagios.

Mas ainda n?o carrega a p?gina do Nagios, pois ainda n?o criamos os usu?rios que podem acessa-lo.

Crie um arquivo “.htaccess” no diret?rio “/usr/local/nagios/sbin” com o seguinte conte?do:

AuthName “Nagios Access”

AuthType Basic

AuthUserFile /usr/local/nagios/etc/htpasswd.users

require valid-user

N?o esque?a de criar o arquivo com atributo de oculto, com um “ponto” antes do nome do arquivo.

Agora precisamos criar os usu?rios e as suas respectivas senhas, execute o seguinte comando:

htpasswd ?c /usr/local/nagios/etc/htpasswd.user hugo

New password: *****

Re-type new password: *****

Adding password for user hugo

Para criar outros usu?rios voc? n?o deve utilizar o par?metro “-c”, pois ele ? utilizado para criar o arquivo htpasswd.user se o mesmo n?o existir. Se voc? utilizar o par?metro “-c” e o arquivo j? existir, o mesmo ser? substituido.

?timo, agora voc? poder? entrar na interface web do Nagios para monitorar online todos os servi?os dos seus servidores.

Uma dica muito importante, todos os acessos aos scripts CGI, s?o controlados pelo arquivo “/usr/local/nagios/etc/cgi.cfg”. L? voc? determina o que cada usu?rio pode acessar.

Pronto o seu software de monitora??o de hosts e servi?os est? funcionando, para controle de mais servi?os, aconselho voc? entrar no diret?rio “/usr/local/nagios/libexec” e testar os scripts (./check_ftp -h).

Boa sorte !!!

Hugo Rebello

Coordenador de Projetos de Rede e Sistemas de Seguran?a

Net Service Inform?tica

[email protected]

Site Oficial Nagios – http://www.nagios.org

Site Oficial NetSaint – http://www.netsaint.org

Nagios Plugins ? http://nagiosplug.sourceforge.net