Configurando o Nagios

De Wiki do Ouro Minas Palace Hotel
Revisão de 03h11min de 8 de agosto de 2020 por imported>Admin (uma edição)
(dif) ← Edição anterior | Revisão atual (dif) | Versão posterior → (dif)
Ir para navegação Ir para pesquisar

Introdução

Configuração de um ambiente de monitoramento com o software nagios, objetivo monitorar servidores Windows e ativos de rede, abaixo os objetos:

  • 1 ESXi - VMware Enterprise Plus 5.1
  • 2 Windows server 2008 AD
  • 3 Windows server 2008 operando com Serviços de Terminal (Conexões Thin Client)
  • 4 switches HP
    • 3CRBSG2983
    • 3CRBSG2983
    • Base Line 2824 - 3CVLUG24A
    • Base Line 2824 - 3C16479
    • HP V1910 - 24G
  • 1 Switch Dell
    • Power Connect 2894
  • 1 Applience Cisco - RV082

Versões utilizadas

# lsb_release -a                                                                                                 
Distributor ID: CentOS                                                                                                                  
Description:    CentOS release 6.5 (Final)                                                                                              
Release:        6.5                                                                                                                     
Codename:       Final                                                                                                                   
#
# uname -a                                                                                                       
Linux laralinux.laraassociados.com.br 2.6.32-431.3.1.el6.i686 #1 SMP Fri Jan 3 18:53:30 UTC 2014 i686 i686 i386 GNU/Linux               
#
# rpm -qa | grep nagios                                                                                          
nagios-plugins-1.4.16-1.el6.rf.i686                                                                                                     
nagios-3.2.3-3.el6.rf.i686


Configurando o Apache

  • /etc/httpd/conf.d/nagios.conf
ScriptAlias /nagios/cgi-bin "/usr/lib/nagios/cgi"

<Directory "/usr/lib/nagios/cgi">
#  SSLRequireSSL
   Options ExecCGI
   AllowOverride None
   Order allow,deny
   Allow from all
#  Order deny,allow
#  Deny from all
#  Allow from 127.0.0.1
   AuthName "Acesso ao Nagios CGI"
   AuthType Basic
   AuthUserFile /etc/nagios/htpasswd.users
   Require valid-user
</Directory>

Alias /nagios "/usr/share/nagios"

<Directory "/usr/share/nagios">
#  SSLRequireSSL
   Options None
   AllowOverride None
   Order allow,deny
   Allow from all
#  Order deny,allow
#  Deny from all
#  Allow from 127.0.0.1
   AuthName "Acesso ao Nagios SHARE"
   AuthType Basic
   AuthUserFile /etc/nagios/htpasswd.users
   Require valid-user
</Directory>


Configurando a conta para acesso ao nagios

# htpasswd -c /etc/nagios/htpasswd.users nagiosadmin
New password: 
Re-type new password: 
Adding password for user nagiosadmin

Configurando SNMP no Windows Server

Confgiuração realizada em Windows 2008 Server

Testando as consultas de SNMP

# snmpwalk -Os -v 2c -c PUBLIC 192.168.1.250

Configuração do Nagios

  • /etc/nagios/nagios.cfg
