Tutoriais/Monitoramento/nagios-basic
De UnderLinux Wiki
Tabela de conteúdo |
Nagios - Configuração básica
NAGIOS é uma poderosa ferramenta Open Source para monitorar a Rede. Com ele é possível monitorar Micros, Switchs, Impressoras e tudo mais o que estiver ligado na rede. Ele verifica constantemente toda a disponibilidade dos equipamentos configurados. O Nagios pode ser configurado para mandar diversos tipos de avisos para os usuários cadastrados, sendo assim uma mão na roda para administradores de rede. # Programas necessários. - Nagios. - Plugins do Nagios. - Apache.
Instalando os programas
Instalar o Apache.
- Descompactar o tar.gz
tar xzvf httpd-2.0.49.tar.gz
- Compilar e instalar o Apache.
./configure make make install
Instalar o Nagios
- Obtenha o source do Nagios em http://www.nagios.org/downloads
- Descompactar o tar.gz
tar xzvf nagios-1.2.tar.gz
- Criar um diretório para o Nagios
mkdir -p /usr/local/nagios
- Criar um grupo para o Nagios
groupadd nagios
- Criar um usuário para o Nagios
adduser -g nagios -d /usr/local/nagios -s /bin/false nagios
DICA: Antes de compilar o Nagios, verifique se a biblioteca gd-lib está instalada no seu Linux, pois caso contrário não será possível ver o StatusMap, que é o Mapa da Rede. No debian use apt-get install libgd-dev.
- Compilação básica do Nagios sem suporte para Banco de Dados.
./configure --prefix=/usr/local/nagios --with-nagios-user=nagios --with-nagios-grp=nagios --with-cgiurl=/nagios/cgi-bin --with-htmurl=/nagios
Significados:
--prefix=/usr/local/nagios : Onde vão ser criados os arquivos de configuração.
--with-nagios-user=nagios : Usuário padrão
--with-nagios-grp=nagios : Grupo padrão
--with-cgiurl=/nagios/cgi-bin : Diretório onde estão os arquivos CGI.
--with-htmurl=/nagios : Diretório onde estão os arquivos Html.
Feito o configure continue..
make all
Se tudo estiver certo.
make install.
Faça ainda mais esses três comandos.
make install-ini (Ele vai criar o scritp de inicialização.) make install-commandmode ( Para configurar as permissões de pasta para aplicativos externos) make install-config ( Modelo de arquivo de configuração será criado em /usr/local/nagios/etc)
Instalar os Plugins do Nagios
- Descompactar o Tar.gz
tar xzvf nagios-plugins-1.3.1.tar.gz
- Compilar os Plugins.
./configure --prefix=/usr/local/nagios --with-nagios-user=nagios --with-nagios-grp=nagios make all make install
- Configurar o Apache.(Com autenticação para acesso ao Nagios).
- Editar o arquivo httpd.conf ( que nessa instalação vai estar em /usr/local/apache2/conf/) e adicionar as linhas.
ScriptAlias /nagios/cgi-bin /usr/local/nagios/sbin/ AllowOverride AuthConfig Options Exec CGI Order allow,deny Allow from all Alias /nagios /usr/local/nagios/share/ Options None AllowOverride AuthConfig Order allow,deny Allow from all AuthName "Acesso Nagios" AuthType Basic AuthUserFile /usr/local/nagios/etc/htpasswd.users require valid-user
- Criar o arquivo htpasswd.users que vai conter os nomes e as senhas dos usuários que vão ter acesso ao Nagios.
htpasswd -c /usr/local/nagios/etc/htpasswd.users nome_do_usuario chown www-data.www-data /usr/local/nagios/etc/htpasswd.users (Verificar o usuário do apache, no meu caso é www-data)
Observação.: A opção -c no comando htpasswd só deve ser usada na primeira vez para o arquivo ser criado, nas próximas vezes não é necessários usar com o -c.
Configurar o Nagios
Os arquivos de configuração estão dentro do diretório /usr/local/nagios/etc/ Todos os arquivos vem com o .sample na frente, que são exemplos, pode-se tirar os .sample dos arquivos e configura-los ou fazer uma cópia deles, que é o mais aconselhável. Mas para funcionarem não podem continuar com o .sample na frente.
- Descrição dos arquivos de configuração. nagios.cfg : arquivo de configuração principal do Nagios, responsável por iniciar os serviços de monitoramento. cgi.cfg : arquivo de configuração dos programas CGIs localizados na pasta sbin. hosts.cfg : arquivo contendo informações dos hosts. hostgroups.cfg : arquivo contendo informações dos hosts por grupos. contacts.cfg : contatos que deverão ser notificados caso ocorra algum problema. contactgroups.cfg : contatos divididos em grupos. service.cfg : serviços que deverão ser monitorados hostextinfo.cfg: onde serão definidos as imagens que serão apresentadas no statusmap. dependencies.cgf : informações de serviços que dependem de outros serviços. timeperiods.cfg : Informações sobre o período de monitoramento, podem ser definidos vários períodos de monitoramento diferentes. checkcommands.cfg : definição dos comandos que podem ser executados pelo Nagios. resource.cfg : macros definidas pelos usuários.
- Configurando os arquivos.
1 - Nagios.cfg Não é necessários mudar nada para essa configuração.
2 - cgi.cfg Existem duas possibilidades de configuração desse arquivo, com ou sem autenticação.
Sem autenticação: use_authentication = 0
Observação.: No browser ele ainda vai pedir a senha do usuário cadastrado no htpasswd.users pois isso é definido na configuração do Apache, mas ela não vai restringis o acesso nas funcionalidades do Nagios.
Com autenticação: use_authentication = 1
Nesse caso configure as seguintes opções também: authorized_for_system_information=usuario1, usuario2 authorized_for_configuration_information=usuario1, usuario2 authorized_for_system_commands= usuario1, usuario2 authorized_for_all_services=usuario1, usuario2 authorized_for_all_hosts=usuario1, usuario2 authorized_for_all_service_commands=usuario1, usuario2 authorized_for_all_host_commands=usuario1, usuario2
3 - hosts.cfg
Exemplo.
# Micro 1
define host{
use generic-host
host_name micro1
alias Micro 1
address 192.168.0.1
check_command check-host-alive
* parents firewall
max_check_attemps 10
notification_interval 120
notification_period 24x7
notification_options d,u,r
}
- host_name: é o nome do computador na rede.
- alias: é uma apelido amigável para o computador.
- address: é o endereço IP da máquina.
- check_command: é o comando a ser executado, está definido em checkcommand.cfg.
- max_ckeck_attempts: é o número máximo de vezes que o programa irá checar pelo serviço até reportar um erro.
- notification_interval: de quantos em quantos será enviado uma notificação para o usuário responsável pelo serviço.
- notification_period: qual o horário que o serviço ficará ativo.
- notification_options: quando notificar um erro, d-down, u-unrecheable,r-recovery.
Obs.: A opção parents é utilizada caso uma máquina seja ligada a outra, com um switch, temos uma máquina firewall e as outras máquinas acessam a internet através dela, então os outros hosts vão ser parents dessa máquina firewall, fica mais organizado.
4 - hostgroups.cfg
Exemplo.
#Servidores
define hostgroup{
hostgroup_name servidores
alias Servidores Linux
contact_groups administrador
members micro1
}
Na opção members, o micro1, deverá existir no arquivo de configuração hosts.cfg Na opção contact_groups, administrador deverá existir no arquivo de configuração contactgroups.cfg
5 - contacts.cfg
Exemplo.
# Cesar
define contact{
contact_name cesar
alias Cesar Domingos
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 cesar@e-mail.com.br
}
6 - contactgroups.cfg
Exemplo.
# Administrador
define contactgroup{
contactgroup_name administrador
alias Administrador da Rede
members cesar
}
7 - services.cfg
# Service definition
define service{
use generic-service ; Name of service template to use
host_name micro1
service_description PING
is_volatile 0
check_period 24x7
max_check_attempts 3
normal_check_interval 5
retry_check_interval 1
contact_groups administrador
notification_interval 120
notification_period 24x7
notification_options c,r
check_command check_ping!100.0,20%!500.0,60%
}
8 - hostextinfo.cfg
O diretório padrão das imagens é /usr/local/nagios/share/images/logos/ Para funcionar é preciso adiconar uma linha no arquivo cgi.cfg xedtemplate_config_file=/usr/local/nagios/etc/hostextinfo.cfg
Existe outro arquivo que é o serviceextinfo.cfg que coloca imagens para os serviços, de uma olhada no arquivo de configuração ele é muito simples.
Exemplo do hostextinfo.cfg
# Servidor de Boot
define hostextinfo{
name micro1
icon_image linux40.png
icon_image_alt Estação 1
vrml_image linux40.png
gd2_image linux40.gd2
register 0
}
define hostextinfo{
use micro1
host_name Micro1
2d_coords 65,425
3d_coords 3.0,0.0,0.0
}
Esses são os arquivos que são legais de colocar alguns exemplos, os outros é só verificar o próprio arquivo, sendo que todos eles tem bons exemplos.
- Verificando configuração.
Para verificar se a configuração está correta use o seguinte comando:
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
Com esse comando é possível verificar o erros e os warnings, e ver em qual arquivo está o erro. O Nagios não vai iniciar se existir algum erro.
- Iniciando o Nagios. Se tudo foi certo no passo anterior, o Nagios pode ser iniciado de duas maneiras.
1 - /usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg
ou
2 - /etc/init.d/nagios start
Dica: Verifique com atenção se o apache está funcionando, se todos os arquivos de configuração e todas as permissões para o usuário e grupo nagios.
- Acessando o Nagios.
Para acessar o nagios é simples, abra o browser e digite http://nome_ou_IP_maquina_apache/nagios Coloque o usuário e senha que foi cadastrado no htpasswd.users.
Boa Sorte.
Cesar A. Domingos cesar.domingos@uol.com.br


