Cristiano,

Tenho um ambiente bem parecido, atualmente sao 4300 services e os mesmos
problemas de performance acontecem com o ndoutil. Pelo que li, ele realmente
eh sequencial. Quando eh necessario um reload o nagios ainda tem que
atualizar todos os dados no mysql antes do nagvis ficar disponivel.
Pelo jeito a solucao eh esperar uma alternativa ao ndoutil ou uma correçao
do mesmo.

A unica coisa que fiz e que voce nao fez ainda eh agendar manutencao diaria
no bd:
db=nagios
echo "USE $db; DELETE FROM nagios_servicechecks WHERE start_time <= (NOW() -
INTERVAL 1 DAY)" | mysql $MYSQL_LOGIN >/dev/null
echo "USE $db; DELETE FROM nagios_hostchecks WHERE start_time <= (NOW() -
INTERVAL 1 DAY)" | mysql $MYSQL_LOGIN >/dev/null

for db in $(echo "SHOW DATABASES;" | mysql $MYSQL_LOGIN | grep -v -e
"Database" -e "information_schema" -e "test")
do
        TABLES=$(echo "USE $db; SHOW TABLES;" | mysql $MYSQL_LOGIN |  grep
-v Tables_in_)
        echo "Switching to database $db"
        for table in $TABLES
        do
                echo -n " * Optimizing table $table ... "
                echo "USE $db; OPTIMIZE TABLE $table" | mysql $MYSQL_LOGIN
>/dev/null
                echo "done."
        done
done

As tabelas nagios_servicechecks e nagios_hostchecks sao apenas de historico
e os dados antigos podem ser deletados ja que os logs ja tem a informacao.

Se voce teve algum progresso, favor nos reportar.

Atenciosamente,
Leonardo Neves Bernardo
Linux/Unix Specialist
LPIC3 (core+mixed environment+security) + RHCT



2009/5/7 Cristiano Casado <co.cas...@gmail.com>

> 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=nag...@localhost
> admin_pager=pagenag...@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
> --
> Nagios-users-br@lists.sourceforge.net mailing list
> https://lists.sourceforge.net/lists/listinfo/nagios-users-br
> Wiki: http://nagios-br.sf.net/wiki
>
------------------------------------------------------------------------------
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
-- 
Nagios-users-br@lists.sourceforge.net mailing list
https://lists.sourceforge.net/lists/listinfo/nagios-users-br
Wiki: http://nagios-br.sf.net/wiki

Responder a