# grep -v "^#" nagios.cfg | grep -v "^$"
log_file=/var/log/nagios/nagios.log
cfg_file=/etc/nagios/objects/commands.cfg
cfg_file=/etc/nagios/objects/contacts.cfg
cfg_file=/etc/nagios/objects/timeperiods.cfg
cfg_file=/etc/nagios/objects/templates.cfg
cfg_file=/etc/nagios/objects/windows.cfg
cfg_file=/etc/nagios/objects/switch.cfg
cfg_file=/etc/nagios/objects/printer.cfg
object_cache_file=/var/nagios/objects.cache
precached_object_file=/var/nagios/objects.precache
resource_file=/etc/nagios/resource.cfg
status_file=/var/nagios/status.dat
status_update_interval=10
nagios_user=nagios
nagios_group=nagios
check_external_commands=1
command_check_interval=-1
command_file=/var/nagios/rw/nagios.cmd
external_command_buffer_slots=4096
lock_file=/var/nagios/nagios.pid
temp_file=/var/nagios/nagios.tmp
temp_path=/tmp
event_broker_options=-1
log_rotation_method=d
log_archive_path=/var/log/nagios/archives
use_syslog=1
log_notifications=1
log_service_retries=1
log_host_retries=1
log_event_handlers=1
log_initial_states=0
log_external_commands=1
log_passive_checks=1
service_inter_check_delay_method=s
max_service_check_spread=30
service_interleave_factor=s/var/spool/nagiosgraph/rrd/SRVFISCAL/FilePage___FilePage.rrd
host_inter_check_delay_method=s
max_host_check_spread=30
max_concurrent_checks=0
check_result_reaper_frequency=10
max_check_result_reaper_time=30
check_result_path=/var/nagios/spool/checkresults
max_check_result_file_age=3600
cached_host_check_horizon=15
cached_service_check_horizon=15
enable_predictive_host_dependency_checks=1
enable_predictive_service_dependency_checks=1
soft_state_dependencies=0
auto_reschedule_checks=0
auto_rescheduling_interval=30
auto_rescheduling_window=180
sleep_time=0.25
service_check_timeout=60
host_check_timeout=30
event_handler_timeout=30/var/spool/nagiosgraph/rrd/SRVFISCAL/FilePage___FilePage.rrd
notification_timeout=30
ocsp_timeout=5
perfdata_timeout=5
retain_state_information=1
state_retention_file=/var/nagios/retention.dat
retention_update_interval=60
use_retained_program_state=1
use_retained_scheduling_info=1
retained_host_attribute_mask=0
retained_service_attribute_mask=0
retained_process_host_attribute_mask=0
retained_process_service_attribute_mask=0
retained_contact_host_attribute_mask=0
retained_contact_service_attribute_mask=0
interval_length=60
check_for_updates=1
bare_update_check=0/var/spool/nagiosgraph/rrd/SRVFISCAL/FilePage___FilePage.rrd
use_aggressive_host_checking=0
execute_service_checks=1
accept_passive_service_checks=1
execute_host_checks=1
accept_passive_host_checks=1
enable_notifications=1
enable_event_handlers=1
process_performance_data=0
obsess_over_services=0
obsess_over_hosts=0
translate_passive_host_checks=0
passive_host_checks_are_soft=0
check_for_orphaned_services=1
check_for_orphaned_hosts=1
check_service_freshness=1/var/spool/nagiosgraph/rrd/SRVFISCAL/FilePage___FilePage.rrd
service_freshness_check_interval=60
check_host_freshness=0
host_freshness_check_interval=60
additional_freshness_latency=15
enable_flap_detection=1
low_service_flap_threshold=5.0
high_service_flap_threshold=20.0
low_host_flap_threshold=5.0
high_host_flap_threshold=20.0
date_format=us
p1_file=/usr/bin/p1.pl
enable_embedded_perl=1
use_embedded_perl_implicitly=1
illegal_object_name_chars=`~!$%^&*|'"<>?,()=
illegal_macro_output_chars=`~$&|'"<>
use_regexp_matching=0
use_true_regexp_matching=0
admin_email=nagios@localhost
admin_pager=pagenagios@localhost
daemon_dumps_core=0
use_large_installation_tweaks=0
enable_environment_macros=1
debug_level=0
debug_verbosity=1
debug_file=/var/log/nagios/nagios.debug
max_debug_file_size=1000000
  • /etc/nagios/cgi.cfg
# grep -v "^#" cgi.cfg | grep -v "^$"
main_config_file=/etc/nagios/nagios.cfg
physical_html_path=/usr/share/nagios
url_html_path=/nagios
show_context_help=0
use_pending_states=1
use_authentication=1
use_ssl_authentication=0
authorized_for_system_information=nagiosadmin
authorized_for_configuration_information=nagiosadmin
authorized_for_system_commands=nagiosadmin
authorized_for_all_services=nagiosadmin
authorized_for_all_hosts=nagiosadmin
authorized_for_all_service_commands=nagiosadmin
authorized_for_all_host_commands=nagiosadmin
default_statusmap_layout=3
default_statuswrl_layout=3
ping_syntax=/bin/ping -n -U -c 5 $HOSTADDRESS$
refresh_rate=90
escape_html_tags=1
host_unreachable_sound=down.wav
host_down_sound=down.wav
service_critical_sound=critical.wav
service_warning_sound=warning.wav
service_unknown_sound=unknown.wav
normal_sound=ok.wav
action_url_target=_blank
notes_url_target=_blank
lock_author_names=1
  • /etc/nagios/objects/commands.cfg

Adequação aos comandos para realizar consultas via SNMP para servidores Windows, neste caso evitando o uso de agentes instalados nos servidores que serão alvos de monitoramento, somente deve ser configurado o agente de SNMP nativo do windows.

define command{
        command_name    check_snmp_rmemory
        command_line    $USER1$/check_snmp_disk -H $HOSTADDRESS$ -C $ARG1$ -m r -w $ARG2$ -c $ARG3$
        }

define command{
        command_name    check_snmp_vmemory
        command_line    $USER1$/check_snmp_disk -H $HOSTADDRESS$ -C $ARG1$ -m v -w $ARG2$ -c $ARG3$
        }

define command{
        command_name    check_snmp_memory
        command_line    $USER1$/check_snmp_memory -H $HOSTADDRESS$ -C $ARG1$ -w $ARG2$ -c $ARG3$
        }

define command{
        command_name    check_win_cpuload
        command_line    $USER1$/check_win_cpuload.pl $HOSTADDRESS$ $ARG1$ $ARG2$ $ARG3$
        }

define command{
        command_name    check_win_snmp_cpuload
        command_line    $USER1$/check_snmp_load -H $HOSTADDRESS$ -C $ARG1$ -m W -w $ARG2$ -c $ARG3$
        }

Testando o Nagios

nagios -v /etc/nagios/nagios.cfg

