[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