Вы находитесь на странице: 1из 30

Curso Nagios

Guia para preparao do sistema


1. Adicione o usurio nagios ao sistema. Este usurio ser o dono dos processos relativos ao monitoramento useradd nagios 2. Adicine o grupo nagios. Este grupo ser til na execuo de comandos externos (via interface web) como veremos mais adiante. groupadd nagios

Guia para obteno e descompactao


1. Crie um diretrio temporrio para compilao mkdir /var/tmp/nagios 2. Faa o download do programa Nagios, no site www.nagios.org, no diretrio acima criado 3. Entre no diretrio no qual voc salvou o arquivo e liste seu contedo cd /var/tmp/nagios ls -l 4. Descompacte o programa tar jxvf <nome_do_arquivo> ex.: tar zxvf nagios-2.0b2.tar.gz 5. Liste o contedo do diretrio novamente. Note que uma nova pasta foi criada contendo o programa descompactado. Entre nela e liste seu contedo: ex.: cd nagios-2.0b2; ls -l

Curso Nagios

Guia configurao pr-instalao


1. Digite ./configure --help para ver as opes disponveis de compilao. As opes mais importantes so: --prefix: diretrio de instalao --libexecdir: diretrio de instalao dos plugins --with-htmurl: site de acesso ao Nagios (padro: http://<endereo-local>/nagios) --with-cgiurl: endereo web de onde ficaro os CGIs (padro: http://<endereo-local>/nagios/cgi) 2. Rode o script de configurao: ./configure --prefix=/opt/nagios-turma1 --with-htmurl=/nagios-turma1 --with-cgiurl=/nagiosturma1/cgi-bin --libexecdir=plugins *** Configuration summary for nagios 2.0b2 02-09-2005 ***: General Options: ------------------------Nagios executable: nagios Nagios user/group: nagios,nagios Command user/group: nagios,nagios Embedded Perl: no Event Broker: yes Install ${prefix}: /opt/nagios-turma1 Lock file: ${prefix}/var/nagios.lock Init directory: /etc/init.d Host OS: linux-gnu Web Interface Options: -----------------------HTML URL: http://localhost/nagios-turma1/ CGI URL: http://localhost/nagios-turma1/cgi/ Traceroute (used by WAP): /usr/bin/traceroute 3. Caso aparea a mensagem de erro abaixo: *** GD, PNG, and/or JPEG libraries could not be located... ********* Boutell's GD library is required to compile the statusmap, trends and histogram CGIs. Get it from http://www.boutell.com/gd/, compile it, and use the --with-gd-lib and --with-gd-inc arguments to specify the locations of the GD library and include files. NOTE: In addition to the gd-devel library, you'll also need to make sure you have the png-devel and jpeg-devel libraries installed on your system.

Curso Nagios NOTE: After you install the necessary libraries on your system: 1. Make sure /etc/ld.so.conf has an entry for the directory in which the GD, PNG, and JPEG libraries are installed. 2. Run 'ldconfig' to update the run-time linker options. 3. Run 'make clean' in the Nagios distribution to clean out any old references to your previous compile. 4. Rerun the configure script. NOTE: If you can't get the configure script to recognize the GD libs on your system, get over it and move on to other things. The CGIs that use the GD libs are just a small part of the entire Nagios package. Get everything else working first and then revisit the problem. Make sure to check the nagios-users mailing list archives for possible solutions to GD library problems when you resume your troubleshooting. ******************************************************************** verifique se o cdigo fonte da bibioteca GD est instalado: apt-get install libgd2-xpm-dev e repita o processo de configurao.O comando acima instalar vrias bibliotecas de graficas no sistema A maior dificuldade nesta etapa fazer com que o Nagios encontre a biblioteca GD. Esta biblioteca responsvel pela gerao dos grficos e icones da visualizao via interface Web.

Guia de compilao e instalao


1. Compile o programa com o comando make all 2. Instale o programa com o comando make install 3. Instale o script de inicializao com o comando make install-init. Este script ser colocado no diretrio /etc/init.d. Quando o computador for reiniciado, o nagios ser automaticamente chamado. Esta pasta funciona como a pasta Inicializar (Start) do Windows. 4. Instale o arquivo de comandos externos com o comando make install-commandmode. neste arquivo que o seu servidor web vai escrever as ordens enviadas via interface web para serem processadas pelo nagios. 5. Instale os arquivos de exemplo configurao com o comando make install-config. Ateno: para que o Nagios sej inicializado no boot, ser preciso criar os links nos diretrios / etc/rc*.d. update-rc.d nagios defaults 1. Entre no diretrio /etc/init.d cd /etc/init.d 2. Digite o comando: update-rc.d nagios defaults

Curso Nagios

Obtendo e descompactando os plugins


1. Crie um diretrio temporrio para compilao mkdir /var/tmp/plugins 2. Faa o download dos plugins (http://sourceforge.net/projects/nagiosplug/), no diretrio acima criado 3. Entre no diretrio no qual voc salvou o arquivo e liste seu contedo cd /var/tmp/plugins ls -l 4. Descompacte o pacote de plugins tar jxvf <nome_do_arquivo> ex.: tar zxvf nagios-plugins-1.4.tar.gz 5. Liste o contedo do diretrio novamente. Note que uma nova pasta foi criada contendo o programa descompactado. Entre nela e liste seu contedo: ex.: cd nagios-plugins-1.4; ls -l

Guia configurao pr-instalao dos plugins


1. Digite ./configure --help para ver as opes disponveis de compilao. As opes mais importantes so: --prefix: selecionar o diretrio do nagios --libexecdir: selecionar o diretrio de instalao dos plugins --with-cgiurl: endereo web de onde ficaro os CGIs (padro: http://<endereo-local>/nagios/cgi) 2. Rode o script de configurao: ./configure --prefix=/opt/nagios-turma1 --libexecdir=/opt/nagios-turma1/plugins --withcgiurl=/nagios-turma1/cgi

Curso Nagios

Guia de compilao e instalao dos plugins


1. Compile o programa com o comando make 2. Instale o programa com o comando make install

Guia para edio do httpd.conf


Assumirei que seu servidor web o Apache 1. Abra o arquivo de configurao do Apache: vim /etc/apache/httpd.conf 2. Adicione ao final do arquivo as seguintes linhas:
##### Configurao do Nagios - Turma 1 ######### ScriptAlias /nagios-turma1/cgi-bin /opt/nagios-turma1/sbin <Directory "/opt/nagios-turma1/sbin"> AllowOverride AuthConfig Options ExecCGI Order allow,deny Allow from all </Directory> Alias /nagios-turma1 /opt/nagios-turma1/share <Directory "/opt/nagios-turma1/share"> Options None AllowOverride AuthConfig Order allow,deny Allow from all </Directory> ############### FIM ####################

3. Recarregue as configuraes do servidor Web: /etc/init.d/apache restart

Curso Nagios

Guia para aumentar a segurana no acesso via Web


1. Altere os dois blocos de configurao acima. Aps a alterao, o acesso interface web de controle do Nagios ser restrita rede 192.168.1.0: ##### Configurao do Nagios - Turma 1 #########
ScriptAlias /nagios-turma1/cgi-bin /opt/nagios-turma1/sbin <Directory "/opt/nagios-turma1/sbin"> AllowOverride AuthConfig Options ExecCGI Order deny,allow Deny from all Allow from 192.168.1 127.0.0.1 </Directory> Alias /nagios-turma1 /opt/nagios-turma1/share <Directory "/opt/nagios-turma1/share"> Options None AllowOverride AuthConfig Order allow,deny Allow from all </Directory> ############### FIM #################### 2. Ative a autenticao de usurios (CGI). Para isso, crie um arquivo chamado .htaccess, com o contedo abaixo, no diretrio de CGIs (/opt/nagios-turma1/sbin) AuthName "Acesso ao Nagios" AuthType Basic AuthUserFile /opt/nagios-turma1/etc/htpasswd.users require valid-user 3. Crei um arquivo contendo o nome e a senha do usurio que ter acesso interface Web do Nagios como administrador (usurio/senha: nagiosadmin/passwd): htpasswd -c /opt/nagios-turma1/etc/htpasswd.users nagiosadmin

4. Adicione mais um usurio. Este ns configuraremos, mais tarde, para ter acesso parcial s funcionalidades do sistema:
htpasswd /opt/nagios-turma1/etc/htpasswd.users suporte

5. Libere a permisso de leitura dos arquivos de autenticao (.htaccess e .htpasswd) para o usurio do seu servidor Web.
cd /opt/nagios-turma1 chown root.www-data etc/htpasswd.users sbin/.htaccess chmod 640 etc/htpasswd.users sbin/.htaccess

Curso Nagios

Guia de configurao do arquivo principal: nagios.cfg


1. Entre no diretrio de arquivos de configurao cd /opt/nagios-turma1/etc 2. Renomeie o arquivo de exemplo nagios.cfg-sample para nagios.cfg mv nagios.cfg-sample nagios.cfg 2. Abra o arquivo para edio vim nagios.cfg 3. Comente todas as linhas que se iniciam com cfg_file, deixando apenas as seguintes: cfg_file=/opt/nagios-turma1/etc/contatos.cfg cfg_file=/opt/nagios-turma1/etc/computadores.cfg cfg_file=/opt/nagios-turma1/etc/servicos.cfg cfg_file=/opt/nagios-turma1/etc/timeperiods.cfg cfg_file=/opt/nagios-turma1/etc/checkcommands.cfg cfg_file=/opt/nagios-turma1/etc/misccommands.cfg Dica: :%s/^cfg_file/#cfg_file/g (comando do vim) 4. Altere o valor padro das seguintes varivel: service_reaper_frequency=1 refresh_rate=5 retain_state_information=0 date_format=euro As alteres acima tm como objetivo fazer com que as nossas mudanas sejam visualizadas em poucos segundos. Em um ambiente real, o valor dever ser ajustado para um tempo maior para evitar sobrecarga no monitoramento. Ateno: Caso queira uma descrio exata do significado de cada varivel deste arquivo, acesse o link: http://nagios.sourceforge.net/docs/2_0/configmain.html. Ou siga o curso at o final.

Curso Nagios

Guia de configurao do arquivo de macros: resource.cfg


1. Renomeie o arquivo resource.cfg-sample para resource.cfg mv resource.cfg-sample resource.cfg 2. Abra o arquivo resource.cfg vim resource.cfg 3. Verifique se a macro $USER1$ est apontando para o diretrios do plugins 4. Feche o arquivo Ateno: A macro $USER1$ a nica pre-configurada de fbrica. Voc pode criar a sua. Veja mais a frente quando trataremos de Uso de Macros em Comandos

Curso Nagios

Guia de configurao do arquivo de CGIs: cgi.cfg


1. Renomeie o arquivo cgi.cfg-sample para cgi.cfg mv cgi.cfg-sample cgi.cfg 2. Abra o arquivo cgi.cfg vim cgi.cfg 3. Verifique se o acesso interface Web do Nagios exige autenticao: use_authentication=1 4. Libere o acesso completo ao usurio nagiosadmin (ps: as linhas abaixo devero ser descomentadas e editadas) authorized_for_system_information=nagiosadmin authorized_for_configuration_information=nagiosadmin authorized_for_configuration_information=nagiosadmin authorized_for_system_commands=nagiosadmin authorized_for_all_services=nagiosadmin authorized_for_all_hosts=nagiosadmin authorized_for_all_service_commands=nagiosadmin authorized_for_all_host_commands=nagiosadmin 5. Vefique se o comando ping, usado pelo Nagios para saber se um computador est ativo ou no, est de acordo com seu sistema. A sintaxe do comando ping muda com freqencia entre *UNIX. ping_syntax=/bin/ping -n -U -c 5 $HOSTADDRESS$ (Teste digitando: /bin/ping -n -U -c 5 localhost). Em caso de falha, verifique qual o parmentro que dever ser removido/substitudo. Ateno: Caso queira uma descrio exata do significado de cada varivel deste arquivo, acesse o link: http://nagios.sourceforge.net/docs/2_0/configcgi.html.

Curso Nagios

Guia de configurao do arquivo de comandos: checkcommands.cfg


1. Renomeie o arquivo cgi.cfg-sample para cgi.cfg mv checkcommands.cfg-sample checkcommands.cfg 2. Abra o arquivo checkcommands.cfg vim checkcommands.cfg 3. Veja como cada comando est definido. Note o uso da macro $USER1$, mencionada anteriormente no arquivo resource.cfg. Esta varivel guarda o caminho onde o Nagios encontrar os executveis responsveis pelo realizao das checagens. Ateno: Teste o comando abaixo (sem quebra de linhas) /opt/nagios-turma1/plugins/check_ping -H localhost -w 80,0.4% -c 90,0.6% -p 1 Se ele retornar "CRITICAL - Could not interpret output from ping comman", ento substituia todas as ocorrncias de "$USER1$/check_ping" neste arquivo de configurao por "$USER1$/check_icmp". Isto ocorre devido diferena entre pings de diversas distribuies. Dica: :%s#\$USER\$/check_ping#$USER$check_icmp#gc (comando do vim)

Guia de configurao do arquivo de comandos auxiliares: misccommands.cfg


1. Renomeie o arquivo misccommands.cfg-sample para misccommands.cfg mv misccommands.cfg-sample misccommands.cfg 2. Abra o arquivo misccommands.cfg vim misccommands.cfg 3. Veja como cada comando est definido. Note que aqui est definido como o Nagios notificar os contatos em caso de deteco de problemas. Basicamente usa-se o programa mail, presente em qualquer distribuio linux.

Curso Nagios

Guia de configurao de objetos: timeperiods.cfg


1. Crie um arquivo para definio de intervalos de tempo vim timeperiods.cfg 2. Adicione um intervalo de tempo que representa 24 horas por dia/7 dias por semana e outro intervalo que represente apenas horrio comercial: # Definio de horrio '24x7' define timeperiod{ timeperiod_name 24x7 alias 24h por dia e 7 dias por semana sunday 00:00-24:00 monday 00:00-24:00 tuesday 00:00-24:00 wednesday 00:00-24:00 thursday 00:00-24:00 friday 00:00-24:00 saturday 00:00-24:00 } # Definio de horrio de trabalho define timeperiod{ timeperiod_name horadetrabalho alias Hora normal de trabalho monday 08:00-12:00,13:00-17:00 tuesday 08:00-12:00,13:00-17:00 wednesday 08:00-12:00,13:00-17:00 thursday 08:00-12:00,13:00-17:00 friday 08:00-12:00,13:00-17:00 } 3. Salve o arquivo

Curso Nagios

Guia de configurao de objetos: contatos.cfg


1. Crie um arquivo para definio de contatos e grupos de contatos vim contatos.cfg 2. Crie dois contato para serem notificado # Definio do contato Nagios Admin define contact{ contact_name nagios alias Nagios Admin service_notification_period 24x7 host_notification_period 24x7 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 nagios-admin@localhost.localdomain } # Definio do contato suporte define contact{ contact_name suporte alias Suporte da Rede service_notification_period horadetrabalho host_notification_period horadetrabalho 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 root@localhost.localdomain } 3. Adicione os contatos acima definidos ao grupo de administradores # Definio do grupo de administradores define contactgroup{ contactgroup_name administradores alias Administradores members nagios,suporte } 4. Salve o arquivo

Curso Nagios

Guia de configurao de objetos: computadores.cfg


1. Crie um arquivo para descrio dos computadores e grupo de computadores vim computadores.cfg 2. Defina trs computadores a serem monitorados: o seu (Servidor Nagios) e o dos alunos ao lado. #Template (Para evitar repeties de variveis) define host{ name template-generico check_command check-host-alive max_check_attempts 3 notification_interval 120 notification_period 24x7 notification_options d,u,r contact_groups administradores register 0 } # Definio do Servidor Nagios define host{ use template-generico host_name alias address servidor-nagios Servidor Nagios 127.0.0.1

# Definio do Computador Um define host{ use template-generico host_name alias address } # Definio do Computador Dois define host{ use template-generico host_name alias address check_command } 3. Adicione os computadores acima definidos ao grupo de servidoras # Grupo de computadores servidores computador-2 Computador #2 192.168.1.2 check-host-alive computador-1 Computador #1 192.168.1.1

Curso Nagios define hostgroup{ hostgroup_name servidoras alias Servidoras da Rede members servidor-nagios,computador-1,computador-2 } 4. Salve o arquivo Ateno: o uso de templates facilita muito a adio de vrios computadores ao monitoramento!

Curso Nagios

Guia de configurao de servios: servicos.cfg


1. Crie um arquivo para definio dos servios que sero monitorados vim servicos.cfg 2. Defina um servio para cada computador que voc est monitorando. Inicialmente criaremos um servio de PING. Este servio pingar as mquinas em intervalos de tempo regular para verificar se a mesma encontra-se na rede # Template de definio do servio PING define service{ name template active_checks_enabled 1 passive_checks_enabled 0 parallelize_check 1 obsess_over_service 1 check_freshness 0 notifications_enabled 1 event_handler_enabled 1 flap_detection_enabled 1 process_perf_data 1 retain_status_information 1 retain_nonstatus_information 1 is_volatile 0 notification_interval 120 notification_period 24x7 notification_options w,u,c,r max_check_attempts 3 normal_check_interval 1 retry_check_interval 1 check_period 24x7 contact_groups administradores register 0 } # Definio do servio do Servidor Nagios define service{ use template host_name service_description check_command } servidor-nagios PING check_ping!100.0,20%!500.0,60%

Curso Nagios # Definio do servio do computador-1 define service{ use template host_name service_description check_command } # Definio do servio do computador-2 define service{ use template host_name service_description check_command } 3. Adicione os servios acima definidos ao um grupo de servios #Definio de um grupo de servio define servicegroup{ servicegroup_name Pings alias Ping nos computadores members servidor-nagios,PING,computador-1,PING,computador2,PING } computador-2 PING check_ping!100.0,20%!500.0,60% computador-1 PING check_ping!100.0,20%!500.0,60%

Curso Nagios

Guia de Agendamento de Checagens


1. Entre no diretrio de instalao do Nagios cd /opt/nagios-turma1 2. Execute o Nagios com o parmetro -s e passando como argumento o arquivo de configurao principal (nagios.cfg) bin/nagios -s etc/nagios.cfg 3. Verifique se o Nagios faz alguma sugesto de alterao das variveis de agendamento de checagens --------- Recortado---------------PERFORMANCE SUGGESTIONS ----------------------Value for 'max_concurrent_checks' option should >= 66 ---------Fim -----------------------------

Curso Nagios

Guia de Tratadores de Eventos


Neste guia veremos na prtica a funcionamento de um tratador de eventos. Este simples exemplo servir para mostrar a variedades de situaes s quais esta funcionalidade pode ser aplicada. Primeiramente, verifique se o tratamento de eventos est ativado no nagios.cfg 1. vim nagios.cfg nagios.cfg:enable_event_handlers=1

Parte 1: Crie um servio de verificao do servidor Apache


1. Entre no diretrio de configurao do Nagios cd /opt/nagios-turma1/etc 2. Edite o arquivo de servios vim servicos.cfg 3. Adicione ao final do arquivo a seguinte definio de servio: #Monitrando o Apache define service{ use template host_name servidor-nagios service_description Apache max_check_attempts 4 event_handler reinicie-apache check_command check_http } Note que o comando check_http j existe pronto para usarmos. Ele veio juntamente com o pacote de plugins que instalamos. Salve o arquivo servicos.cfg e saia.

Parte 2: Crie uma definio de comando para seu tratador de eventos


1. Abra o arquivo de definio de comandos: vim checkcommands.cfg 2. Crie, ao final do arquivo, uma definio de comando para o nosso novo tratador de eventos
#Reiniciando Apache define command{ command_name reinicie-apache command_line $USER1$/reinicie-apache $SERVICEATTEMPT$ }

$SERVICESTATE$ $SERVICESTATETYPE$

Veja que o nosso script receber trs argumentos: O estado atual do servio (OK, WARNING, UNKNOWN, CRITICAL) O tipo em que o servio est (SOFT, HARD)

Curso Nagios
O nmero de tentativas de checagens j feitas (1,2,3...) Parte 3 Crie o programa tratador de eventos

4. Crie um script que ser o nosso tratador de evento. A linguagem usada no importa. Usaremos aqui um bash script. O programa dever fazer o seguinte: -Se o problema acabou de ser detectado, no tente fazer nada -Se o problema persistir as 3 checagens, ento reinicie o servidor Apache Veja na definio do servio acima que o servio Apache ser verificado 4 vezes (max_check_attempts). Aps estas 4 checagens o problema deixar de ser SOFT e passar a ser HARD, ou seja, o problema realmente existe. Queremos que nosso script atue antes da quarta checagem. 5. Programa em bash 1. #!/bin/sh 2. case "$1" in 3. CRITICAL) 4. case "$2" in 5. SOFT) 6. case "$3" in 7. 3) 8. echo -n "Reiniciando Apache (terceira tentativa do nagios)..." 9. /etc/rc.d/init.d/apache restart 10. ;; 11. esac 12. ;; 13. esac 14. ;; 15.esac 16.exit 0 Os parmetros para um script bash so chamados, dentro do programa, atravs das variveis $1, $2, $3. Lembre-se que na definio de comandos, na parte 2 deste guia, passamos 3 argumentos para nosso script: O estado atual do servio (OK, WARNING, UNKNOWN, CRITICAL)
O tipo em que o servio est (SOFT, HARD) O nmero de tentativas de checagens j feitas (1,2,3...) Na linha 3, caso o estado CRITICAL seja detectado ento tomaremos alguma atitude baseando-se no segundo argumento. Se o tipo do servio do segundo argumento ($2) for SOFT, ento restanos saber qual o nmero de tentativas de checagens que foram feitas at o momento. Isso obtido no terceiro argumento ($3). Se este nmero de checagens for 3 ento hora de nosso script entrar em ao! O comando para reinicar o Apache visto na linha 15. 6. Salve o arquivo e saia do editor 7. Transforme o arquivo em executvel chmod og+x reinicie-apache 8. D as permisses de execuo do tratador de eventos ao nagios 9. Mova o tratador de eventos para o diretrio de plugins mv reinicie-apache /opt/nagios-turma1/plugins Nota: Veja que na definio de comandos definimos que o nosso tratador de

Curso Nagios
eventos ficaria no diretrio de plugins ($USER1$, macro definida no arquivo resources.cfg)

Parte 5 Ativando depurao de tratadores de eventos


Vamos agora ativar as variveis de depurao de tratadores de eventos. Assim poderemos acompanhar todo o processo de atuao do nosso tratador de eventos: 1. Edite o arquivo nagios.cfg dentro do diretrio de configurao do Nagios (/opt/nagios-turma1/etc): vim etc/nagios.cfg

2. Certifique-se que as variveis abaixo estejam ajustadas para os seguintes valores: log_host_retries = 1 log_service_retries = 1 log_event_handlers = 1
3. Salve e saia do arquivo de configurao 4. Teste as configurao do Nagios /opt/nagios-turma1/bin/nagios -v /opt/nagios-turma1/etc/nagios.cfg 5. Se tudo estiver correto. recarregue as configuraes do Nagios e verifique se o servio de checagem do Apache est sendo executado normalmente atravs da interface web: /etc/init.d/nagios reload

Parte 6 Permitindo ao usurio nagios reiniciar o servidor apache


Sabemos que apenas o administrador do sistema (root) tem permisses para executar tarefas avanadas como reiniciar um servidor de pginas (apache). Uma forma de delegar permisses a outros usurios usando o comando sudo. As caractersticas avanadas de uso deste programa no est no escopo deste curso, porm indicaremos aqui apenas como instalar e adicionar a linha de configurao que ser necessria ao prosseguimento deste guia. Para mais informaes sobre sudo, consulte o manual do sistema (man sudo, man sudoesr). 1. Instale o sudo no seu sistema apt-get install sudo 2. Abra o arquivo de configurao do sudo (/etc/sudoers) usando o comando abaixo. (Ateno: no tente editar o sudores diretamente. O comando abaixo verifica por erros de sintaxe antes de ser salvo) visudo 3. Adicione a seguinte linha ao final do arquivo nagios ALL=NOPASSWD:/etc/init.d/apache restart 4. Salve e saia.

Curso Nagios
Parte 7 Teste seu tratador de eventos
Vamos agora parar nosso servidor Apache e acompahar o que o Nagio ira fazer para resolver este problema usando nosso tratador de eventos: 1. Abra dois terminais. Em um deles digite o comando abaixo para acompanhar todos os registros do log assim que forem sendo gerados: tail -f /opt/nagios/var/nagios.log 2. Em outro terminal pare o servio Apache: /etc/init.d/apache stop 3. Acompanhe, no primeiro terminal, tudo que aparecer no log. 4. Acompanhe no segundo terminal se o Apache voltou a funcionar com o comando ps auxwf|grep apache [1111412915] SERVICE ALERT: servidor-nagios;Apache;CRITICAL;SOFT;1;Connection refused [1111412915] SERVICE EVENT HANDLER: servidornagios;Apache;CRITICAL;SOFT;1;reinicie-apache ----------------------------------------[1111412975] SERVICE ALERT: servidor-nagios;Apache;CRITICAL;SOFT;2;Connection refused [1111412975] SERVICE EVENT HANDLER: servidornagios;Apache;CRITICAL;SOFT;2;reinicie-apache [1111413035] SERVICE ALERT: servidor-nagios;Apache;CRITICAL;SOFT;3;Connection refused [1111413035] SERVICE EVENT HANDLER: servidornagios;Apache;CRITICAL;SOFT;3;reinicie-apache [1111413095] SERVICE ALERT: servidor-nagios;Apache;OK;SOFT;4;HTTP OK HTTP/1.1 200 OK - 5552 bytes in 0.002 seconds ------------------------------------------

Curso Nagios

Guia de Habilitao de Comandos Externos


1. Entre no diretrio de configurao do Nagios cd /opt/nagios-turma1/etc 2. Abra o arquivo de configurao principal vim nagios.cfg 3. Certifique-se que as diretivas abaixo estejam ajustada com o valor mostrado check_external_commands=1 command_check_interval=-1 command_file=/opt/nagios-turma1/var/rw/nagios.cmd 4. Salve e feche o arquivo. :wq 5. Reinicie o nagios para que o arquivo de comando externo aparea. /etc/init.d/nagios restart Nota: no passo 4 do guia de compilao e instalao j havamos preparado o nagios para criar o diretrio de comando externo ajustando nele as devidas permisses (make install-commandmode) 6. Visualize o arquivo de comando externo ls -l /opt/nagios-turma1/var/rw/nagios.cmd Nota: Observe que este arquivo na verdade um pipe. Este tipo de arquivo utilizado para estabelecer uma conexo entre dois programas. No nosso caso, o nagios.cmd uma porta de entrada para o processo do nagios.

Curso Nagios

Guia de Criao do Arquivo de Permisses de Aceso ao Arquivo de Comando Externo


Como vimos na listagem acima o arquivo nagios.cmd est com permisso de escrita para o usurio nagios e todos os usurios do grupo nagios. Vamos fazer algumas mudanas para que comandos enviados pela interface web possam ser escritos no nagios.cmd

Parte 1 Adicionando o servidor web ao grupo do nagios


1. Adicione ao grupo nagios, criado no primeiro guia deste curso (Guia de Preparao do Sistema), os usurios nagios e o grupo usado pelo seu servidor web. Caso o servidor web seja o apache, digite: grep "^User" /etc/apache/httpd.conf para saber qual o usurio usado pelo servidor durante sua execuo. No caso do Debian, o usurio do apache se chama www-data. # usermod -G nagios www-data (comando para adicionr o www-data ao grupo nagios) 2. Veja agora que o o usurio do servidor web pertence ao grupo do nagios #groups www-data Nota: o usurio nagios tabm dever fazer parte do grupo nagios. Este passo no necessrio pois, por padro, ao criarmos um usurio nagios, um grupo de mesmo nome foi criado (nagios) contendo o usurio nagios dentro dele. 3. Reinicie o servidor web (Apache) Guia de Comandos Externos Via Tratador de Eventos Mostraremos neste guia como associar a funcionalidade de tratamento de eventos com a possibilidade de envio de comandos externos ao Nagios. O objetivo do guia ser fazer com que o Nagios adicione um comentrio ao servio de verificao do Apache dizendo que aconteceu um erro no servio e que o tratador de eventos solucionou. 1. Adicione a seguinte linha no nosso arquivo de tratamento de evento reinicie-apache (linha 10) echo "[`date +%s`] ADD_SVC_COMMENT;servidor-nagios;Apache;1;nagiosadmin;Servio Apache deu problemas mas o tratador de eventos resolveu." > /opt/nagiosturma1/var/rw/nagios.cmd 2. Pare o servidor e aguarde at que ele seja reiniciado pelo nosso tratador de eventos.

Curso Nagios /etc/init.d/apache stop Acompanhe no /opt/nagios-turma1/var/nagios.log para ver o que est acontecendo. 3. Assim que o Apache for reiniciado v at a interface web e clieque em comments (comantrios) para ver se o comentrio foi adicionado. 4. Os comandos externos mais comuns aceitos pelo Nagios atualmente so listados na tabela abaixo. Uma descrio mais detalhada sobre a sintaxe e a funo de cada um dos comandos pode ser lida na documentao oficial do Nagios: http://nagios.sourceforge.net/docs/2_0/extcommands.html Sintaxe: [Date] Command_ID;Argumentos

ID do Command

Descrio do Comando

ADD_HOST_COMME Adicionar comentrios ao computador NT ADD_SVC_COMMEN Adicionar comentrios ao servio T DEL_HOST_COMME Apagar um comentrio de um do computador NT DEL_ALL_HOST_CO Apagar todos os comentrio do computador MMENTS DEL_SVC_COMMEN Apagar todos um comentrio de um servio T DEL_ALL_SVC_COM Apagar todos os comentrios de servios MENTS DELAY_HOST_NOTI Atrasar notificaes de problemas com um computador FICATION DELAY_SVC_NOTIFI Atrasar notificaes de problemas com um computador CATION SCHEDULE_SVC_CH Re-agendar checagem de servios ECK SCHEDULE_HOST_S Re-agendar checagem de computadores VC_CHECKS ENABLE_SVC_CHEC Habilitar checagem de servio K DISABLE_SVC_CHEC Desabilitar checagem de servio K ENABLE_SVC_NOTIF Habilitar notificao de problemas com servios ICATIONS DISABLE_SVC_NOTI Desabilitar notificao de problemas com servios FICATIONS

Curso Nagios ENABLE_HOST_SVC Habilitar notificao de problemas com clientes _NOTIFICATIONS DISABLE_HOST_SVC Desabilitar notificao de problemas com servios _NOTIFICATIONS ENABLE_HOST_SVC Desabilitar checagem de clientes _CHECKS DISABLE_HOST_SVC Isto desabilitar temporariamente todos os servios no cliente especificado. _CHECKS ENABLE_HOST_NOT Isto ir temporariamente desabilitar notificaes para este cliente. IFICATIONS DISABLE_HOST_NO TIFICATIONS Isto desabilitar temporariamente notificaes para este cliente.

ENABLE_ALL_NOTIF Isto habilitar notificaes para todos os clientes e servios que no seja o cliente ICATIONS_BEYOND_ especificado no argumento host_name (do ponto de vista do Nagios).. HOST

DISABLE_ALL_NOTI Isto desabilitar temporariamente notificaes para todos os clientes FICATIONS_BEYON e servios que no sejam o cliente especificado no argumento host_name (do ponto de D_HOST Nagios). ENABLE_NOTIFICAT Isto habilitar notificaes de cliente e servio em carter geral no programa IONS DISABLE_NOTIFICA Isto desabilitar notificaes de cliente e servio em carter geral no programa TIONS SHUTDOWN_PROGR Isto far com que Nagios pare de funcionar no momento especificado AM

Dica: Para voc ver qual a sintaxe de um comando externo, execute o comando pela interface web e veja como ele aparece no arquivo nagios.log. Copie e adapte-o s suas necessidades.

Curso Nagios

Guia Configurando NRPE


Parte 1 Obtendo e compilando o NRPE
Instalaremos o NRPE no computador definido como computador-1 no arquivo computadores.cfg 1. Logue no computador remoto (onde voc instalar o NRPE) ssh 192.168.1.1 1. Baixe o Nagios Remote Plugin Executor (NRPE) 2.0) do site: www.nagios.org/download/extras.php e salve no diretrio /var/tmp 2. Descompacte o NRPE tar zxf nrpe-2.0.tar.gz 3. Entre no diretrio e compile o programa cd nrpe-2.0 ./configure make 4. Repita o mesmo procedimento no computador servidor do Nagios Nota: Precisamos compilar o programa em ambos os computadores pois o binrio nrpe gerado ficar no computador remoto e o binrio check_nrpe ficar no servidor Nagios. Ateno: Caso a instalao gere erros certifique-se que as bibliotecas de desenvolvimento SSL e programa OpenSSL estejam instalados. No debian este pacote se chamam libssl-dev e openssl. apt-get install libssl-dev openssl

Parte 2 Instalando o NRPE


1. No servidor Nagios copie o plugin abaixo para o diretrio de plugins do Nagios cp /var/tmp/nrpe-2.0/src/check_nrpe /opt/nagios-turma1/plugins 2. Logue no computador remoto ssh 192.168.0.2 3. No computador remoto crie um diretrio para armazenar o nrpe e os plugins mkdir /opt/nagios 4. Mova o daemon nrpe para o diretrio criado mv /var/tmp/nrpe /opt/nagios 5. Entre no diretrio criado cd /opt/nagios

Curso Nagios 6. Crie um arquivo de configurao para o NRPE vim nrpe.cfg 7. Adicione a seguinte linha command[check_disk]=/opt/nagios/check_disk -w 20 -c 10 -p / 8. Salve e feche o arquivo (permissoes? Como j deve ter notado, precisamos ter o plugin de checagem disponvel no computador remoto. A forma mais rpida de ser fazer isso simplesmente envinado o plugins necessrio a partir do servidor nagios. Porm, pelo mesmo motivo de termos compilado o NRPE na computador remoto, o plugin s funcionar em outro lugar se as configurao e arquitetura do computador forem as mesmas. Caso contrrio ser preciso obter o pacote de plugins e recompil-lo no computador remoto. Por exemplo, se o Nagios estiver sendo executado em um computador PC rodando linux, e meu NRPE estiver sendo instalado em um mquina Ultra Sparc, ento o NRPE e o plugin dever ser compilado na maquina remota pois nenhum programa compilado em PC rodaria diretamente em uma Ultra.

Parte 4 Configurando o sistema do computador remoto


Instalaremos nosso daemon usando o Inetd. Poderamos tambm fazer isso atravs do xinetd. 1. Edite o arquivo /etc/inetd.conf e adicione a seguinte linha: nrpe stream tcp nowait nagios /usr/sbin/tcpd /opt/nagios/nrpe -c /opt/nagios/nrpe.cfg inetd 3. Edite o arquivo /etc/services. Vim /etc/services 4. Adicione a seguinte linha ao final do arquivo nrpe 5666/tcp 5. Salve e feche o arquivo 2. Recarregue o inetd. Para isso precisamos saber o qual o PID do processo #ps auxw|grep inetd root 2513 0.0 0.1 1520 356 ? Ss 07:09 0:00 /usr/sbin/inetd A partir do comando acima descobre-se que o PID do programa 2513. Basta enviar um HUP para o processo: kill -HUP 2513

Parte 5 Testando o NRPE


1. Digite, nesse mesmo computador em que instalamos o NRPE, o comando: telnet localhost 5666 Ser aparecer a seguinte mensagem, o daemon est ativo na porta 5666 aguardando requisies do servidor Nagios! # telnet localhost 5666

Curso Nagios Trying 127.0.0.1... Connected to 127.0.0.1. Escape character is '^]'. Se aparecer a mensagem abaixo, telnet: Unable to connect to remote host: Connection refused Verifique:

Erros no nrpe.cfg Erros no inetd.conf (reiniciou o daemon?) Erros no service.cfg Mensagem de erros no /var/log/messages

Guia Finalizando configurao do NRPE


1. Teste a conexo com o NRPE /opt/nagios-turma1/check_nrpe -H 192.168.1.1 -c check_disk 2. Se o comando acima no retornar erros ento vamos criar um comando fixo para a verificao de servios nrpe. Faremos a alterao no arquivo checkcommands.cfg vim /opt/nagios-turma1/checkcommands.cfg 3. Adicione a seguinte definio de comando ao arquivo #Comandos NRPE define command{ command_name check_nrpe command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ } 4. Salve e feche o arquivo 5. Vamos agora criar um servio de checagem que usa o comando acima definido vim /opt/nagios-turma1/servicos.cfg 6. Adicione a seguinte definio de comando ao arquivo de servios: #Monitrando disco remoto define service{ use template host_name computador-1 service_description disco check_command check_nrpe!check_disk } 7. Salve e feche o arquivo 8. Recarregue as configuraes do Nagios /etc/init.d/nagios reload 9. Acompanhe a checagem na interface Web.

Curso Nagios

Guia de Freshness
Usar o exemplo de backup da documentacao

Curso Nagios

Guia de Monitoramento Distribudo


TODO: comentar que a desabilitacao de checagens de servico global eh apenas usada assumindo q o servidor central no checa nada. Se ele checar teremos que deixar a opcao ativada e desabilita-la individualmente em cada servico.