Configuração do Nagiosgraph

Realizar download do nagiosgraph-1.4.4.tar.gz

Instalação das dependências

# yum install rdtool perl-rrdtool perl-GD
# yum install perl-Time-HiRes.i686


Instalando os pacotes do NagiosGraph

# gunzip -dc nagiosgraph-1.4.4.tar.gz | tar -xvf -
# cd nagiosgraph-1.4.4

Utilizado o script de instalação com as opções padrão

# ./install.pl --layout redhat

Resumo das configurações para referência

configuration:
 ng_layout            redhat
 ng_prefix            /
 ng_etc_dir           /etc/nagiosgraph
 ng_bin_dir           /usr/libexec/nagiosgraph
 ng_cgi_dir           /usr/lib/nagiosgraph/cgi-bin
 ng_doc_dir           /usr/share/doc/nagiosgraph
 ng_examples_dir      /usr/share/nagiosgraph/examples
 ng_www_dir           /usr/share/nagiosgraph/htdocs
 ng_util_dir          /usr/share/nagiosgraph/util
 ng_var_dir           /var/spool/nagiosgraph
 ng_rrd_dir           /var/spool/nagiosgraph/rrd
 ng_log_dir           /var/log/nagiosgraph
 ng_log_file          /var/log/nagiosgraph/nagiosgraph.log
 ng_cgilog_file       /var/log/nagiosgraph/nagiosgraph-cgi.log
 ng_url               /nagiosgraph
 ng_cgi_url           /nagiosgraph/cgi-bin
 ng_css_url           /nagiosgraph/nagiosgraph.css
 ng_js_url            /nagiosgraph/nagiosgraph.js
 nagios_cgi_url       /nagios/cgi-bin
 nagios_perfdata_file /tmp/perfdata.log
 nagios_user          nagios
 www_user             apache
 modify_nagios_config n
 nagios_config_file   /etc/nagios/nagios.cfg
 nagios_commands_file /etc/nagios/objects/commands.cfg
 modify_apache_config n
 apache_config_dir    /etc/httpd/conf.d
 apache_config_file   

Adicionando serviços

São adicionados em arquivos de configuração, exemplo de configuração do plugin para verificar os page file do windows.

Saida exibida pelo plugin na fase de testes

  • FilePage
# /usr/lib/nagios/plugins/check_snmp_disk -H 192.168.31.250 -C LARA_PUBLIC -m v -w 90 -c 99
Virtual Memory : (1885 M/20634 M) 9% ---
  • MemoriaGlobal
# /usr/lib/nagios/plugins/check_snmp_memory -H 192.168.31.250 -C LARA_PUBLIC -w 90 -c 95
Memory usage : 1.98 GB used for a total of 9.99 GB (19%), SWAP usage : 1.83 GB used for a total of 20.15 GB (9%)| total=10735845376B;9662260838;10199053107;0 used=2134507520B;0;0;0 swap=1965948928B;0;0;0 buffer=0B;0;0;0 cache=0B;0;0;0

Definição do dataset

  • /etc/nagiosgraph/datasetdb.conf
service=File Page&db=FilePage,usofp
service=MemoriaGlobal&db=MemoriaGlobal,pctusoram,pctusofp

Definição de um Label para o novo dataset

  • /etc/nagiosgraph/labels.conf
FilePage,usofp=Uso do PageFile
MemoriaGlobal,pctusoram=% Uso RAM
MemoriaGlobal,pctusofp=% Uso PageFile



  • /etc/nagiosgraph/map
# cp map map.edit
# vi map.edit

#-->  Servico: Windows Virtual Memory - File Page
#-->  Saida:   Virtual Memory : (1890 M/20634 M) 9% ---
/output:Virtual Memory : \((\d+).*\/(\d+).*\)\s+(\d)%.*/
and push @s, [ 'FilePage',
               [ 'usofp', GAUGE, $1 ] ];
# perl -c map.edit
map.edit syntax OK
# cp map.edit map

Verificação da geração dos databases

# ll /var/spool/nagiosgraph/rrd/SRVFISCAL

Realizando um dump dos dados coletados para XML

# rrdtool dump /var/spool/nagiosgraph/rrd/SRVFISCAL/FilePage___FilePage.rrd


Problemas Encontrados

Ao acessar a página do nagios e tentar acessar o histório ou detalhe do serviço (extinfo.cgi) gera a mensagem de erro "It appears as though you do not have permission to view information for this service..", identificado que no arquivo de configuração windows.cfg o campo service_description continha a palavra "Memória", removido o acento e o acesso foi resolvido.

Durante o período de depuração dos dados coletados par ao nagiosgraph foi necessário ajustar a hora do servidor que estava incorreta além de alguns ajustes as expressões regulares para coleta e insert dos dados para o RRD, para zerar as estatísticas e começar um gráfico do zero é necessário remover o arquivo de dados, o próprio nagiosgraf cria outro.... demora....

# rm /var/spool/nagiosgraph/rrd/SRVFISCAL/FilePage___FilePage.rrd