Configurando o Nagios: mudanças entre as edições
2532252>Jefferson |
imported>Admin m uma edição |
||
(Sem diferença)
| |||
Edição atual tal como às 03h11min de 8 de agosto de 2020
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