visualização de dados usando nagios e ana
DESCRIPTION
Nagios World Conference Latin America - Visualização de dados usando Nagios e ANATRANSCRIPT
Visualização de dados usando Nagios e ANA (Advanced Nagios Adapter)
Visualização de dados é o estudo da representação visual dos dados.
O que é visualização de dados ?
Seu principal objetivo é comunicar a informação de maneira clara e efetiva utilizando meios gráficos.
Visualização de dados usando Nagios e ANA (Advanced Nagios Adapter)
Tipos de gráficos
Visualização de dados usando Nagios e ANA (Advanced Nagios Adapter)
Tabela - Normalmente composta por um número finito de
colunas e de um número infinito de linhas. O dado é bruto e
requer maior esforço para a sua interpretação.
Name Surname Movies
James Bond 24
Jason Bourne 3
Jack Bauer 195
Justin Bieber 2
Visualização de dados usando Nagios e ANA (Advanced Nagios Adapter)
Gráfico de linhas e área - Usado com muitos ou poucos
pontos e séries de tempo. É o mais versátil e comum gráfico
utilizado.
Visualização de dados usando Nagios e ANA (Advanced Nagios Adapter)
Gráficos de barras e colunas - São usados quando o série
de tempo é melhor definida e os pontos mais espaçados ao
longo do tempo.
Visualização de dados usando Nagios e ANA (Advanced Nagios Adapter)
Grafos – São usados para demonstrar uma relação
direta entre os dados.
Visualização de dados usando Nagios e ANA (Advanced Nagios Adapter)
Gráfico de pizza - Usado para representar frações de um
montante. Comum na apresentação de tendências e
comparativos.
Visualização de dados usando Nagios e ANA (Advanced Nagios Adapter)
Os Dashboards e Scorecards representam os sistemas
de informação executiva.
São usados para acompanhamento de performance
utilizando métricas financeiras e não financeiras (KPI).
Organização de dados
Visualização de dados usando Nagios e ANA (Advanced Nagios Adapter)
Scorecards são mais vinculados à estratégia de negócio e
ao acompanhamento de progresso dos objetivos
estratégicos e táticos.
Visualização de dados usando Nagios e ANA (Advanced Nagios Adapter)
Dashboards são mais vinculados à monitorização de
performance dos processos operacionais.
Visualização de dados usando Nagios e ANA (Advanced Nagios Adapter)
Infográficos - São representações visuais de
informações, dados ou conhecimento, frequentemente
usadas para suportar uma informação e apresentá-la em
um determinado contexto.
Visualização de dados usando Nagios e ANA (Advanced Nagios Adapter)
Espresso = Café preto servido em uma xícara 2/3 cheia.
Espresso Macchiato = Café preto servidor com um pouco de
leite quente ou frio.
Caffé Latte = Iguais proporções de café preto e leite com 2cm
de leite vaporizado na superfície.
Cappuccino = uma bebida com 1/3 espresso, 1/3 leite
vaporizado e 1/3 de espuma de leite vaporizado.
Caffé Mocca = um latte com chocolate.
Os dados
Visualização de dados usando Nagios e ANA (Advanced Nagios Adapter)
O gráfico
Visualização de dados usando Nagios e ANA (Advanced Nagios Adapter)
O infográfico
Visualização de dados usando Nagios e ANA (Advanced Nagios Adapter)
Bibliotecas Gráficas
Google Datavisualization APIhttp://code.google.com/apis/charttools/index.html
Infovis Toolkithttp://thejit.org
Protovishttp://vis.stanford.edu/protovis/
Amchartshttp://www.amcharts.com/
ANA – Advanced Nagios Adapter
Visualização de dados usando Nagios e ANA (Advanced Nagios Adapter)
Histórico
Em 2009 a OpServices havia lançado o OpMon 4.0
com uma série melhorias.
Porém essas melhorias dependiam exclusivamente
da arquitetura do OpMon (opcfg/opdb).
Visualização de dados usando Nagios e ANA (Advanced Nagios Adapter)
Problema
Como tornar compatível com Nagios
as aplicações desenvolvidas para o
OpMon ?
Visualização de dados usando Nagios e ANA (Advanced Nagios Adapter)
No final de 2010 foi criado o ANA - Advanced Nagios Adapter
com sendo um adaptador único entre Nagios e módulos OpMon.
Visualização de dados usando Nagios e ANA (Advanced Nagios Adapter)
Solução
Módulo
Módulo
Módulo
Visualização de dados usando Nagios e ANA (Advanced Nagios Adapter)
Arquitetura
- Codificado em na linguagem PHP
- Linguagem amplamente usada para aplicações web
- Inúmeros módulos disponíveis
- Simples, robusta e rápida
- Utiliza interface baseada na arquitetura REST de webservices
- Protocolos menos complexos
- Mais poder e flexibilidade nas comunicações
- Arquitetura amplamente disponível nas empresas
- Menos overhead de protocolo
Visualização de dados usando Nagios e ANA (Advanced Nagios Adapter)
- Dados em formato JSON/JSONP
- Notação simples de dados
- Suporte nativo em várias linguagens
- Mínimo overhead em relação ao XML
- Chamadas AJAX entre domínios distintos
Visualização de dados usando Nagios e ANA (Advanced Nagios Adapter)
http://localhost/ana/?action=gethosts
{
"localhost":"localhost"
}
http://localhost/ana/?action=gethosts&callback=Run
Run({"localhost":"localhost"})
Exemplo de requisição webservices e retorno em JSON
Retorno em JSONP
Visualização de dados usando Nagios e ANA (Advanced Nagios Adapter)
/ana/?action=getServices&host_id=localhost
{
"Total Processes":"localhost!Total Processes",
"Swap Usage":"localhost!Swap Usage",
"SSH":"localhost!SSH",
"Root Partition":"localhost!Root Partition",
"PING":"localhost!PING",
"HTTP":"localhost!HTTP",
"Current Users":"localhost!Current Users",
"Current Load":"localhost!Current Load"
}
Visualização de dados usando Nagios e ANA (Advanced Nagios Adapter)
/ana/?action=getStatus&jsonData={"objectType":"1","met
ricId":["all"],"objectId":["localhost!Current Load"]}
[{"accept_passive_checks":1,"acknowledged":0,"acknowledgement_type":0,"action_url":"","action_url_expanded":"","active_checks_enabled":1,"check_command":"check_load!5.0!4.0!3.0!10.0!6.0!4.0","check_interval":1,"check_options":0,"check_period":"24x7","check_type":0,"checks_enabled":1,"comments":[],"comments_with_info":[],"contacts":["root"],"current_attempt":1,"current_notification_number":0,"custom_variable_names":[],"custom_variable_values":[],"description":"Current Load","display_name":"Current Load","downtimes":[],"downtimes_with_info":[],"event_handler":"","event_handler_enabled":1,"execution_time":0.010943,"first_notification_delay":0,"flap_detection_enabled":1,"groups":[],"has_been_checked":1,"high_flap_threshold":0,"host_accept_passive_checks":1,"host_acknowledged":0,"host_acknowledgement_type":0,"host_action_url":"","host_action_url_expanded":"","host_active_checks_enabled":1,"host_address":"127.0.0.1","host_alias":"localhost","host_check_command":"check-host-alive","host_check_flapping_recovery_notification":0,"host_check_freshness":0,"host_check_interval":5,"host_check_options":0,"host_check_period":"","host_check_type":0,"host_checks_enabled":1,"host_childs":[],"host_comments":[],"host_comments_with_info":[],"host_contacts":["root"],"host_current_attempt":1,"host_current_notification_number":0,"host_custom_variable_names":[],"host_custom_variable_values":[],"host_display_name":"localhost","host_downtimes":[],"host_downtimes_with_info":[],"host_event_handler_enabled":1,"host_execution_time":0.022574,"host_first_notification_delay":0,"host_flap_detection_enabled":1,"host_groups":["ssh-servers","http-servers","debian-servers","all"],"host_hard_state":0,"host_has_been_checked":1,"host_high_flap_threshold":0,"host_icon_image":"base\/debian.png","host_icon_image_alt":"Debian GNU\/Linux","host_icon_image_expanded":"base\/debian.png","host_in_check_period":1,"host_in_notification_period":1,"host_initial_state":0,"host_is_executing":0,"host_is_flapping":0,"host_last_check":1302700624,"host_last_hard_state":0,"host_last_hard_state_change":1302640504,"host_last_notification":0,"host_last_state":0,"host_last_state_change":1302640504,"host_last_time_down":0,"host_last_time_unreachable":0,"host_last_time_up":1302700634,"host_latency":0.19,"host_long_plugin_output":"","host_low_flap_threshold":0,"host_max_check_attempts":10,"host_modified_attributes":0,"host_modified_attributes_list":[],"host_name":"localhost","host_next_check":1302700934,"host_next_notification":0,"host_no_more_notifications":1,"host_notes":"Debian GNU\/Linux servers","host_notes_expanded":"Debian GNU\/Linux servers","host_notes_url":"","host_notes_url_expanded":"","host_notification_interval":0,"host_notification_period":"24x7","host_notifications_enabled":1,"host_num_services":8,"host_num_services_crit":0,"host_num_services_hard_crit":0,"host_num_services_hard_ok":8,"host_num_services_hard_unknown":0,"host_num_services_hard_warn":0,"host_num_services_ok":8,"host_num_services_pending":0,"host_num_services_unknown":0,"host_num_services_warn":0,"host_obsess_over_host":1,"host_parents":[],"host_pending_flex_downtime":0,"host_percent_state_change":0,"host_perf_data":"rta=0.070000ms;5000.000000;5000.000000;0.000000 pl=0%;100;100;0","host_plugin_output":"PING OK - Packet loss = 0%, RTA = 0.07 ms","host_pnpgraph_present":-1,"host_process_performance_data":1,"host_retry_interval":1,"host_scheduled_downtime_depth":0,"host_services":["Total Processes","Swap Usage","SSH","Root Partition","PING","HTTP","Current Users","Current Load"],"host_services_with_state":[["Total Processes",0,1],["Swap Usage",0,1],["SSH",0,1],["Root Partition",0,1],["PING",0,1],["HTTP",0,1],["Current Users",0,1],["Current Load",0,1]],"host_state":0,"host_state_type":1,"host_statusmap_image":"base\/debian.gd2","host_total_services":8,"host_worst_service_hard_state":0,"host_worst_service_state":0,"host_x_3d":0,"host_y_3d":0,"host_z_3d":0,"icon_image":"","icon_image_alt":"","icon_image_expanded":"","in_check_period":1,"in_notification_period":1,"initial_state":0,"is_executing":0,"is_flapping":0,"last_check":1302700721,"last_hard_state":0,"last_hard_state_change":1302640504,"last_notification":0,"last_state":0,"last_state_change":1302640504,"last_time_critical":0,"last_time_ok":1302700721,"last_time_unknown":0,"last_time_warning":0,"latency":0.097,"long_plugin_output":"","low_flap_threshold":0,"max_check_attempts":4,"modified_attributes":0,"modified_attributes_list":[],"next_check":1302700781,"next_notification":0,"no_more_notifications":0,"notes":"","notes_expanded":"","notes_url":"","notes_url_expanded":"","notification_interval":0,"notification_period":"24x7","notifications_enabled":1,"obsess_over_service":1,"percent_state_change":0,"perf_data":"load1=0.260;5.000;10.000;0; load5=0.400;4.000;6.000;0; load15=0.340;3.000;4.000;0;","plugin_output":"OK - load average: 0.26, 0.40, 0.34","pnpgraph_present":-1,"process_performance_data":1,"retry_interval":1,"scheduled_downtime_depth":0,"state":0,"state_type":1,"host_id":"localhost","service_id":"Current Load","service_description":"Current Load","current_state":0,"problem_has_been_acknowledged":0,"metrics":{"data":{"load1":{"metric":"load1","value":"0.260","unit":"","warning":"5.000","critical":"10.000","min":"0","max":""},"load5":{"metric":"load5","value":"0.400","unit":"","warning":"4.000","critical":"6.000","min":"0","max":""},"load15":{"metric":"load15","value":"0.340","unit":"","warning":"3.000","critical":"4.000","min":"0","max":""}}},"metrics_num":3,"metrics_id":"all","info_link":"\/usr\/lib\/cgi-bin\/nagios3extinfo.cgi?type=2&host=localhost&service=Current Load","info_url":false,"oid":null}]
Visualização de dados usando Nagios e ANA (Advanced Nagios Adapter)
["metrics"]=>
object(stdClass)#2 (1) {
["data"]=>
object(stdClass)#3 (3) {
["load1"]=>
object(stdClass)#4 (7) {
["metric"]=>
string(5) "load1"
["value"]=>
string(5) "0.260"
["unit"]=>
string(0) ""
["warning"]=>
string(5) "5.000"
["critical"]=>
string(6) "10.000"
["min"]=>
string(1) "0"
["max"]=>
string(0) ""
}
Dados de performance - Load
Visualização de dados usando Nagios e ANA (Advanced Nagios Adapter)
- Possui uma interface própria para gerenciamento de
módulos.
Visualização de dados usando Nagios e ANA (Advanced Nagios Adapter)
- Provê suporte centralizado mas não depende
de banco de dados.
- Autenticação Básica.
Visualização de dados usando Nagios e ANA (Advanced Nagios Adapter)
- Informações de disponibilidade e de performance.
- O primeiro módulo a utilizar a arquitetura é o DaVINCI.
Visualização de dados usando Nagios e ANA (Advanced Nagios Adapter)
Visualização de dados usando Nagios e ANA (Advanced Nagios Adapter)
Benefícios
- Utilização de padrões web (REST, JSON/JSONP)
- Acesso aos dados do Nagios por intermédio de
webservices e em tempo real.
- Simplificação e padronização da interface de acesso.
- Pode ser utilizado com vários brokers (NDO,
Mklivestatus, NDO Nagios XI, GWO Foundation)
Visualização de dados usando Nagios e ANA (Advanced Nagios Adapter)
- Possibilita a integração com aplicações e APIs
externas, como por exemplo a geração de relatórios
usando Eclipse BIRT e Jasper Reports.
- Possibilidade de integração com APIs de desenvolvimento para mobile.
- Melhorias na interface webservices.
- Suporte aos métodos DELETE, PUT, UPDATE.
- Documentação de usuário e da API.
- Suporte a outros brokers.
- Suporte a OAuth.
Visualização de dados usando Nagios e ANA (Advanced Nagios Adapter)
Futuro
- Publicação do software como código aberto
http://www.opmon.org
Visualização de dados usando Nagios e ANA (Advanced Nagios Adapter)
Exemplos
Visualização de dados usando Nagios e ANA (Advanced Nagios Adapter)
http://code.google.com/apis/charttools/index.html
Visualização de dados usando Nagios e ANA (Advanced Nagios Adapter)
Visualização Tabular
Visualização de dados usando Nagios e ANA (Advanced Nagios Adapter)
Visualização Gráfica
Visualização de dados usando Nagios e ANA (Advanced Nagios Adapter)
Infográfico
Visualização de dados usando Nagios e ANA (Advanced Nagios Adapter)
Infográfico
Obrigado.