You are on page 1of 9

Introduo

Imagine monitorar todos seus servidores, bem como servios que eles dispe. Imagine que voc poder receber por e-mail tudo que ocorre em seus servidores, informando a hora que um servio parou e/ou voltou a funcionar. Imagine que voc possa acessar este monitoramento de qualquer parte do mundo, bastando claro o seu servidor ter acesso a internet. A grande funo do NAGIOS essa, monitorar tudo o que puder. Aqui vai uma breve explicao extrada da fonte de informao Wikipdia: "Nagios uma popular aplicao de monitorao de rede de cdigo aberto e licenciado pelo sistema GPL. Ele pode monitorar tanto hosts quanto servios, alertando-o quando ocorrerem problemas e tambm quando os problemas forem resolvidos. O Nagios foi originalmente criado sob o nome de Netsaint, foi escrito e atualmente mantido por Ethan Galstad, junto com um exrcito de desenvolvedores que ativamente mantm plugins oficiais e no-oficiais."

Instalao do Nagios
Desta vez no vou propor uma instalao via RPM ou APT-GET pois no foi encontrado maiores dificuldades em instalar via fontes. A dificuldade foi mesmo curiosa, encontrar pacotes rpm para Nagios atualizados. Requisitos necessrios: Servidor web baseado em Apache2 completo, existem muitos artigos que explicariam melhor que eu agora a instalar um servidor web. Continuando o artigo, Primeiramente vamos partir do ponto que voc j tem um sistema operacional Linux totalmente instalado e funcional. DICA: Faa uma instalao full do sistema operacional, todos os componentes. Friso isso pois muito chato voc desejar instalar um novo servidor e ter problemas com bibliotecas C#, C++, Make, mod_php5, entre outros. Instale tudo! 1. adicione os usurios e grupos: # # # # # # # # useradd nagios useradd nagcmd groupadd nagios groupadd www-data mkdir /usr/local/nagios usermod -g nagios nagios usermod -g nagcmd nagios usermod -g www-data nagcmd

2. Baixe o pacote do nagios em: Download nagios-3.0.4.tar.gz - Sourceforge.net Caso o link no funcione, baixe pelo site do desenvolvedor: Nagios.org download 3. Salve em uma pasta separada, de preferncia /opt/nagios/ e descompacte o pacote do nagios: # tar xvfz nagios-3.0.tar.gz # cd nagios-3.0 4. Instale o nagios: # ./configure --with-command-group=www-data # make all # make install

# make install-init # make install-config # make install-commandmode 5. Copie todo seu contedo da pasta "contrib" para /usr/local/nagios/libexec: # cd /opt/nagios-3.0/contrib/ # cp -Rf * /usr/local/nagios/libexec 6. Vamos instalar os plugins. Baixe em: Download nagios-plugins-1.4.13.tar.gz - Sourceforge.net Caso o link no funcione, baixe no site do desenvolvedor em: Nagios.org download Salve na pasta onde foi descompactado o nagios e descompacte o arquivo nagios-plugins1.4.11.tar.gz usando o comando: # tar xvfz nagios-plugins-1.4.11.tar.gz Acesse a pasta nagios-plugins-1.4.11 e: # ./configure # make all # make install 7. Adicione o Nagios no Apache, o arquivo de configurao do Apache vai depender da sua instalao, aqui por padro, que usei como exemplo em Red Hat 4 AS, : # vi /etc/httpd/conf/httpd.conf Dentro do arquivo, adicione no final: # PAINEL NAGIOS ScriptAlias /nagios/cgi-bin /usr/local/nagios/sbin <Directory "/usr/local/nagios/sbin"> Options ExecCGI AllowOverride None Order allow,deny Allow from all </Directory> Alias /nagios /usr/local/nagios/share <Directory "/usr/local/nagios/share"> Allow from all </Directory> Obs.: Novamente atente as localizaes, pois dependendo de onde voc ordenou a instalao do Nagios, deve-se mudar os parmetros. FIQUE ATENTO! 8. Teste se os arquivos de configuraes esto corretos: # /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg Ou # nagios3 -v /etc/nagios3/nagios.cfg

Se receber confirmao de ok, perfeito, caso contrrio verifique os arquivos de configurao localizados em /usr/local/nagios/etc ou /usr/local/nagios/etc/objects. 9. Altere as permisses de cgi: # vi /usr/local/nagios/etc/cgi.cfg E na linha "use_authentication" altere o valor de "1" para "0". Obs.: Estou tirando a autenticao apenas para agilizar a implementao, aps isto vamos voltar a autenticao. 10. Inicie o servio: # /etc/init.d/nagios start 11. Teste: http://ipdoservidor/nagios

