[FUG-BR] [OFF] Tutorial instalacao/configuracao NAGIOS

Ademir Costa Peixoto ademir em tellecom.com.br
Sexta Setembro 5 17:06:44 BRT 2008


Olá Diego,

    Faço coro aos parabéns dados por todos.
    E te digo que se for possível algo que faça o NAGIOS mandar um SMS pra 
celular usando algo GPRS ou MINI-MODEM USB ainda vai merecer um "doce".
    Mesmo assim é sempre bom ver que tem pessoas que compartilham seu 
trabalho no grupo.

    Ats,

    Ademir Peixoto

----- Original Message ----- 
From: "Diego" <shaamangra at gmail.com>
To: "Lista Brasileira de Discussão sobre FreeBSD (FUG-BR)" 
<freebsd at fug.com.br>
Sent: Friday, September 05, 2008 3:33 PM
Subject: [FUG-BR] [OFF] Tutorial instalacao/configuracao NAGIOS


Ola, boa tarde lista! Montei ( com ajuda do amigo Wendel) um pequeno
howto da configuracao do Nagios. Gostaria de opniao de voces e da
verificacao de possiveis erros, obrigado ! abracos !!



Nagios (R) é um sistema de monitoramento de rede e de aplicação. Ele
vigia hosts e serviços que você especificar, alertando você quando as
coisas correm mal. Algumas coisas que o Nagios pode fazer por voce:


     * Acompanhamento dos serviços de rede (SMTP, POP3, HTTP, NNTP, PING, 
etc);
     * Acompanhamento de recursos (processador carga, uso do disco, etc);
     * Design com simples plugins que permite aos usuários facilmente
desenvolver seu próprio serviço de controle;
     * Contato com notificações quando ocorrerem problemas de serviço
ou parada de hosts  (por e-mail, pager, ou definido pelo metodo pelo
usuário);
     * Log file rotation;
     * Interface web para visualização do atual estado de rede,
notificação e problema histórico, arquivo de registro, etc.

Ai vai um pequeno tutorial pra por o servico funcionando, para mais
detalhes acesse http://www.nagios.org



Bom, let`s go ! Com o usuario root, baixe e instale o apache:

#cd /usr/ports/www/apache13; make install clean


Edite o httpd.conf e insira as seguintes linhas:

#vi /usr/local/etc/apache/httpd.conf

ScriptAlias /nagios/cgi-bin /usr/local/www/nagios/cgi-bin/
<Directory "/usr/local/www/nagios/cgi-bin">
Options ExecCGI
Order allow,deny
Allow from all
AuthName "Nagios Access"
AuthType Basic
AuthUserFile /usr/local/etc/nagios/htpasswd.users
Require valid-user
</Directory>

Alias /nagios /usr/local/www/nagios

<Directory "/usr/local/www/nagios">
Options None
AllowOverride None
Order allow,deny
Allow from all
AuthName "Nagios Access"
AuthType Basic
AuthUserFile /usr/local/etc/nagios/htpasswd.users
Require valid-user
</Directory>


Voce precisa definir o arquivo onde vai ficar o passwd dos usuarios 
autorizados:

#touch /usr/local/etc/nagios/htpasswd.users


#htpasswd -c /usr/local/etc/nagios/htpasswd.users  ## caso queira
mudar a senha, basta nao incluir o flag -c.




Baixe e instale o nagios:

#cd /usr/ports/net-mgmt/nagios; make install clean

Os arquivos de configuracao do nagios ficam em /usr/local/etc/nagios.
Os principais arquivos sao:

cgi.cfg                       -> Esse arquivos diz onde o CGI vai
encontrar os arquivos de configuracao.
commands.cfg           -> Os comandos que o nagios oferece e suas
sintaxes. Aconselhavel da uma olhada.
nagios.cfg                 -> Arquivo principal do nagios, aqui voce
vai fazer o seguinte:

# cd /usr/local/etc/nagios; vi nagios.cfg


## Aqui voce ira procurar pelos cfg_file, nele voce setara` onde
estarao os arquivos de configuracao (objects):

