Ndoutils e problemas de performance

Cristiano Casado <[email protected]>
Newsgroups gmane.network.nagios.user.brazil
Message-ID <[email protected]>
Olá a todos.

Estou utilizando em ambiente de laboratório o Nagios 3.0.6 com ndoutils
1.4b7 e MySQL 5.0 em uma máquina Linux CentOS 5.2 (2.6.18) x64 com 2GB ram e
processador Intel Xeon 2.50GHz.
Optei em utilizar o ndoutils para manter informacoes históricas de checks no
banco de dados (tables nagios_servicechecks e nagios_hostcheks), assim como
utilizar o NagVis para representacao gráfica das minhas redes.

Os testes funcionais foram bons, porém cheguei ao ponto do projeto em que
tive que fazer um benchmark com um número de 7.000 services, simulando o que
vou encontrar em ambiente de producao.

Carregando o broker ndomod porém sem executar o daemon ndo2db consigo uma
performance boa de service checks com quase 95% dos services sendo
processados na janela de 5 min e com uma latência de check baixa. Importante
ressaltar que todos os services são ativos (não passivos) com check_interval
de 5 minutos.

Ao executar o daemon ndo2db, onde o mesmo inicializa o socket unix e comeca
as operacoes em banco de dados, percebo uma perda considerável de
performance do service check com apenas 9% dos services sendo processados na
janela de 5 min, latência alta de checks e o contador de iowait da CPU entre
90% e 100%.  Services que deveriam ser processados pelo daemon do Nagios em
5 min são processados com delay de até 1 hora, o que inviabiliza a solucao
como ferramenta de monitoracao.

Como o MySQL está na mesma máquina, fiz o tunning nele (buffer, threads,
etc), apliquei índices adicionais as tabelas e testei passando as tabelas do
database nagios para o esquema "blackhole".  Desta forma o banco aceita
conexões e operacoes (select, insert, delete, ...) porém não grava os dados
em disco.  O iowait continuou alto e a performance ruim.  Não desconfio mais
do banco de dados.

Percebi que o daemon do ndo2db utiliza apenas 1 conexão com o banco de dados
para fazer diversas operacoes por segundo, sendo que cada operacao aguarda o
final da execucao anterior. O que particularmente acho ruim.

Pergunta:  alguém utiliza as facilidades do ndoutils com banco de dados em
grande instalacoes do Nagios ( >1500 hosts  >7000 services) e que não tenha
estes problemas de performance para me dar uma luz ?

As configuracoes do Nagios estão abaixo.
Segui algumas recomendacoes de tunning para o Nagios do documento
http://nagios.sourceforge.net/docs/3_0/tuning.html


Obrigado.
Cristiano Casado.


### Nagios Config ###
log_file=/var/log/nagios/nagios.log
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/status.dat
status_update_interval=10
nagios_user=nagios
nagios_group=nagios
check_external_commands=1
command_check_interval=15s
command_file=/var/nagios/rw/nagios.cmd
external_command_buffer_slots=4096
lock_file=/var/run/nagios.pid
temp_file=/var/nagios/nagios.tmp
temp_path=/tmp
event_broker_options=-1
broker_module=/usr/libexec/ndomod-3x.o config_file=/etc/nagios/ndomod.cfg
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
host_inter_check_delay_method=s
max_host_check_spread=30
max_concurrent_checks=0
check_result_reaper_frequency=5
max_check_result_reaper_time=5
check_result_path=/var/nagios/spool/checkresults
max_check_result_file_age=3600
cached_host_check_horizon=30
cached_service_check_horizon=60
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
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
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
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=1
enable_environment_macros=0
debug_level=0
debug_verbosity=1
debug_file=/var/log/nagios/nagios.debug
max_debug_file_size=1000000
cfg_file=/etc/nagiosql/commands.cfg
cfg_file=/etc/nagiosql/contactgroups.cfg
cfg_file=/etc/nagiosql/contacts.cfg
cfg_file=/etc/nagiosql/contacttemplates.cfg
cfg_file=/etc/nagiosql/hostdependencies.cfg
cfg_file=/etc/nagiosql/hostescalations.cfg
cfg_file=/etc/nagiosql/hostextinfo.cfg
cfg_file=/etc/nagiosql/hostgroups.cfg
cfg_dir=/etc/nagiosql/hosts
cfg_file=/etc/nagiosql/hosttemplates.cfg
cfg_file=/etc/nagiosql/servicedependencies.cfg
cfg_file=/etc/nagiosql/serviceescalations.cfg
cfg_file=/etc/nagiosql/serviceextinfo.cfg
cfg_file=/etc/nagiosql/servicegroups.cfg
cfg_dir=/etc/nagiosql/services
cfg_file=/etc/nagiosql/servicetemplates.cfg
cfg_file=/etc/nagiosql/timeperiods.cfg
------------------------------------------------------------------------------
The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your
production scanning environment may not be a perfect world - but thanks to
Kodak, there's a perfect scanner to get the job done! With the NEW KODAK i700
Series Scanner you'll get full speed at 300 dpi even with all image 
processing features enabled. http://p.sf.net/sfu/kodak-com
-- 
[email protected] mailing list
https://lists.sourceforge.net/lists/listinfo/nagios-users-br
Wiki: http://nagios-br.sf.net/wiki
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.