Configuraes Nagios
As configuraes do Nagios so fceis e intuitivas, mas bem detalhistas. Dependendo do local da instalao as configuraes ficam em: /usr/local/nagios/nagios.cfg /usr/local/nagios/cgi.cfg A configurao do Nagios dividida em 2 partes: 1. servidor e servio em si. Peo para que leiam com calma o arquivo nagios.cfg, nele ficam todas as configuraes. Neste artigo vou comentar o essencial: # Localizao do log log_file=/usr/local/nagios/var/nagios.log # Localizao dos arquivos de configuraes a serem checados: cfg_file=/usr/local/nagios/etc/objects/commands.cfg cfg_file=/usr/local/nagios/etc/objects/contacts.cfg cfg_file=/usr/local/nagios/etc/objects/timeperiods.cfg cfg_file=/usr/local/nagios/etc/objects/templates.cfg # Localizao do arquivo de configurao para monitorar a mquina local cfg_file=/usr/local/nagios/etc/objects/localhost.cfg # Localizao do arquivo de configurao para monitorar Windows cfg_file=/usr/local/nagios/etc/objects/windows.cfg # Localizao do arquivo de configurao para monitorar roteadores e switches cfg_file=/usr/local/nagios/etc/objects/switch.cfg # Localizao do arquivos de configurao para monitorar impressoras cfg_file=/usr/local/nagios/etc/objects/printer.cfg

Configuraes dos hosts

Agora vamos definir quais mquinas vamos checar, quais servios, IPs e tudo mais. Novamente depende da localizao da instalao: /usr/local/nagios/etc/objects/commands.cfg /usr/local/nagios/etc/objects/localhost.cfg /usr/local/nagios/etc/objects/printer.cfg /usr/local/nagios/etc/objects/switch.cfg /usr/local/nagios/etc/objects/windows.cfg /usr/local/nagios/etc/objects/contacts.cfg Vamos acessar o arquivo localhost.cfg. Logo no incio do arquivo voc vai visualizar uma seo chamada HOST DEFINITION, na qual vai definir os parmetros da mquina local. Altere o ip e o alias de sua preferncia. # HOST DEFINITION define host{ use linux-server ; Name of host template to use ; This host definition will inherit all variables that are defined ; in (or inherited by) the linux-server host template definition. host_name localhost alias localhost address 192.168.10.11 } 2. Outra seo que merece ateno : # HOST GROUP DEFINITION # Define an optional hostgroup for Linux machines define hostgroup{ hostgroup_name servidores-linux ; The name of the hostgroup alias Servidores Linux ; Long name of the group members localhost,squid,server2,server3,dbserver,server4,samba,saopaulo,newyork ; Comma separated list of hosts that belong to this group } Nela voc define grupos e quem pertence a este grupo, no caso os servidores. 3. Esta ltima seo tambm muito importante, pois determina quais servios sero checados para cada servidor. # SERVICE DEFINITIONS #####->PING<-####### define service{ use local-service ; Name of service template to use host_name localhost service_description PING check_command check_ping!100.0,20%!500.0,60% } define service{ use local-service ; Name of service template to use host_name squid service_description PING check_command check_ping!100.0,20%!500.0,60% } Existem dezenas de servios, escolha qual lhe atende e copie e cole novos, comente os que no utilizar.

Detalhe importante: Evite apagar os parmetros e linhas, de preferncia apenas comente-as, pois vai lhe salvar de muitos problemas futuros.

Arquivo printer.cfg
Neste arquivo voc configura para monitorar uma impressora de rede, a sintaxe idntica ao arquivo anterior, com suas devidas sees. # HOST DEFINITIONS - Definio de host, ip, grupo # Define a host for the printer we'll be monitoring define host{ use generic-printer ; Inherit default values from a template host_name Canon iPR Server T1 Ver1.0 ; The name we're giving to this printer alias Canon iPR Server T1 Ver1.0(BOTAFOGO) ; A longer name associated with the printer address 192.168.80.50 ; IP address of the printer hostgroups network-printers ; Host groups this printer is associated with } # HOST GROUP DEFINITIONS - Definio do grupo, nomes. # A hostgroup for network printers define hostgroup{ hostgroup_name network-printers ; The name of the hostgroup alias Impressoras REDE ; Long name of the group } # SERVICE DEFINITIONS - Define os servios a serem checados define service{ use generic-service host_name Canon iPR Server T1 Ver1.0 service_description PING check_command check_ping!3000.0,80%!5000.0,100% normal_check_interval 10 retry_check_interval 1 }

Arquivo switch.cfg
Neste arquivo voc configura para monitorar roteadores, switches na rede, a sintaxe idntica ao arquivo anterior, com suas devidas sees. # HOST DEFINITIONS - Definies de nome, ip, alias, grupo # Define the switch that we'll be monitoring define host{ use generic-switch ; Inherit default values from a template host_name roteador_espanha ; The name we're giving to this switch alias Roteador espanha ; A longer name associated with the switch address 192.168.75.5 ; IP address of the switch hostgroups roteadores ; Host groups this switch is associated with } # HOST GROUP DEFINITIONS - Definies de grupo, nome. # Create a new hostgroup for switches define hostgroup{ hostgroup_name roteadores ; The name of the hostgroup alias Roteadores ; Long name of the group } # SERVICE DEFINITIONS - Definio de servios # Create a service to PING to switch define service{ use