cfg_file=/usr/local/etc/nagios/teste.cfg <-- Fica a seu criterio
definir o nome do arquivo.

# vi teste.cfg


## Aqui esta` tudo para localhost, cabe a voce fazer as alteracoes!! ##

## timeperiod voce define `grupos com horarios`. Voce pode especificar
diversos horarios. Aqui eu criei 3: 24x7 (24 horas,  ## 7 dias), Hora
de trabalho (de 9 ## as 17) e nonworkhours (no qual nao estamaremos
trabalhando).


define timeperiod{
timeperiod_name 24x7
alias 24 Hours A Day, 7 Days A Week
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
}


define timeperiod{
timeperiod_name workhours
alias "Normal" Working Hours
monday 09:00-17:00
tuesday 09:00-17:00
wednesday 09:00-17:00
thursday 09:00-17:00
friday 09:00-17:00
}
define timeperiod{
timeperiod_name nonworkhours
alias Non-Work Hours
sunday 00:00-24:00
monday 00:00-09:00,17:00-24:00
tuesday 00:00-09:00,17:00-24:00
wednesday 00:00-09:00,17:00-24:00
thursday 00:00-09:00,17:00-24:00
friday 00:00-09:00,17:00-24:00
saturday 00:00-24:00
}
define timeperiod{
timeperiod_name none
alias No Time Is A Good Time
}

## Contatos, a quem avisar caso algo ocorra:

define contact{
contact_name MY_NAME
alias Administrador da Rede
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  ## MTA tem que ta configurado 
!
host_notification_commands host-notify-by-email ## MTA tem que ta
configurado !
email email at email  # email para qual o nagios vai mandar as notificacoes.
}


## Voce pode definir quantos for preciso, por exemplo, um grupo para a
equipe tecnica da empresa:

define contact{
 contact_name local
 alias Equipe Tecnica da Empresa
 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 email at email
 }

## Aqui voce define o grupo de contatos; quais vao ser os membros, etc.

define contactgroup{
contactgroup_name equipe-de-suporte
alias EQUIPE DE SUPORTE
members ponha-os-nomes-aqui
}

## Definicao do host a ser monitorado

define host{
name servidor
notifications_enabled 1
event_handler_enabled 1
flap_detection_enabled 1
process_perf_data 1
retain_status_information 1
retain_nonstatus_information 1
register 0
}


# localhost
define host{
 use servidor
 host_name localhost \\ mude para o nome da sua maquina
 alias localhost \\ como a maquina pode ser chamada pelo nagios.
 address 127.0.0.1 \\ IP da maquina a ser monitorada
 check_command check-host-alive
 max_check_attempts 10
 notification_interval 120 \\ Tempo de notificacao, em segundos.
 notification_period 24x7 \\ Quando vai ser notificado?
 notification_options d,u,r
 contact_groups equipe-de-suporte \\ Quem vai ser notificado?
 }
## Voce tambem pode montar um grupo de hosts a ser monitorado:

define hostgroup{
hostgroup_name servidores
alias servidores
members localhost
}

### Servicos, aqui eh a parte legal !

define service{
name generic-service
active_checks_enabled 1
passive_checks_enabled 1
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
register 0
}
define service{
 name gw
 active_checks_enabled 1
 passive_checks_enabled 1
 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
 register 0
 }
# roteador
define service{
 use gw
 host_name z
 service_description PING
 is_volatile 0
 check_period 24x7
 max_check_attempts 2
 normal_check_interval 5
 retry_check_interval 3
 contact_groups equipe-de-suporte
 notification_interval 240
 notification_period 24x7
 notification_options c,r
 check_command check_ping!100.0,20%!500.0,60%
 }
# >>> este servidor
define service{
 use generic-service
 host_name localhost
 service_description SMTP
 is_volatile 0
 check_period 24x7
 max_check_attempts 2
 normal_check_interval 5
 retry_check_interval 3
 contact_groups equipe-de-suporte
 notification_interval 120
 notification_period 24x7
 notification_options c,r
 check_command check_smtp
 }
define service{
 use generic-service
 host_name localhost
 service_description IMAP
 is_volatile 0
 check_period 24x7
 max_check_attempts 2
 normal_check_interval 5
 retry_check_interval 3
 contact_groups equipe-de-suporte
 notification_interval 120
 notification_period 24x7
 notification_options c,r
 check_command check_imap
 }
define service{
 use generic-service
 host_name localhost
 service_description PING
 is_volatile 0
 check_period 24x7
 max_check_attempts 2
 normal_check_interval 5
 retry_check_interval 3
 contact_groups equipe-de-suporte
 notification_interval 120
 notification_period 24x7
 notification_options c,r
 check_command check_ping!100.0,20%!500.0,60%
 }
define service{
 use generic-service
 host_name localhost
 service_description POP3
 is_volatile 0
 check_period 24x7
 max_check_attempts 2
 normal_check_interval 5
 retry_check_interval 3
 contact_groups equipe-de-suporte
 notification_interval 120
 notification_period 24x7
 notification_options w,u,c,r
 check_command check_pop
 }
define service{
 use generic-service
 host_name localhost
 service_description HTTP
 is_volatile 0
 check_period 24x7
 max_check_attempts 2
 normal_check_interval 5
 retry_check_interval 3
 contact_groups equipe-de-suporte
 notification_interval 120
 notification_period 24x7
 notification_options w,u,c,r
 check_command check_http
 }
define service{
 use generic-service
 host_name localhost
 service_description / free space
 is_volatile 0
 check_period 24x7
 max_check_attempts 2
 normal_check_interval 5
 retry_check_interval 3
 contact_groups equipe-de-suporte
 notification_interval 120
 notification_period 24x7
 notification_options w,u,c,r
 check_command check_local_disk!50%!30%!/dev/ad0s1a # <<< !!!
 }
define service{
 use generic-service
 host_name localhost
 service_description /tmp free space
 is_volatile 0
 check_period 24x7
 max_check_attempts 2
 normal_check_interval 5
 retry_check_interval 3
 contact_groups equipe-de-suporte
 notification_interval 120
 notification_period 24x7
 notification_options w,u,c,r
 check_command check_local_disk!20%!10%!/dev/ad0s1e # <<< !!!
 }
define service{
 use generic-service
 host_name localhost
 service_description /usr free space
 is_volatile 0
 check_period 24x7
 max_check_attempts 2
 normal_check_interval 5
 retry_check_interval 3
 contact_groups equipe-de-suporte
 notification_interval 120
 notification_period 24x7
 notification_options w,u,c,r
 check_command check_local_disk!50%!30%!/dev/ad2s1f # <<< !!!
 }
define service{
 use generic-service
 host_name localhost
 service_description /var free space
 is_volatile 0
 check_period 24x7
 max_check_attempts 2
 normal_check_interval 5
 retry_check_interval 3
 contact_groups equipe-de-suporte
 notification_interval 120
 notification_period 24x7
 notification_options w,u,c,r
 check_command check_local_disk!20%!10%!/dev/ad0s1d # <<< !!!
 }
define service{
 use generic-service
 host_name localhost
 service_description Total Processes
 is_volatile 0
 check_period 24x7
 max_check_attempts 2
 normal_check_interval 5
 retry_check_interval 2
 contact_groups equipe-de-suporte
 notification_interval 240
 notification_period 24x7
 notification_options w,u,c,r
 check_command check_local_procs!150!200!RSZDT
 }
# <<< este servidor

define service{
    use             generic-service     ; Name of service template to use
    host_name               localhost
    service_description     SQUID
    is_volatile             0
    check_period            24x7
    max_check_attempts      3
    normal_check_interval   5
    retry_check_interval    1
    contact_groups          equipe-de-suporte
    notification_interval   120
    notification_period     24x7
    notification_options    w,u,c,r
    check_command           check_http
    }


 Lembrando que o sendmail (ou o que voce usar) deve esta` configurado.
Qualquer sugestao estamos ai !

-- 
Att.

Diego Queiroz dos Santos




Powered by ....

 (__)
 \\\'',)
 \/ \ ^
 .\._/_) FreeBSD
-------------------------
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd



Mais detalhes sobre a lista de discussão freebsd