. Com ele possvel verificar o status de equipamentos ou de toda a rede. Tambm possvel criar grupos de usurios para receber determinados alertas. Sistema Operacional: Linux Mandriva Linux release 2006.0 for i586 Kernel 2.6.12-12mdk on an i686 Ambiente de Teste: Celeron 1.8, 512 RAM, HD 40GB Pr-Requisitos: Servidor Apache com suporte a CGI Bibliotecas de Imagem para o Status Map (Mapa da Rede) Plugin de VRML no Browser para o 3D- Status Map Instalao Instalando Servidor Apache 2.0 no Mandriva Instale o servidor Web Apache atravs dos repositrios do Mandriva. Caso desejar poder instalar o apache atravs do fonte. # urpmi apache-modules-2.0.54-13mdk apache-conf-2.0.54-12mdk apache-mpm-prefork-2.0.5413mdk apache-base-2.0.54-13mdk Instalando as bibliotecas necessrias de imagem: # urpmi libgd2 libgd2-devel libpng3 libpng3-devel libjpeg62 libjpeg62-devel zlib1 zlib1-devel Lista de pacotes das bibliotecas de imagem: libexpat0-devel-1.95.8-1mdk.i586 libfontconfig1-devel-2.3.2-5mdk.i586 libfreetype6-devel-2.1.10-8mdk.i586 libgd2-2.0.33-3mdk.i586 libgd2-devel-2.0.33-3mdk.i586 libjpeg62-devel-6b-37mdk.i586 libpng3-devel-1.2.8-1mdk.i586 libxorg-x11-devel-6.9-1.cvs20050915.2mdk.i586 libxpm4-devel-3.4k-31mdk.i586 pkgconfig-0.19-2mdk.i586 zlib1-devel-1.2.3-1mdk.i586 Antes de prosseguir a instalao e configurao do Nagios, certifique-se que o servidor Apache est
Compilando o Nagios
Antes de descompactar o cdigo fonte do Nagios e realizar a compilao necessrio criar o usurio e grupo que iro controlar os processos desse servio j definindo o home do mesmo como sendo o diretrio onde o Nagios ser instalado: # adduser nagios -d /usr/local/nagios CheckList: # tail -1 /etc/passwd # tail -q /etc/group # ls -ld /usr/local/nagios Descompacte o arquivo do cdigo fonte na pasta /usr/local/src por ser a pasta mais indicada pela FHS (File Hierarchy Standard) para armazenamento de fontes: # tar -xvzf nagios-2.4.tar.gz -C /usr/local/src/ # cd /usr/local/nagios-2.4 Iremos compilar o Nagios sem suporte a banco de dados, ento temos apenas que definir algumas informaes referente a localizaes.
--prefix=/usr/local/nagios -> Diretrio de Instalao --with-nagios-user=nagios -> Usurio do Nagios --with-nagios-grp=nagios -> Grupo do Nagios --with-cgiurl=/nagios/cgi-bin -> Endereo das pginas CGI's --with-htmurl=/nagios -> Endereo da url principal.
# ./configure --prefix=/usr/local/nagios \ --with-nagios-user=nagios \ --with-nagios-grp=nagios \ --with-cgiurl=/nagios/cgi-bin \ --with-htmurl=/nagios OBS: Preste ateno enquanto o "configure" checa todas as dependncias, pois caso falte alguma ele mostra uma mensagem de aviso na tela. Para prosseguir a instalao verifique se as informaes de instalao foram definidas corretamente. Exemplo:
*** Configuration summary for nagios 2.4 05-31-2006 ***: General Options: ------------------------Nagios executable: Nagios user/group: Command user/group: Embedded Perl: Event Broker: Install ${prefix}: Lock file: Init directory: Host OS: Web Interface Options: -----------------------HTML URL: CGI URL: Traceroute (used by WAP):
Caso alguma informao acima esteja errada, voc poder executar o comando "make clean" e repetir o processo de checagem com o configure. Para concluir a instalao voc dever executar os seguintes comandos: Criao dos binrios do nagios: # make all Instalao dos binrios no diretrio /usr/local/nagios:
# make install Instalao do script de inicializao: # make install-init Configurao das permisses para os arquivos de comando: # make install-commandmode Criao dos arquivos de configurao (/usr/local/nagios/etc): # make install-config
check_ping - Plugin para checar se um host est ativo. check_ssh - Plugin para checar se a porta do ssh est ativa. check_http - Plugin para checar se a pgina web est no ar. check_dns - Plugin para checar se o DNS est resolvendo nome.
No site www.nagiosexchange.org existem vrios plugins desenvolvidos pela Comunidade Software Livre. Alguns exemplos estaro sendo configurados mais adiante. Configurao
Configurao o Apache
Como o Nagios uma ferramenta totalmente voltada para WEB, preciso configurar o apache para que ele possa exibir as pginas de monitorao do Nagios, para isso edite o arquivo httpd.conf e adicione as linhas abaixo: # vi /etc/http/conf/httpd.conf ScriptAlias /nagios/cgi-bin "/usr/local/nagios/sbin/" <Directory "/usr/local/nagios/sbin/"> AllowOverride AuthConfig Options ExecCGI Order allow,deny Allow from all </Directory> Alias /nagios "/usr/local/nagios/share/" <Directory "/usr/local/nagios/share"> Options None AllowOverride AuthConfig Order allow,deny Allow from all AuthName "Nagios Access" AuthType Basic AuthUserFile /usr/local/nagios/etc/htpasswd.users require valid-user </Directory> Note que o acesso a pgina do Nagios ser feito atravs de senha, usando o recurso httpaccess do Apache. Ao trmino da configurao, no arquivo httpd.conf voc dever configurar os usurios que tero acesso ao Nagios. Informe no comando htpasswd o local onde o arquivo de usurios dever ser armazenado de acordo com a linha AuthUserFile definida no arquivo de configurao do apache (httpd.conf).
# htpasswd -c /usr/local/nagios/etc/htpasswd.users admin # chown apache:apache /usr/local/nagios/etc/htpasswd.users CheckList: # cat /usr/local/nagios/etc/htpasswd.users Reinicie o Apache para que as modificaes sejam ativadas. # /etc/init.d/httpd restart
contacts.cfg - Contatos que devero ser notificados caso ocorra algum problema. contactgroups.cfg - Contatos divididos em grupos. service.cfg - Servios que devero ser monitorados. serviceextinfo.cfg - Onde sero definidos as imagens de servios apresentadas em StatusMap dependencies.cfg - Informaes de servios que dependem de outros servios. timeperiods.cfg - Informaes sobre o perodo de monitoramento, podem ser definidos vrios perodos de monitoramento diferentes. escalations.cfg - Arquivo responsvel por criar coordenadas no Status Map. minimal.cfg (no usado) - Arquivo Exemplo com configurao mnima basicamente referenciando a mquina local. No habilite esse arquivo para no ter problemas de comandos duplicados no arquivo nagios.conf. misccommands.cfg (no usado) - Esse arquivo traz alguns exemplos de comandos que podero ser centralizados no arquivo checkcommands.cfg. bigger.cfg (no usado) - Arquivo com Alguns Exemplos. No dever ser ativado em nagios.conf.
Configurando Nagios
Para que o Nagios possa funcionar corretamente voc dever realizar a configurao nos arquivos nagios.cfg e cgi.cfg. Configurando o nagios.cfg: # vi nagios.cfg Voc ter que descomentar as linhas com prefixo cfg_file, que corresponde aos arquivos de configurao que o Nagios ir checar quando o servio for iniciado (Alguns ainda sero criados). Abaixo as principais linhas que voc dever estar configurando: log_file=/usr/local/nagios/var/nagios.log #S descomente os arquivos CFG que voc ir usar na customizao. cfg_file=/usr/local/nagios/etc/checkcommands.cfg #cfg_file=/usr/local/nagios/etc/misccommands.cfg #Deixar Comentada #cfg_file=/usr/local/nagios/etc/minimal.cfg #Deixar Comentada cfg_file=/usr/local/nagios/etc/contactgroups.cfg cfg_file=/usr/local/nagios/etc/contacts.cfg #cfg_file=/usr/local/nagios/etc/dependencies.cfg #cfg_file=/usr/local/nagios/etc/escalations.cfg cfg_file=/usr/local/nagios/etc/hostgroups.cfg cfg_file=/usr/local/nagios/etc/hosts.cfg cfg_file=/usr/local/nagios/etc/services.cfg cfg_file=/usr/local/nagios/etc/timeperiods.cfg cfg_file=/usr/local/nagios/etc/hostextinfo.cfg cfg_file=/usr/local/nagios/etc/serviceextinfo.cfg
resource_file=/usr/local/nagios/etc/resource.cfg nagios_user=nagios nagios_group=nagios Certifique-se que as linhas acima esto corretas em seu arquivo nagios.cfg. O arquivo cgi.cfg responsvel por determinar permisses de acesso a pgina de monitoramento do nagios, como tambm indicar a localizao dos arquivos hostextinfo.cfg e serviceextinfo.cfg que so usados para mapeamento de logos e imagens. Edite o arquivo checando as linhas abaixo: # vi cgi.cfg physical_html_path=/usr/local/nagios/share url_html_path=/nagios use_authentication=1 default_user_name=ronaldo authorized_for_system_information=ronaldo authorized_for_configuration_information=ronaldo authorized_for_system_commands=ronaldo authorized_for_all_services=ronaldo authorized_for_all_hosts=ronaldo authorized_for_all_service_commands=ronaldo authorized_for_all_host_commands=ronaldo default_statusmap_layout=3 xedtemplate_config_file=/usr/local/nagios/etc/hostextinfo.cfg xedtemplate_config_file=/usr/local/nagios/etc/serviceextinfo.cfg
friday saturday }
00:00-24:00 00:00-24:00
OBS: Em todos os arquivos de customizao que fizerem referncia ao tempo de monitoramento voc dever especificar o 24x7.
Onde: contact_name - Ser o nickname ou login do tcnico. alias - Nome Completo do Tcnico. service_notification_period - Perodo em que ele poder receber notificaes de servios que no esteja funcionando. host_notification_period - Perodo em que ele poder receber notificaes de hosts que estejam com problemas. service_notification_options - w,u,c,r. host_notification_options - d,u,r. service_notification_commands - Comando criado em checkcommands.cfg responsvel por enviar uma notificao de servio para o respectivo tcnico. host_notification_commands - Comando criado em checkcommands.cfg responsvel por enviar uma notificao de host para o respectivo tcnico. email - E-mail para qual sero enviadas as notificaes. Esse arquivo contacts.cfg poder conter todos os tcnicos que tero acesso ao Nagios para monitorao. Aps cadastrar todos os contatos voc dever inseri-los em grupos de contatos no arquivo contactgroups.cfg. Isso necessrio devido o Nagios realizar as notificaes sempre atravs dos grupos cadastrados. # vi contactgroups.cfg
define contactgroup { contactgroup_name alias members } tecnicos Tcnicos Empresa ronaldo
# vi hosts.cfg
define host{ name notifications_enabled event_handler_enabled flap_detection_enabled process_perf_data retain_status_information retain_nonstatus_information register } host-padrao 1 1 1 1 1 1 0
Perceba que no foi definido IP para o host-padrao justamente porque ele ser um modelo para os demais, assim voc no precisar editar as linhas em todas as mquinas a serem adicionadas no arquivo. O arquivo abaixo ter a lista de mquinas da Figura 1.0:
define host{ use host_name alias address check_command max_check_attempts notification_interval notification_period notification_options contact_groups } define host{ use host_name alias address check_command max_check_attempts notification_interval notification_period notification_options contact_groups } define host{ use host_name alias address check_command max_check_attempts notification_interval notification_period notification_options host-padrao host-linux-firewall Servidor Firewall 172.16.32.1 check-host-alive 10 120 24x7 d,u,r tecnicos
host-padrao host-linux-dns Servidor DNS Interno 172.16.32.2 check-host-alive 10 120 24x7 d,u,r tecnicos
contact_groups } define host{ use host_name alias address check_command max_check_attempts notification_interval notification_period notification_options contact_groups } define host{ use host_name alias address check_command max_check_attempts notification_interval notification_period notification_options contact_groups } define host{ use host_name alias address check_command max_check_attempts notification_interval notification_period notification_options contact_groups }
tecnicos
host-padrao host-linux-web Servidor Web 172.16.32.4 check-host-alive 10 120 24x7 d,u,r tecnicos
host-padrao host-linux-nagios Servidor de Monitoramento-Nagios 172.16.32.100 check-host-alive 10 120 24x7 d,u,r tecnicos
host-padrao host-win-web Servidor Web (IIS) 172.16.32.5 check-host-alive 10 120 24x7 d,u,r tecnicos
Aps cadastrar todas as mquinas que sero monitoradas voc dever associ-las em grupos, como por exemplo: servidores, desktops, roteadores. Para isso edite o arquivo hostgroups.cfg. # vi hostgroups.cfg
define hostgroup{ hostgroup_name alias members } define hostgroup{ hostgroup_name alias Roteador Mquinas Gateways host-linux-firewall
host-linux-dns,host-linux-mta, host-linux-web,host-linux-nagios
O primeiro servio a ser cadastrado no arquivo, ser o PING para realizar a checagem de mquinas ativas. Nesse servio voc poder cadastrar todas as mquinas do hosts.cfg basta indicar em
Exemplos de Monitoramentos de Servios: Importante: Voc s poder criar um servio para hosts j cadastrados. - Monitorando o Servidor Nagios (Mquina Local): Servios: * Checar Espao em Disco * Checar Quantidade de Usurios Logados. * Checar Quantidade de Processos # vi services.cfg
##### Monitoramento Servidor Nagios - LocalHost ####### # Monitorando Espao em Disco define service{ use host_name service_description is_volatile check_period max_check_attempts normal_check_interval retry_check_interval contact_groups notification_options notification_interval notification_period check_command }
service-padrao host-linux-nagios Tamanho em Disco 0 24x7 4 5 1 tecnicos w,u,c,r 960 24x7 check_local_disk!20%!10%!/
define service{ use host_name service_description is_volatile check_period max_check_attempts normal_check_interval retry_check_interval contact_groups notification_options notification_interval notification_period check_command }
service-padrao host-linux-nagios Usuarios Logados 0 24x7 4 5 1 tecnicos w,u,c,r 960 24x7 check_local_users!20!50
# Monitorando quantidade de Processos Ativos define service{ use service-generic host_name host-linux-nagios service_description Processos Ativos is_volatile 0 check_period 24x7 max_check_attempts 4 normal_check_interval 5 retry_check_interval 1 contact_groups tecnicos notification_options w,u,c,r notification_interval 960 notification_period 24x7 check_command check_local_procs!250!400 }
normal_check_interval retry_check_interval contact_groups notification_interval notification_period notification_options check_command } # Servio IMAP (Porta 143) define service{ use host_name service_description is_volatile check_period max_check_attempts normal_check_interval retry_check_interval contact_groups notification_interval notification_period notification_options check_command }
service-padrao host-linux-mta Servidor IMAP 0 24x7 3 5 1 tecnicos 120 24x7 w,u,c,r check_imap
Lembrete: O monitoramento dos servios s funcionar corretamente se os "check_command" j estiverem cadastrados no arquivo checkcommands.cfg.
define hostextinfo{ use linux-template host_name host-linux-firewall,host-linux-dns,host-linux-mta 2d_coords 65,425 3d_coords 3.0,0.0,0.0 } define hostextinfo{ use windows-template host_name host-win-web 2d_coords 65,425 3d_coords 3.0,0.0,0.0 }
Importante: Os campos host_name e service_description so obrigatrios, e devero ser preenchidos de acordo com o arquivo service.cfg. OBS: Todas as imagens definidas nos arquivos hostextinfo.cfg e serviceextinfo.cfg devero existir em
/usr/local/nagios/share/images/logos.
Testando as Configuraes
Ao trmino das configuraes importante checar se as mesmas foram realizadas com sucesso antes de iniciar o servio. Para isso execute: # /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg . . . Checking for circular paths between hosts... Checking for circular host and service dependencies... Checking global event handlers... Checking obsessive compulsive processor commands... Checking misc settings... Total Warnings: 0 Total Errors: 0 O comandos acima iro checar todos os arquivos ".cfg" que esto definidos em nagios.cfg totalizando a quantidade de erros que ele encontrou. Voc s dever seguir adiante caso seus erros e warnings estejam "zerados". Inicie o servio e acesse um browser para verificar se as configuraes foram realizadas com sucesso. # /etc/init.d/nagios start
- Descompacte o tema nuvola: # tar -xvzf nagios-nuvola-1.0.3.tar.gz -C /usr/local/nagios/share/ - Ser criado um diretrio html com todos os arquivos que voc dever copiar para /usr/local/nagios/share. # cd /usr/local/nagios/share/html # cp -a * ../ # chown nagios:nagios /usr/local/nagios/share -R - Copie novamente os logos do pacote imagepak para o diretrio de logos: # cd /usr/local/nagios/share # cp -a backup-tema-original/images/logos/* images/logos/ OBS: No sobrescreva as imagens que j existem! Testando e agradecimentos
Teste
Para fazer o teste, comprovando a efetivao da configurao, direcione o seu browser para o endereo (URL) que se encontra o Nagios. Ex.: http://IP_SERVIDOR/nagios/ http://www.vivaolinux.com.br/artigos/impressora.php?codigo=5189