GUIA DE INSTALAÇÃO DO DO NAGIOS LINUX JORDAN ROMANO
1.Licença O Nagios é distribuído sob os termos da GNU General Public License Versão 2 como foi publicado pela Free Software Foundation. Isto lhe garante permissão de copiar, distribuir e modificar o Nagios sob certas condições. Leia o arquivo 'LICENSE' que veio na distribuição do Nagios ou leia a versão online da licença para maiores detalhes. O Nagios é fornecido SEM QUALQUER GARANTIA DE QUALQUER TIPO, INCLUINDO A GARANTIA DE DESENHO, MECANTIBILIDADE E ADEQUAÇÃO PARA UM PROPÓSITO PARTICULAR. 2.Requisitos A única exigência para rodar o Nagios é ter um computador rodando Linux (ou variantes do UNIX) e um compilador C. Você provavelmente necessitará ter o TCP/IP configurado já que a maioria das checagens de serviços serão feitas através da rede. Você não é obrigado a usar os CGIs incluídos com o Nagios. No entanto, se você optar por usá-los, você precisará dos seguintes programas instalados: 1) Um servidor Web (de preferência Apache); 2) Biblioteca GD (gd library) de Thomas Boutell versão 1.6.3 ou superior (exigida pelas CGIs statusmap e trends). 2.1 Adição do usuário/grupo 'nagios' ao Sistema #adduser nagios 2.2 Download, Descompactação e Instalação do Nagios e dos plugins #mkdir /home/nagios/tmp --> Fazer o download do Nagios e dos plugins (www.nagios.org/download) para o diretório acima. #cd /home/nagios/tmp #ls -a ------------------------------------------------------------------------. nagios-2.0.tar.gz.. nagios-plugins-1.4.2.tar.gz ------------------------------------------------------------------------ --> Descompactar os arquivos: #tar xvfz <nome_do_arquivo_do_nagios> (ex.: #tar xvfz nagios-2.0.tar.gz) #tar xvfz <nome_do_arquivo_dos_plugins> (ex.: #tar xvfz nagios-plugins-1.4.2.tar.gz) --> Entrar no diretório do Nagios criado (ex.: #cd /home/nagios/tmp/nagios-2.0). --> Rodar o script de configuração do Nagios (Para ver as opções: #./configure --help): --prefix: diretório de instalação do Nagios; --with-nagios-user: usuário padrão; --with-nagios-group: grupo padrão; --with-htmurl: endereço web de acesso ao Nagios (padrão: http://<endereço_local>/nagios); --with-cgiurl: endereço web dos CGIs (padrão: http://<endereço_local>/nagios/cgi-bin). #./configure --prefix=/usr/local/nagios --with-nagios-user=nagios --with-nagios-group=nagios --with-htmurl=/nagios --with-cgiurl=/nagios/cgi-bin
*** Configuration summary for nagios 2.0 02-07-2006 ***: General Options: ------------------------- Nagios executable: nagios Nagios user/group: nagios,nagios Command user/group: nagios,nagios Embedded Perl: no Event Broker: yes Install ${prefix}: /usr/local/nagios Lock file: ${prefix}/var/nagios.lock Init directory: /etc/rc.d/init.d Host OS: linux-gnu Web Interface Options: ------------------------ HTML URL: http://localhost/nagios/ CGI URL: http://localhost/nagios/cgi-bin/ Traceroute (used by WAP): /usr/sbin/traceroute #make all (Compila os fontes) #make install (Instala o programa principal, as CGIs e os arquivos HTML) #make install-init (Instala o script de inicialização em /etc/rc.d/init.d) #make install-commandmode (Instala e configura permissões para o diretório que conterá o arquivo de comandos externos) #make install-config (Instala arquivos de configuração de exemplo [*SAMPLE*] em /usr/local/nagios/etc) --> Ir para o diretório onde foram baixados os plugins: (ex.: #cd /home/nagios/tmp/nagios-plugins- 1.4.2) OBS.: Para poderem ser usados, alguns dos plugins precisam que se tenha instalados no computador certos programas e/ou bibliotecas específicos. No caso da inexistência desses últimos na máquina, os plugins deles dependentes geralmente não são compilados. Destarte, antes de se iniciar a instalação dos plugins é recomendável a leitura do arquivo REQUIREMENTS. --> Rodar o script de configuração dos plugins (Para ver as opções: #./configure --help): #./configure --prefix=/usr/local/nagios --with-nagios-user=nagios --with-nagios-group=nagios #make all #make install OBS.: Caso se experimente algum problema relativo a acesso, pode ser necessário alterar algumas permissões. --> Diretório de instalação do Nagios (/usr/local/nagios): #chown nagios:nagios /usr/local/nagios --> Diretório de instalação dos plugins (/usr/local/nagios/libexec): #chown nagios:nagios /usr/local/nagios/libexec --> Arquivos dos plugins: #chown nagios:nagios /usr/local/nagios/libexec/*
2.3 Configuração da Interface Web Apache --> Localizar o arquivo httpd.conf: #find / -name httpd.conf (ex.: /etc/httpd/conf/httpd.conf) # vi /.../httpd.conf (colocar o caminho correto) --> Editar o arquivo, adicionando as linhas abaixo: ############################################################################### # HTML (http://localhost/nagios) AND CGI APACHE AUTHENTICATION ############################################################################### ScriptAlias /nagios/cgi-bin "/usr/local/nagios/sbin" <Directory "/usr/local/nagios/sbin"> AllowOverride AuthConfig Options ExecCGI Order allow,deny Allow from all AuthName "Nagios Access" AuthType Basic AuthUserFile /usr/local/nagios/etc/htpasswd.users require valid-user </Directory> Alias /nagios "/usr/local/nagios/share" <Directory "/usr/local/nagios/share"> AllowOverride AuthConfig Options None Order allow,deny Allow from all AuthName "Nagios Access" AuthType Basic AuthUserFile /usr/local/nagios/etc/htpasswd.users require valid-user </Directory> ############################################################################### --> Criar o arquivo com o usuário e senha de acesso ao Nagios: #htpasswd -c /usr/local/nagios/etc/htpasswd.users usuario1 --> Reiniciar o Apache: #/usr/sbin/httpd -k restart --> Após isso, já deve ser possível visualizar a interface web do Nagios a partir do endereço http://localhost/nagios no navegador. Entretanto, as CGIs não fornecerão informação alguma (ainda é necessário configurar corretamente o Nagios). 2.4 Configuração do Nagios --> Fazer backup dos arquivos de exemplo: #mkdir /usr/local/nagios/etc/sample #cp /usr/local/nagios/etc/*.cfg-sample /usr/local/nagios/etc/sample --> Renomear os arquivos.cfg-sample para.cfg: #for i in *cfg-sample; do mv $i `echo $i sed -e s/cfg-sample/cfg/`; done;
OBS.: Se o comando acima não funcionar, renomear um por um (ex.: #mv cgi.cfg-sample cgi.cfg). 2.4.1 Configuração utilizando-se o arquivo minimal.cfg --> Descrição dos arquivos de configuração utilizados: - nagios.cfg: arquivo principal de configuração do Nagios; - cgi.cfg: arquivo de configuração das CGIs; - minimal.cfg: arquivo de configuração minimalístico (utilizado sobretudo para fins de teste da instalação do Nagios); - resource.cfg: arquivo contendo macros definidas pelo usuário. --> Para testar, primeiro edite o arquivo nagios.cfg (#vi nagios.cfg), comentando as linhas abaixo: cfg_file=/usr/local/nagios/etc/checkcommands.cfg --> #cfg_file=/usr/local/nagios/etc/checkcommands.cfg cfg_file=/usr/local/nagios/etc/misccommands.cfg --> #cfg_file=/usr/local/nagios/etc/misccommands.cfg --> Edite o arquivo minimal.cfg (contacts, hosts, services) para que este fique de acordo com as configurações desejadas: # vi minimal.cfg OBS.: A descrição e um detalhamento maior dos diferentes itens desse arquivo (Time Periods, Commands, Contacts...) podem ser encontrados nas seções Object Definitions e Template-Based Object Configuration do Manual do Nagios. 2.4.2 Configuração utilizando-se arquivos específicos para cada item --> Ao invés de se utilizar um único e extenso arquivo de configuração (minimal.cfg), é possível separar esse arquivo em uma série de arquivos distintos, cada um contendo as informações relativas a apenas um item específico de configuração. -->Descrição dos arquivos de configuração utilizados: - nagios.cfg, cgi.cfg, resource.cfg: descritos no item anterior; - timeperiods.cfg: definições de horários considerados válidos para a realização de checagens e envio de notificações; - checkcommands.cfg: definições dos comandos de checagem de hosts e serviços; - misccommands.cfg: definições dos comandos de notificação e de processamento de dados de performance; - contacts.cfg: indivíduos que, possivelmente, deverão ser notificados no caso de problemas na rede; - contactgroups.cfg: usado para juntar os contatos em grupos, para fins de envio de alertas/notificações; - hosts.cfg: define servidores, estações de trabalho e demais dispositivos da rede em geral; - hostgroups.cfg: usado para juntar os hosts em grupos, para fins de sua exibição nas CGIs; - services.cfg: identificam os serviços que estão sendo monitorados nos diferentes hosts; - servicegroups.cfg: usado para juntar os serviços em grupos, para fins de sua exibição nas CGIs; - servicedependencies.cfg: permite a supressão de checagens e notificações para um serviço, com base no status de outro(s); - serviceescalations.cfg: permite o escalonamento de notificações para um determinado serviço; - hostdependencies.cfg: permite a supressão de checagens e notificações para um host, com base no status de outro(s); - hostescalations.cfg: permite o escalonamento de notificações para um determinado host;
- ext_host_info.cfg: usado para incrementar a saída das CGIs status, statusmap, statuswrl e extinfo; - ext_service_info.cfg: usado para incrementar a saída das CGIs status e extinfo. OBS.: Para os casos em que os arquivos descritos não existirem previamente (timeperiods.cfg, hosts.cfg, hostgroups.cfg...), eles deverão ser criados (ex.: #vi hosts.cfg), copiando-se e colando-se a parte relativa aos mesmos constante no arquivo minimal.cfg.