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. Diego Queiroz nos contribui com um ótimo tutorial para configurar este serviço muito utilizado pelos administradores de redes.
Algumas coisas que o Nagios pode fazer por voce:
- Acompanhamento dos serviços de rede (SMTP, POP3, HTTP, NNTP, PING, etc);
- Acompanhamento de acolhimento 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);
- Rotação de Log automática;
- O apoio para a implementação redundante acompanhamento hosts;
- Opcional interface web para visualização atual estado de rede, notificação e problema histórico, arquivo de registro, etc.
Ai vai um pequeno tutorial BÁSICO para por o serviço funcionando:
Com o usuario root, baixe e instale o apache:
# cd /usr/ports/www/apache22; make install clean
Aqui vai a parte de autenticação da página, o arquivo com senha fica em /usr/local/etc/nagios/htpasswd.users. Mas fica a seu critério escolher o nome do arquivo, desde que também seja especificado no httpd.conf.
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/ bin"> Options ExecCGI Order allow,deny Allow from all AuthName "Nagios Access" AuthType Basic AuthUserFile /usr/local/etc/nagios/htpasswd.users Require valid-user # Apenas usuarios cadastrado terão acesso.
Aliasw /nagios /usr/local/ww/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
Vamos criar o arquivo onde ficará a senha dos usuarios para acesso à página:
# touch /usr/local/etc/nagios/htpasswd.users
# htpasswd -c /usr/local/etc/nagios/htpasswd.users nagiosadmin
Baixe e instale o nagios:
# cd /usr/ports/net-mgmt/nagios; make install clean
Apos a instalação, voce verá a presenca de alguns arquivos *-sample, copie esses arquivos para seus respectivos nomes, terminado por .cfg. O arquivo principal é o nagios.cfg, lá você deve definir onde estarão os arquivos de configuração.
# cd /usr/local/etc/nagios; vi nagios.cfg
Cada cfg_file corresponde a um arquivo de configuração. Para facilitar iremos fazer o seguinte: definir um diretório único para todos os arquivos de configuração. Nesse caso faça o seguinte: cfg_dir=/usr/local/etc/nagios/conf
# mkdir /usr/local/etc/nagios/conf
Mova os arquivos de configuração para o diretório:
# mv /usr/local/etc/nagios/*.cfg /usr/local/etc/nagios/conf
Iremos dividir os arquivos de configuração em 3 partes:
1 para as maquinas - hosts.cfg 1 para o grupo de maquinas - hostgroup.cfg 1 para os servicos - services.cfg 1 para o timeperiod - timeperiod.cfg 1 para os contatos - contacts.cfg 1 para o grupo de contatos - contactgroups.cfg
No mesmo diretório:
# vi hosts.cfg
########################################################## ## OBS:Aqui está tudo para localhost, cabe a voce fazer as alteracoes!! ## # #########################################################
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 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? }
###############################################################
# vi hostgroup.cfg
define hostgroup{ hostgroup_name servidores alias servidores members localhost //caso tenha mais de um host, separe com uma virgula }
# vi services.cfg
### Servicos, aqui eh a parte legal !
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 } 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 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 240 notification_period 24x7 notification_options c,r check_command check_ping!100.0,20%!500.0,60% } # >>> este servidor define service{ use gw 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 gw 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 gw 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 gw 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 gw 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 gw 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 gw 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 gw 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 gw 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 gw 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 } # <<<> # vi timeperiod.cfg 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 } # vi contact.cfg define contact{ contact_name diego alias sysadmin 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
Este endereo de e-mail est sendo protegido de spam, voc precisa de Javascript habilitado para v-lo
} # vi contactgroup.cfg define contactgroup{ contactgroup_name equipe-de-suporte alias EQUIPE DE SUPORTE members diego,nagios } Pronto! Agora basta acessar pelo http://x.x.x.x/nagios Autor: Diego Queiroz <
Este endereo de e-mail est sendo protegido de spam, voc precisa de Javascript habilitado para v-lo
> Abraços!
|