visualização de dados usando nagios e ana

45

Upload: fernando-lunardelli

Post on 10-May-2015

1.674 views

Category:

Documents


2 download

DESCRIPTION

Nagios World Conference Latin America - Visualização de dados usando Nagios e ANA

TRANSCRIPT

Page 1: Visualização de dados usando Nagios e ANA
Page 2: Visualização de dados usando Nagios e ANA

Visualização de dados usando Nagios e ANA (Advanced Nagios Adapter)

Page 3: Visualização de dados usando Nagios e ANA
Page 4: Visualização de dados usando Nagios e ANA

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)

Page 5: Visualização de dados usando Nagios e ANA

Tipos de gráficos

Visualização de dados usando Nagios e ANA (Advanced Nagios Adapter)

Page 6: Visualização de dados usando Nagios e ANA

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)

Page 7: Visualização de dados usando Nagios e ANA

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)

Page 8: Visualização de dados usando Nagios e ANA

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)

Page 9: Visualização de dados usando Nagios e ANA

Grafos – São usados para demonstrar uma relação

direta entre os dados.

Visualização de dados usando Nagios e ANA (Advanced Nagios Adapter)

Page 10: Visualização de dados usando Nagios e ANA

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)

Page 11: Visualização de dados usando Nagios e ANA

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)

Page 12: Visualização de dados usando Nagios e ANA

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)

Page 13: Visualização de dados usando Nagios e ANA

Dashboards são mais vinculados à monitorização de

performance dos processos operacionais.

Visualização de dados usando Nagios e ANA (Advanced Nagios Adapter)

Page 14: Visualização de dados usando Nagios e ANA
Page 15: Visualização de dados usando Nagios e ANA

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)

Page 16: Visualização de dados usando Nagios e ANA

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)

Page 17: Visualização de dados usando Nagios e ANA

O gráfico

Visualização de dados usando Nagios e ANA (Advanced Nagios Adapter)

Page 18: Visualização de dados usando Nagios e ANA

O infográfico

Visualização de dados usando Nagios e ANA (Advanced Nagios Adapter)

Page 19: Visualização de dados usando Nagios e ANA

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/

Page 20: Visualização de dados usando Nagios e ANA

ANA – Advanced Nagios Adapter

Visualização de dados usando Nagios e ANA (Advanced Nagios Adapter)

Page 21: Visualização de dados usando Nagios e ANA

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)

Page 22: Visualização de dados usando Nagios e ANA

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)

Page 23: Visualização de dados usando Nagios e ANA

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

Page 24: Visualização de dados usando Nagios e ANA

Módulo

Módulo

Módulo

Visualização de dados usando Nagios e ANA (Advanced Nagios Adapter)

Arquitetura

Page 25: Visualização de dados usando Nagios e ANA

- 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)

Page 26: Visualização de dados usando Nagios e ANA

- 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)

Page 27: Visualização de dados usando Nagios e ANA

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)

Page 28: Visualização de dados usando Nagios e ANA

/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)

Page 29: Visualização de dados usando Nagios e ANA

/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)

Page 30: Visualização de dados usando Nagios e ANA

["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)

Page 31: Visualização de dados usando Nagios e ANA

- Possui uma interface própria para gerenciamento de

módulos.

Visualização de dados usando Nagios e ANA (Advanced Nagios Adapter)

Page 32: Visualização de dados usando Nagios e ANA

- 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.

Page 33: Visualização de dados usando Nagios e ANA

- O primeiro módulo a utilizar a arquitetura é o DaVINCI.

Visualização de dados usando Nagios e ANA (Advanced Nagios Adapter)

Page 34: Visualização de dados usando Nagios e ANA

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)

Page 35: Visualização de dados usando Nagios e ANA

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.

Page 36: Visualização de dados usando Nagios e ANA

- Possibilidade de integração com APIs de desenvolvimento para mobile.

Page 37: Visualização de dados usando Nagios e ANA

- 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

Page 38: Visualização de dados usando Nagios e ANA

- Publicação do software como código aberto

http://www.opmon.org

Visualização de dados usando Nagios e ANA (Advanced Nagios Adapter)

Page 39: Visualização de dados usando Nagios e ANA

Exemplos

Visualização de dados usando Nagios e ANA (Advanced Nagios Adapter)

http://code.google.com/apis/charttools/index.html

Page 40: Visualização de dados usando Nagios e ANA

Visualização de dados usando Nagios e ANA (Advanced Nagios Adapter)

Visualização Tabular

Page 41: Visualização de dados usando Nagios e ANA

Visualização de dados usando Nagios e ANA (Advanced Nagios Adapter)

Visualização Gráfica

Page 42: Visualização de dados usando Nagios e ANA

Visualização de dados usando Nagios e ANA (Advanced Nagios Adapter)

Infográfico

Page 43: Visualização de dados usando Nagios e ANA

Visualização de dados usando Nagios e ANA (Advanced Nagios Adapter)

Infográfico

Page 44: Visualização de dados usando Nagios e ANA

Obrigado.