generic-service ; Inherit values from a template

host_name roteador_botafogo ; The name of the host the service is associated with service_description PING ; The service description check_command check_ping!200.0,20%!600.0,60% ; The command used to monitor the service normal_check_interval 5 ; Check the service every 5 minutes under normal conditions retry_check_interval 1 ; Re-check the service every minute until its final/hard state is determined }

Arquivo windows.cfg
Neste arquivo voc configura para monitorar mquinas Windows na rede, a sintaxe idntica ao arquivo anterior, com suas devidas sees. # HOST DEFINITIONS - Define o nome, alias, ip. # Define a host for the Windows machine we'll be monitoring # Change the host_name, alias, and address to fit your situation define host{ use windows-server ; Inherit default values from a template(NO ALTERE) host_name winserver ; The name we're giving to this host alias Windows 2003 Server ; A longer name associated with the host address 192.168.198.171 ; IP address of the host } # HOST GROUP DEFINITIONS - Define o grupo, nomes. # Define a hostgroup for Windows machines # All hosts that use the windows-server template will automatically be a member of this group define hostgroup{ hostgroup_name windows-servers ; The name of the hostgroup alias Windows Servers ; Long name of the group } # SERVICE DEFINITIONS - Define os servios. # Create a service for monitoring the version of NSCLient++ that is installed # Change the host_name to match the name of the host you defined above define service{ use generic-service host_name winserver service_description NSClient++ Version check_command check_nt!CLIENTVERSION }

Arquivo contacts.cfg
Este arquivo de extrema importncia, pois ele define quem ser avisado caso acontea algo com alguma mquina, servidor, impressora e roteadores. um arquivo pequeno que contm e-mail do administrador. # # # # CONTACTS Just one contact defined by default - the Nagios admin (that's you) This contact definition inherits a lot of default values from the 'generic-contact' template which is defined elsewhere.

define contact{ contact_name nagiosadmin ; Short name of user use generic-contact ; Inherit default values from generic-contact template (defined above) alias Administrador do Nagios ; Full name of user

email email@empresa.gov.br, cemail2@empresa.com.br ; <<***** CHANGE THIS TO YOUR EMAIL ADDRESS ****** } # CONTACT GROUPS - Define o nome do grupo bem como seus contatos do grupo. # We only have one contact in this simple configuration file, so there is # no need to create more than one contact group. define contactgroup{ contactgroup_name admins alias Nagios Administrators members nagiosadmin }

Extra
Aps tudo configurado, como fazer que o Nagios monitore mquinas Windows? Existem diversos programas e exemplos que permitem esta facilidade, vou mostrar a que utilizo h 2 anos. O software que deve ser instalado na mquina Windows chama-se NSClient++ e pode ser adquirido em: Download NSClient++ - Sourceforge.net (http://sourceforge.net/project/platformdownload.php?group_id=131326) Caso o link no funcione, acesse o site do desenvolvedor em: NSClient++ - Sourceforge.net (http://sourceforge.net/projects/nscplus/)

1. Instale o software. 2. Acesse o prompt do MSDOS. 3. Dentro do prompt do MSDOS entre no diretrio C:\NSClient++ (ou na pasta que voc instalou). 4. Digite: nsclient++ /install 5. Digite: nsclient++ systray 6. Clicar no menu iniciar > executar e digitar: services.msc 7. Dentro do Services localizar o servio "NSClientpp (Nagios) ", abra-o. Vai abrir uma janela onde deveremos clicar na aba "logon" e setar o seguinte servio: "Permitir que o servio interaja com a rea de trabalho". 8. Aplique e OK. 9. Antes de iniciar o servio "NSClientpp (Nagios)" devemos configurar dois arquivos importantes: NSC.ini e o counters.defs, que esto dentro da pasta descompactada. NSC.ini: Descomente as linhas com os mdulos dll, deixando comentado somente o NRPEL, ficando desta forma: FileLogger.dll CheckSystem.dll CheckDisk.dll NSClientListener.dll

;NRPEListener.dll SysTray.dll CheckEventLog.dll CheckHelpers.dll Encontre a linha "NSCLIENT PORT NUMBER" e descomente a linha onde mostra o nmero da porta "port=12489". Lembre-se de descomentar a linha, ficando desta forma: port=12489 Para finalizar encontre o a linha "ALLOWED HOST ADDRESSES" e coloque o IP do servidor nagios. Na linha "allowed_hosts=IP_SERVIDOR_NAGIOS". Lembre-se de descomentar a linha, ficando desta forma: allowed_hosts= 192.168.76.43 ;servidor nagios Agora o counters.defs: localize a linha "Portuguese_BR" e o substitua pela linha abaixo: [0x0416] Description = "Portuguese_BR" W2K_SystemTotalProcessorTime = "\Processador(_Total)\% tempo de processador" W2K_SystemSystemUpTime = "\Sistema\Tempo de ativao do sistema" W2K_MemoryCommitLimit = "\Memria\Limite de confirmao" W2K_MemoryCommitByte = "\Memria\Bytes confirmados"

You might also like