SlideShare uma empresa Scribd logo
1 de 52
Monitoramento de Aplicações
Web Modernas com Zabbix
Quem sou eu
André (Luis Boni) Déo
Fundador da Comunidade Zabbix Brasil
Co-Autor do Livro de A a Zabbix
Administrador de Redes, Professor Universitário, Membro da Comunidade OpenSource.
@deoandre andredeo@gmail.com
http://andredeo.blogspot.com
Quem é ele
Thales Reis
Graduando em Ciência da Computação
8 anos como desenvolvedor de software com foco em rotinas de ERP
Entusiasta da filosofia OpenSource
“Linguagens de programação são ferramentas, o importante é resolver o problema do cliente”
@reisthales thales.areis@gmail.com
http://thalesreis.com
A pergunta que
não quer calar
#tanogithub
URL, URN e URI
URL – Uniform Resource Locator
Em português: Localizador de Recursos Universal, e como o próprio nome diz, se refere ao
local, o Host que você quer acessar determinado recurso.
https://conference.zabbix.com.br/programacao/
URL, URN e URI
URN – Uniform Resource Name
Em português: Nome de Recursos Universal é o nome do recurso que será acessado e
também fará parte da URI.
É comum associarmos URN a página que estamos acessando, por exemplo home.html.
https://conference.zabbix.com.br/programacao/
URL, URN e URI
URI – Uniform Resource Identifier
Em português: Identificador de Recursos Universal, como diz o próprio nome, é o
identificador do recurso.
Pode ser uma imagem, uma página, etc, pois tudo o que está disponível na internet precisa
de um identificador único para que não seja confundido.
A URI une o Protocolo (https://) a localização do recurso (URL) e o nome do recurso (URN -
/minha-pagina/) para que você acesse as coisas na Web.
https://conference.zabbix.com.br/programacao/
Métodos HTTP
GET*
Essa é a requisição mais comum de todas. Através dessa requisição nós pedimos a
representação de um recurso: que pode ser um arquivo html, xml, json, etc.
Métodos HTTP
Um exemplo de requisição GET seria:
$ curl --location --request GET
"http://localhost:8080/api/zabbix/"
[{"id":1,"title":"O Conde de Monte
Cristo","author":"Alexandre
Dumas","pages":1664},{"id":2,"title":"Os
Miseráveis","author":"Victor
Hugo","pages":1511},{"id":3,"title":"Dom
Quixote","author":"Miguel de Cervantes","pages":1248}]
Métodos HTTP
POST*
O método POST é utilizado quando queremos criar um recurso. Quando usamos POST, os
dados vão no corpo da requisição e não na URI.
Métodos HTTP
Um exemplo de requisição POST seria:
$ curl --location --request POST
"http://localhost:8080/api/zabbix/" 
> --header "Content-Type: application/json" 
> --data "{"id": 4,"title": "Redes de
Computadores","author": "Andrew S. Tanenbaum, David
Wetherall","pages": 600}"
{"id":4,"title":"Redes de Computadores","author":"Andrew S.
Tanenbaum, David Wetherall","pages":600}
Métodos HTTP
PUT*
Requisita que um recurso seja "guardado" na URI fornecida. Se o recurso já existir, ele deve
ser atualizado. Se não existir, pode ser criado.
Métodos HTTP
Um exemplo de requisição PUT seria:
$ curl --location --request PUT
"http://localhost:8080/api/zabbix/" 
> --header "Content-Type: application/json" 
> --data "{"id": 2,"title": "De A a
Zabbix","author": "Déo, André Luis Boni; Horst, Adail
Spínola; Pires, Aécio Dos Santos","pages": 416}"
{"id":2,"changed":true,"book":{"id":2,"title":"De A A
Zabbix","author":"Déo, André Luis Boni; Horst, Adail Spínola;
Pires, Aécio Dos Santos","pages":416}}
Métodos HTTP
HEAD*
Retorna somente os cabeçalhos de uma resposta.
Um exemplo de requisição HEAD seria:
$ curl -I "http://localhost:8080/api/zabbix/"
HTTP/1.1 200 OK
Date: Thu, 25 Apr 2019 04:54:12 GMT
Content-Type: application/json; charset=utf-8
Server: Kestrel – Sim estamos usando ASP.NET!!!
Métodos HTTP
DELETE
Exclui o recurso especificado.
Um exemplo de requisição DELETE seria:
$ curl --location --request DELETE
"http://localhost:8080/api/zabbix/4" --data ""
{"id":4,"deleted":true}
Métodos HTTP
TRACE
Devolve a mesma requisição que for enviada, verifica se houve mudança e/ou adições feitas
por servidores intermediários.
Métodos HTTP
OPTIONS
Retorna os métodos HTTP suportados pelo servidor para a URL especificada.
Métodos HTTP
PATCH
Serve para atualizar partes de um recurso, e não o recurso todo.
Métodos HTTP
CONNECT
Converte a requisição de conexão para um túnel TCP/IP transparente, geralmente para
facilitar a comunicação criptografada com SSL (HTTPS) através de um proxy HTTP não
criptografado.
Mercado Atual
Mercado Atual
Mercado Atual
API - Application Programming Interface
Conjunto de rotinas e padrões estabelecidos por um software para a utilização das suas
funcionalidades por aplicativos que não pretendem envolver-se em detalhes da
implementação do software, mas apenas usar seus serviços.
De modo geral, a API é composta por uma série de funções acessíveis somente por
programação, e que permitem utilizar características do software menos evidentes ao
utilizador tradicional.
Mercado Atual
REST - Representational State Transfer
É um estilo de arquitetura que define um conjunto de restrições e propriedades baseados em
HTTP.
Web Services que obedecem ao estilo arquitetural REST, ou web services RESTful, fornecem
interoperabilidade entre sistemas de computadores na Internet.
Em um web service RESTful, requisições feitas a um URI de recurso extrairá uma resposta
que pode estar em XML, HTML, JSON ou algum outro formato.
Mercado Atual
JSON - JavaScript Object Notation
Formato compacto, de padrão aberto independente, de troca de dados simples e rápida
(parsing) entre sistemas, que utiliza texto legível a humanos, no formato atributo-valor
(natureza auto-descritiva).
Isto é, um modelo de transmissão de informações no formato texto, muito usado em web
services que usa transferência de estado representacional (REST) e aplicações AJAX,
substituindo o uso do XML.
JSON
JSON - JavaScript Object Notation
Basicamente são duas estruturas:
Uma coleção de chave/valor
Uma lista ordenada de valores (array), separados por “,”
JSON
"book":
[
{
"title": "Beginning JSON",
"price": 49.99
},
{
"title": "JSON at Work",
"price": 29.99
}
]
JSON
$.book[0].title
[
"Beginning JSON"
]
$.book[1].price
[
29.99
]
JSON
$.book[:1].title
[
"Beginning JSON",
"JSON at Work"
]
$.book[0:].price
[
49.99,
29.99
]
Zabbix – Monitoramento Web
API está no ar?
Tempo de resposta é aceitável?
Qual o código de retorno?
Zabbix – Monitoramento Web
Zabbix – Monitoramento Web
Zabbix 4.0 – Agente HTTP
Suporta os verbos:
 GET
 POST
 PUT
 HEAD
Agente HTTP – GET
Agente HTTP – POST
Agente HTTP – PUT
Agente HTTP – HEAD
Agente HTTP – Resultados
POST
PUT
Zabbix 4.2 – JSON Nativo
Requisitar corpo (Request Body Type)
Dados JSON - Corpo da solicitação HTTP no formato JSON.
As macros podem ser usadas como string, number, true e false; As macros usadas como
strings devem ser colocadas entre aspas duplas.
Valores de macros são resolvidos e, em seguida, escapados automaticamente.
Se "Content-Type" não for especificado nos cabeçalhos, então será padronizado como
"Content-Type: application / json"
Zabbix 4.2 – JSON Nativo
Converter para JSON
Os cabeçalhos são salvos como pares de atributo e valor sob a chave "header".
Se 'Content-Type: application / json' for encontrado, o corpo será salvo como um objeto,
caso contrário, será armazenado como string, por exemplo:
{
“header”: {
“<key>”: “<value>”,
“<key2>”: “<value>”
},
“body”: <body>
}
Item Dependente (Dependent Item)
https://www.zabbix.com/documentation/4.2/manual/config/items/itemtypes/http
Exemplo 4:
Recuperando informações meteorológicas conectando-se ao serviço público do
Openweathermap.
Item Dependente
Agente HTTP
Item Dependente
Agente HTTP
Item Dependente
Agente HTTP
DevOps
Desenvolvedor já cria a API pensando no MONITORAMENTO
http://thalesreis.com/programacao/net-core-implementando-a-interface-ihealthcheck/
Interface de Checagem
Interface de Checagem
Interface de Checagem
Alertas
Alertas
Documentação
Referências
[1] - http://gabsferreira.com/os-metodos-http-e-a-diferenca-entre-eles/
[2] - https://woliveiras.com.br/posts/url-uri-qual-diferenca/
[3] - http://thalesreis.com/programacao/net-core-implementando-a-interface-ihealthcheck/
[4] -
https://pt.wikipedia.org/wiki/Interface_de_programa%C3%A7%C3%A3o_de_aplica%C3%A7%C3%B5e
s
[5] - https://pt.wikipedia.org/wiki/REST
[6] - https://pt.wikipedia.org/wiki/JSON
Referências
[7] - http://www.json.org
[8] - https://www.baeldung.com/guide-to-jayway-jsonpath
[9] - https://jsonpath.curiousconcept.com
[10] - https://dotnet.microsoft.com/apps/aspnet
[11] - https://www.restapitutorial.com/lessons/httpmethods.html
Dúvidas ?

Mais conteúdo relacionado

Mais procurados

Zabbix Performance Tuning
Zabbix Performance TuningZabbix Performance Tuning
Zabbix Performance TuningRicardo Santos
 
Zabbix para iniciantes
Zabbix para iniciantesZabbix para iniciantes
Zabbix para iniciantesWerneck Costa
 
Zabbix - Gerenciando relatórios personalizados com Jasper Reports
Zabbix - Gerenciando relatórios personalizados com Jasper ReportsZabbix - Gerenciando relatórios personalizados com Jasper Reports
Zabbix - Gerenciando relatórios personalizados com Jasper ReportsZabbix BR
 
Igor Nicoli: External scripts O poder do Zabbix em suas mãos
Igor Nicoli: External scripts O poder do Zabbix em suas mãosIgor Nicoli: External scripts O poder do Zabbix em suas mãos
Igor Nicoli: External scripts O poder do Zabbix em suas mãosZabbix BR
 
Monitoramento e Gerenciamento de Infraestrutura com Zabbix - Patrícia Ladislau
Monitoramento e Gerenciamento de Infraestrutura com Zabbix - Patrícia LadislauMonitoramento e Gerenciamento de Infraestrutura com Zabbix - Patrícia Ladislau
Monitoramento e Gerenciamento de Infraestrutura com Zabbix - Patrícia LadislauPatricia Ladislau Silva
 
Apresentacao zabbix
Apresentacao zabbixApresentacao zabbix
Apresentacao zabbixDaniel Peres
 
Zabbix: Uma ferramenta para Gerenciamento de ambientes de T.I
Zabbix: Uma ferramenta para Gerenciamento de ambientes de T.IZabbix: Uma ferramenta para Gerenciamento de ambientes de T.I
Zabbix: Uma ferramenta para Gerenciamento de ambientes de T.IAécio Pires
 
Monitoração de Ambiente Críticos SAP com Zabbix - 1º ZABBIX MEETUP DO INTERIO...
Monitoração de Ambiente Críticos SAP com Zabbix - 1º ZABBIX MEETUP DO INTERIO...Monitoração de Ambiente Críticos SAP com Zabbix - 1º ZABBIX MEETUP DO INTERIO...
Monitoração de Ambiente Críticos SAP com Zabbix - 1º ZABBIX MEETUP DO INTERIO...André Déo
 
Zabbix monitorando o zimbra collaboration 8.8 (1)
Zabbix   monitorando o zimbra collaboration 8.8 (1)Zabbix   monitorando o zimbra collaboration 8.8 (1)
Zabbix monitorando o zimbra collaboration 8.8 (1)PAULO R. DEOLINDO JUNIOR
 
Gerando Mapas de Rede Automatico - Zabbix API
Gerando Mapas de Rede Automatico - Zabbix API Gerando Mapas de Rede Automatico - Zabbix API
Gerando Mapas de Rede Automatico - Zabbix API Luiz Sales
 
Automation with ansible
Automation with ansibleAutomation with ansible
Automation with ansibleKhizer Naeem
 
Os Desafios do Zabbix com Alta Disponibilidade - 3º Zabbix Meetup do Interior
Os Desafios do Zabbix com Alta Disponibilidade - 3º Zabbix Meetup do InteriorOs Desafios do Zabbix com Alta Disponibilidade - 3º Zabbix Meetup do Interior
Os Desafios do Zabbix com Alta Disponibilidade - 3º Zabbix Meetup do InteriorZabbix BR
 
Cloud Native Java GraalVM 이상과 현실
Cloud Native Java GraalVM 이상과 현실Cloud Native Java GraalVM 이상과 현실
Cloud Native Java GraalVM 이상과 현실Taewan Kim
 
Gerenciamento de Redes com Zabbix
Gerenciamento de Redes com ZabbixGerenciamento de Redes com Zabbix
Gerenciamento de Redes com ZabbixAndré Déo
 
Monitoramento de Vulnerabilidades com Zabbix, RHEL e Yum Security Plugin
Monitoramento de Vulnerabilidades com Zabbix, RHEL e Yum Security PluginMonitoramento de Vulnerabilidades com Zabbix, RHEL e Yum Security Plugin
Monitoramento de Vulnerabilidades com Zabbix, RHEL e Yum Security PluginAlessandro Silva
 
UserParameter vs Zabbix Sender - 2º ZABBIX MEETUP DO INTERIOR-SP
UserParameter vs Zabbix Sender - 2º ZABBIX MEETUP DO INTERIOR-SPUserParameter vs Zabbix Sender - 2º ZABBIX MEETUP DO INTERIOR-SP
UserParameter vs Zabbix Sender - 2º ZABBIX MEETUP DO INTERIOR-SPZabbix BR
 
Spring boot
Spring bootSpring boot
Spring bootsdeeg
 

Mais procurados (20)

Zabbix Performance Tuning
Zabbix Performance TuningZabbix Performance Tuning
Zabbix Performance Tuning
 
Zabbix para iniciantes
Zabbix para iniciantesZabbix para iniciantes
Zabbix para iniciantes
 
Zabbix - Gerenciando relatórios personalizados com Jasper Reports
Zabbix - Gerenciando relatórios personalizados com Jasper ReportsZabbix - Gerenciando relatórios personalizados com Jasper Reports
Zabbix - Gerenciando relatórios personalizados com Jasper Reports
 
Igor Nicoli: External scripts O poder do Zabbix em suas mãos
Igor Nicoli: External scripts O poder do Zabbix em suas mãosIgor Nicoli: External scripts O poder do Zabbix em suas mãos
Igor Nicoli: External scripts O poder do Zabbix em suas mãos
 
Monitoramento e Gerenciamento de Infraestrutura com Zabbix - Patrícia Ladislau
Monitoramento e Gerenciamento de Infraestrutura com Zabbix - Patrícia LadislauMonitoramento e Gerenciamento de Infraestrutura com Zabbix - Patrícia Ladislau
Monitoramento e Gerenciamento de Infraestrutura com Zabbix - Patrícia Ladislau
 
Apresentacao zabbix
Apresentacao zabbixApresentacao zabbix
Apresentacao zabbix
 
Zabbix: Uma ferramenta para Gerenciamento de ambientes de T.I
Zabbix: Uma ferramenta para Gerenciamento de ambientes de T.IZabbix: Uma ferramenta para Gerenciamento de ambientes de T.I
Zabbix: Uma ferramenta para Gerenciamento de ambientes de T.I
 
Monitoração de Ambiente Críticos SAP com Zabbix - 1º ZABBIX MEETUP DO INTERIO...
Monitoração de Ambiente Críticos SAP com Zabbix - 1º ZABBIX MEETUP DO INTERIO...Monitoração de Ambiente Críticos SAP com Zabbix - 1º ZABBIX MEETUP DO INTERIO...
Monitoração de Ambiente Críticos SAP com Zabbix - 1º ZABBIX MEETUP DO INTERIO...
 
Zabbix monitorando o zimbra collaboration 8.8 (1)
Zabbix   monitorando o zimbra collaboration 8.8 (1)Zabbix   monitorando o zimbra collaboration 8.8 (1)
Zabbix monitorando o zimbra collaboration 8.8 (1)
 
Gerando Mapas de Rede Automatico - Zabbix API
Gerando Mapas de Rede Automatico - Zabbix API Gerando Mapas de Rede Automatico - Zabbix API
Gerando Mapas de Rede Automatico - Zabbix API
 
Automation with ansible
Automation with ansibleAutomation with ansible
Automation with ansible
 
Os Desafios do Zabbix com Alta Disponibilidade - 3º Zabbix Meetup do Interior
Os Desafios do Zabbix com Alta Disponibilidade - 3º Zabbix Meetup do InteriorOs Desafios do Zabbix com Alta Disponibilidade - 3º Zabbix Meetup do Interior
Os Desafios do Zabbix com Alta Disponibilidade - 3º Zabbix Meetup do Interior
 
Terraform
TerraformTerraform
Terraform
 
Cloud Native Java GraalVM 이상과 현실
Cloud Native Java GraalVM 이상과 현실Cloud Native Java GraalVM 이상과 현실
Cloud Native Java GraalVM 이상과 현실
 
Gerenciamento de Redes com Zabbix
Gerenciamento de Redes com ZabbixGerenciamento de Redes com Zabbix
Gerenciamento de Redes com Zabbix
 
Prometheus course
Prometheus coursePrometheus course
Prometheus course
 
Monitoramento de Vulnerabilidades com Zabbix, RHEL e Yum Security Plugin
Monitoramento de Vulnerabilidades com Zabbix, RHEL e Yum Security PluginMonitoramento de Vulnerabilidades com Zabbix, RHEL e Yum Security Plugin
Monitoramento de Vulnerabilidades com Zabbix, RHEL e Yum Security Plugin
 
UserParameter vs Zabbix Sender - 2º ZABBIX MEETUP DO INTERIOR-SP
UserParameter vs Zabbix Sender - 2º ZABBIX MEETUP DO INTERIOR-SPUserParameter vs Zabbix Sender - 2º ZABBIX MEETUP DO INTERIOR-SP
UserParameter vs Zabbix Sender - 2º ZABBIX MEETUP DO INTERIOR-SP
 
Terraform
TerraformTerraform
Terraform
 
Spring boot
Spring bootSpring boot
Spring boot
 

Semelhante a Monitoramento de Aplicações Web Modernas com Zabbix e APIs RESTful

Criando e consumindo webservice REST com PHP e JSON
Criando e consumindo webservice REST com PHP e JSONCriando e consumindo webservice REST com PHP e JSON
Criando e consumindo webservice REST com PHP e JSONAmbiente Livre
 
Criando e consumindo webservice REST com PHP e JSON
Criando e consumindo webservice REST com PHP e JSONCriando e consumindo webservice REST com PHP e JSON
Criando e consumindo webservice REST com PHP e JSONMarcio Junior Vieira
 
REST-fuuuu - Boas práticas RESTful [PHPeste 2017]
REST-fuuuu - Boas práticas RESTful [PHPeste 2017]REST-fuuuu - Boas práticas RESTful [PHPeste 2017]
REST-fuuuu - Boas práticas RESTful [PHPeste 2017]Igor Santos
 
Conhecendo o Novo REST Framework
Conhecendo o Novo REST FrameworkConhecendo o Novo REST Framework
Conhecendo o Novo REST FrameworkMario Guedes
 
Workshop do Bem: O mundo das APIs
Workshop do Bem: O mundo das APIsWorkshop do Bem: O mundo das APIs
Workshop do Bem: O mundo das APIsHeider Lopes
 
O MUNDO DAS APIS OTIMIZANDO A INTEGRAÇÃO DE SISTEMAS
O MUNDO DAS APIS OTIMIZANDO A INTEGRAÇÃO DE SISTEMASO MUNDO DAS APIS OTIMIZANDO A INTEGRAÇÃO DE SISTEMAS
O MUNDO DAS APIS OTIMIZANDO A INTEGRAÇÃO DE SISTEMASHeider Lopes
 
WordPress como um backend de seus aplicativos
WordPress como um backend de seus aplicativosWordPress como um backend de seus aplicativos
WordPress como um backend de seus aplicativosJackson F. de A. Mafra
 
WCPOA2019 - WordPress como um backend de seus aplicativos
WCPOA2019  - WordPress como um backend de seus aplicativosWCPOA2019  - WordPress como um backend de seus aplicativos
WCPOA2019 - WordPress como um backend de seus aplicativosJackson F. de A. Mafra
 
Web 2.0 e RIA com PHP
Web 2.0 e RIA com PHPWeb 2.0 e RIA com PHP
Web 2.0 e RIA com PHPAdler Medrado
 
Integrando sua App ao Mundo via REST/JSON
Integrando sua App ao Mundo via REST/JSONIntegrando sua App ao Mundo via REST/JSON
Integrando sua App ao Mundo via REST/JSONMario Guedes
 
Servidor de Aplicação Web: CherryPy - Python
Servidor de Aplicação  Web: CherryPy - PythonServidor de Aplicação  Web: CherryPy - Python
Servidor de Aplicação Web: CherryPy - Pythonantonio sérgio nogueira
 
WebService Restful em Java
WebService Restful em JavaWebService Restful em Java
WebService Restful em Javaalexmacedo
 
Novidades do elasticsearch 2.0 e como usá-lo com PHP
Novidades do elasticsearch 2.0 e como usá-lo com PHPNovidades do elasticsearch 2.0 e como usá-lo com PHP
Novidades do elasticsearch 2.0 e como usá-lo com PHPLuiz Henrique Zambom Santana
 
Desenvolvendo uma Aplicação WEB usando o Python e o CherryPy
Desenvolvendo uma Aplicação WEB usando o Python e o CherryPyDesenvolvendo uma Aplicação WEB usando o Python e o CherryPy
Desenvolvendo uma Aplicação WEB usando o Python e o CherryPyantonio sérgio nogueira
 
APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...
APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...
APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...Tchelinux
 
Rest fuuuu front-end
Rest fuuuu front-endRest fuuuu front-end
Rest fuuuu front-endIgor Santos
 
Consumindo dados via web service no android
Consumindo dados via web service no androidConsumindo dados via web service no android
Consumindo dados via web service no androidAlexandre Antunes
 
Desenvolvendo um buscador com PHP e Elasticsearch - Fernando Silva - Tchelinu...
Desenvolvendo um buscador com PHP e Elasticsearch - Fernando Silva - Tchelinu...Desenvolvendo um buscador com PHP e Elasticsearch - Fernando Silva - Tchelinu...
Desenvolvendo um buscador com PHP e Elasticsearch - Fernando Silva - Tchelinu...Tchelinux
 

Semelhante a Monitoramento de Aplicações Web Modernas com Zabbix e APIs RESTful (20)

Criando e consumindo webservice REST com PHP e JSON
Criando e consumindo webservice REST com PHP e JSONCriando e consumindo webservice REST com PHP e JSON
Criando e consumindo webservice REST com PHP e JSON
 
Criando e consumindo webservice REST com PHP e JSON
Criando e consumindo webservice REST com PHP e JSONCriando e consumindo webservice REST com PHP e JSON
Criando e consumindo webservice REST com PHP e JSON
 
REST-fuuuu - Boas práticas RESTful [PHPeste 2017]
REST-fuuuu - Boas práticas RESTful [PHPeste 2017]REST-fuuuu - Boas práticas RESTful [PHPeste 2017]
REST-fuuuu - Boas práticas RESTful [PHPeste 2017]
 
Conhecendo o Novo REST Framework
Conhecendo o Novo REST FrameworkConhecendo o Novo REST Framework
Conhecendo o Novo REST Framework
 
Workshop do Bem: O mundo das APIs
Workshop do Bem: O mundo das APIsWorkshop do Bem: O mundo das APIs
Workshop do Bem: O mundo das APIs
 
O MUNDO DAS APIS OTIMIZANDO A INTEGRAÇÃO DE SISTEMAS
O MUNDO DAS APIS OTIMIZANDO A INTEGRAÇÃO DE SISTEMASO MUNDO DAS APIS OTIMIZANDO A INTEGRAÇÃO DE SISTEMAS
O MUNDO DAS APIS OTIMIZANDO A INTEGRAÇÃO DE SISTEMAS
 
WordPress como um backend de seus aplicativos
WordPress como um backend de seus aplicativosWordPress como um backend de seus aplicativos
WordPress como um backend de seus aplicativos
 
WCPOA2019 - WordPress como um backend de seus aplicativos
WCPOA2019  - WordPress como um backend de seus aplicativosWCPOA2019  - WordPress como um backend de seus aplicativos
WCPOA2019 - WordPress como um backend de seus aplicativos
 
Introdução APIs RESTful
Introdução APIs RESTfulIntrodução APIs RESTful
Introdução APIs RESTful
 
Web apis
Web apisWeb apis
Web apis
 
Web 2.0 e RIA com PHP
Web 2.0 e RIA com PHPWeb 2.0 e RIA com PHP
Web 2.0 e RIA com PHP
 
Integrando sua App ao Mundo via REST/JSON
Integrando sua App ao Mundo via REST/JSONIntegrando sua App ao Mundo via REST/JSON
Integrando sua App ao Mundo via REST/JSON
 
Servidor de Aplicação Web: CherryPy - Python
Servidor de Aplicação  Web: CherryPy - PythonServidor de Aplicação  Web: CherryPy - Python
Servidor de Aplicação Web: CherryPy - Python
 
WebService Restful em Java
WebService Restful em JavaWebService Restful em Java
WebService Restful em Java
 
Novidades do elasticsearch 2.0 e como usá-lo com PHP
Novidades do elasticsearch 2.0 e como usá-lo com PHPNovidades do elasticsearch 2.0 e como usá-lo com PHP
Novidades do elasticsearch 2.0 e como usá-lo com PHP
 
Desenvolvendo uma Aplicação WEB usando o Python e o CherryPy
Desenvolvendo uma Aplicação WEB usando o Python e o CherryPyDesenvolvendo uma Aplicação WEB usando o Python e o CherryPy
Desenvolvendo uma Aplicação WEB usando o Python e o CherryPy
 
APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...
APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...
APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...
 
Rest fuuuu front-end
Rest fuuuu front-endRest fuuuu front-end
Rest fuuuu front-end
 
Consumindo dados via web service no android
Consumindo dados via web service no androidConsumindo dados via web service no android
Consumindo dados via web service no android
 
Desenvolvendo um buscador com PHP e Elasticsearch - Fernando Silva - Tchelinu...
Desenvolvendo um buscador com PHP e Elasticsearch - Fernando Silva - Tchelinu...Desenvolvendo um buscador com PHP e Elasticsearch - Fernando Silva - Tchelinu...
Desenvolvendo um buscador com PHP e Elasticsearch - Fernando Silva - Tchelinu...
 

Mais de André Déo

Zabbix - Onde buscar conhecimento?
Zabbix - Onde buscar conhecimento?Zabbix - Onde buscar conhecimento?
Zabbix - Onde buscar conhecimento?André Déo
 
De A a Zabbix - I Congresso de Ciências Exatas e Tecnológicas
De A a Zabbix - I Congresso de Ciências Exatas e TecnológicasDe A a Zabbix - I Congresso de Ciências Exatas e Tecnológicas
De A a Zabbix - I Congresso de Ciências Exatas e TecnológicasAndré Déo
 
1º Zabbix On The Road - João Pessoa - Zabbix para IoT
1º Zabbix On The Road - João Pessoa - Zabbix para IoT1º Zabbix On The Road - João Pessoa - Zabbix para IoT
1º Zabbix On The Road - João Pessoa - Zabbix para IoTAndré Déo
 
1º Zabbix On The Road - João Pessoa - Zabbix!?!? - Sou Dev, o que eu tenho a ...
1º Zabbix On The Road - João Pessoa - Zabbix!?!? - Sou Dev, o que eu tenho a ...1º Zabbix On The Road - João Pessoa - Zabbix!?!? - Sou Dev, o que eu tenho a ...
1º Zabbix On The Road - João Pessoa - Zabbix!?!? - Sou Dev, o que eu tenho a ...André Déo
 
Zabbix + SNMP: Compartilhando experiências sobre SNMP
Zabbix + SNMP: Compartilhando experiências sobre SNMPZabbix + SNMP: Compartilhando experiências sobre SNMP
Zabbix + SNMP: Compartilhando experiências sobre SNMPAndré Déo
 
Zabbix para IoT - Zabbix Conference LatAm 2018
Zabbix para IoT - Zabbix Conference LatAm 2018Zabbix para IoT - Zabbix Conference LatAm 2018
Zabbix para IoT - Zabbix Conference LatAm 2018André Déo
 
Integração do Zabbix com AWS EC2 Auto Scalling - 1º ZABBIX MEETUP DO INTERIOR-SP
Integração do Zabbix com AWS EC2 Auto Scalling - 1º ZABBIX MEETUP DO INTERIOR-SPIntegração do Zabbix com AWS EC2 Auto Scalling - 1º ZABBIX MEETUP DO INTERIOR-SP
Integração do Zabbix com AWS EC2 Auto Scalling - 1º ZABBIX MEETUP DO INTERIOR-SPAndré Déo
 
Kit de Desenvolvimento de Soluções de IoT com Zabbix - - 1º ZABBIX MEETUP DO ...
Kit de Desenvolvimento de Soluções de IoT com Zabbix - - 1º ZABBIX MEETUP DO ...Kit de Desenvolvimento de Soluções de IoT com Zabbix - - 1º ZABBIX MEETUP DO ...
Kit de Desenvolvimento de Soluções de IoT com Zabbix - - 1º ZABBIX MEETUP DO ...André Déo
 
MeduZa - Automação Residencial com Zabbix - 1º ZABBIX MEETUP DO INTERIOR-SP
MeduZa - Automação Residencial com Zabbix - 1º ZABBIX MEETUP DO INTERIOR-SP MeduZa - Automação Residencial com Zabbix - 1º ZABBIX MEETUP DO INTERIOR-SP
MeduZa - Automação Residencial com Zabbix - 1º ZABBIX MEETUP DO INTERIOR-SP André Déo
 
UserParameter vs Zabbix Sender - 1º ZABBIX MEETUP DO INTERIOR-SP
UserParameter vs Zabbix Sender - 1º ZABBIX MEETUP DO INTERIOR-SPUserParameter vs Zabbix Sender - 1º ZABBIX MEETUP DO INTERIOR-SP
UserParameter vs Zabbix Sender - 1º ZABBIX MEETUP DO INTERIOR-SPAndré Déo
 
De A a Zabbix Devry Metrocamp
De A a Zabbix Devry MetrocampDe A a Zabbix Devry Metrocamp
De A a Zabbix Devry MetrocampAndré Déo
 
De A a Zabbix - Puc Campinas - Setembro/2017
De A a Zabbix - Puc Campinas - Setembro/2017De A a Zabbix - Puc Campinas - Setembro/2017
De A a Zabbix - Puc Campinas - Setembro/2017André Déo
 
Zabbix e SNMP - Zabbix Conference LatAM 2016
Zabbix e SNMP - Zabbix Conference LatAM 2016Zabbix e SNMP - Zabbix Conference LatAM 2016
Zabbix e SNMP - Zabbix Conference LatAM 2016André Déo
 
Comunidade Zabbix Brasil - Zabbix Conference LatAM 2016
Comunidade Zabbix Brasil - Zabbix Conference LatAM 2016Comunidade Zabbix Brasil - Zabbix Conference LatAM 2016
Comunidade Zabbix Brasil - Zabbix Conference LatAM 2016André Déo
 
Zabbix e SNMP - Zabbix Conference LatAm - André Déo
Zabbix e SNMP - Zabbix Conference LatAm - André DéoZabbix e SNMP - Zabbix Conference LatAm - André Déo
Zabbix e SNMP - Zabbix Conference LatAm - André DéoAndré Déo
 
Comunidade Zabbix Brasil - Zabbix Conference LatAM - André Déo
Comunidade Zabbix Brasil - Zabbix Conference LatAM - André DéoComunidade Zabbix Brasil - Zabbix Conference LatAM - André Déo
Comunidade Zabbix Brasil - Zabbix Conference LatAM - André DéoAndré Déo
 
O que é Linux - FLISOL Campinas 28-04-2012
O que é Linux - FLISOL Campinas 28-04-2012O que é Linux - FLISOL Campinas 28-04-2012
O que é Linux - FLISOL Campinas 28-04-2012André Déo
 
Zabbix FLISOL Campinas 28-04-2012
Zabbix FLISOL Campinas 28-04-2012Zabbix FLISOL Campinas 28-04-2012
Zabbix FLISOL Campinas 28-04-2012André Déo
 
Gerenciamento de Servidores Linux utilizando SNMP
Gerenciamento de Servidores Linux utilizando SNMPGerenciamento de Servidores Linux utilizando SNMP
Gerenciamento de Servidores Linux utilizando SNMPAndré Déo
 
Alexei vladishev - Open Source Monitoring With Zabbix
Alexei vladishev - Open Source Monitoring With ZabbixAlexei vladishev - Open Source Monitoring With Zabbix
Alexei vladishev - Open Source Monitoring With ZabbixAndré Déo
 

Mais de André Déo (20)

Zabbix - Onde buscar conhecimento?
Zabbix - Onde buscar conhecimento?Zabbix - Onde buscar conhecimento?
Zabbix - Onde buscar conhecimento?
 
De A a Zabbix - I Congresso de Ciências Exatas e Tecnológicas
De A a Zabbix - I Congresso de Ciências Exatas e TecnológicasDe A a Zabbix - I Congresso de Ciências Exatas e Tecnológicas
De A a Zabbix - I Congresso de Ciências Exatas e Tecnológicas
 
1º Zabbix On The Road - João Pessoa - Zabbix para IoT
1º Zabbix On The Road - João Pessoa - Zabbix para IoT1º Zabbix On The Road - João Pessoa - Zabbix para IoT
1º Zabbix On The Road - João Pessoa - Zabbix para IoT
 
1º Zabbix On The Road - João Pessoa - Zabbix!?!? - Sou Dev, o que eu tenho a ...
1º Zabbix On The Road - João Pessoa - Zabbix!?!? - Sou Dev, o que eu tenho a ...1º Zabbix On The Road - João Pessoa - Zabbix!?!? - Sou Dev, o que eu tenho a ...
1º Zabbix On The Road - João Pessoa - Zabbix!?!? - Sou Dev, o que eu tenho a ...
 
Zabbix + SNMP: Compartilhando experiências sobre SNMP
Zabbix + SNMP: Compartilhando experiências sobre SNMPZabbix + SNMP: Compartilhando experiências sobre SNMP
Zabbix + SNMP: Compartilhando experiências sobre SNMP
 
Zabbix para IoT - Zabbix Conference LatAm 2018
Zabbix para IoT - Zabbix Conference LatAm 2018Zabbix para IoT - Zabbix Conference LatAm 2018
Zabbix para IoT - Zabbix Conference LatAm 2018
 
Integração do Zabbix com AWS EC2 Auto Scalling - 1º ZABBIX MEETUP DO INTERIOR-SP
Integração do Zabbix com AWS EC2 Auto Scalling - 1º ZABBIX MEETUP DO INTERIOR-SPIntegração do Zabbix com AWS EC2 Auto Scalling - 1º ZABBIX MEETUP DO INTERIOR-SP
Integração do Zabbix com AWS EC2 Auto Scalling - 1º ZABBIX MEETUP DO INTERIOR-SP
 
Kit de Desenvolvimento de Soluções de IoT com Zabbix - - 1º ZABBIX MEETUP DO ...
Kit de Desenvolvimento de Soluções de IoT com Zabbix - - 1º ZABBIX MEETUP DO ...Kit de Desenvolvimento de Soluções de IoT com Zabbix - - 1º ZABBIX MEETUP DO ...
Kit de Desenvolvimento de Soluções de IoT com Zabbix - - 1º ZABBIX MEETUP DO ...
 
MeduZa - Automação Residencial com Zabbix - 1º ZABBIX MEETUP DO INTERIOR-SP
MeduZa - Automação Residencial com Zabbix - 1º ZABBIX MEETUP DO INTERIOR-SP MeduZa - Automação Residencial com Zabbix - 1º ZABBIX MEETUP DO INTERIOR-SP
MeduZa - Automação Residencial com Zabbix - 1º ZABBIX MEETUP DO INTERIOR-SP
 
UserParameter vs Zabbix Sender - 1º ZABBIX MEETUP DO INTERIOR-SP
UserParameter vs Zabbix Sender - 1º ZABBIX MEETUP DO INTERIOR-SPUserParameter vs Zabbix Sender - 1º ZABBIX MEETUP DO INTERIOR-SP
UserParameter vs Zabbix Sender - 1º ZABBIX MEETUP DO INTERIOR-SP
 
De A a Zabbix Devry Metrocamp
De A a Zabbix Devry MetrocampDe A a Zabbix Devry Metrocamp
De A a Zabbix Devry Metrocamp
 
De A a Zabbix - Puc Campinas - Setembro/2017
De A a Zabbix - Puc Campinas - Setembro/2017De A a Zabbix - Puc Campinas - Setembro/2017
De A a Zabbix - Puc Campinas - Setembro/2017
 
Zabbix e SNMP - Zabbix Conference LatAM 2016
Zabbix e SNMP - Zabbix Conference LatAM 2016Zabbix e SNMP - Zabbix Conference LatAM 2016
Zabbix e SNMP - Zabbix Conference LatAM 2016
 
Comunidade Zabbix Brasil - Zabbix Conference LatAM 2016
Comunidade Zabbix Brasil - Zabbix Conference LatAM 2016Comunidade Zabbix Brasil - Zabbix Conference LatAM 2016
Comunidade Zabbix Brasil - Zabbix Conference LatAM 2016
 
Zabbix e SNMP - Zabbix Conference LatAm - André Déo
Zabbix e SNMP - Zabbix Conference LatAm - André DéoZabbix e SNMP - Zabbix Conference LatAm - André Déo
Zabbix e SNMP - Zabbix Conference LatAm - André Déo
 
Comunidade Zabbix Brasil - Zabbix Conference LatAM - André Déo
Comunidade Zabbix Brasil - Zabbix Conference LatAM - André DéoComunidade Zabbix Brasil - Zabbix Conference LatAM - André Déo
Comunidade Zabbix Brasil - Zabbix Conference LatAM - André Déo
 
O que é Linux - FLISOL Campinas 28-04-2012
O que é Linux - FLISOL Campinas 28-04-2012O que é Linux - FLISOL Campinas 28-04-2012
O que é Linux - FLISOL Campinas 28-04-2012
 
Zabbix FLISOL Campinas 28-04-2012
Zabbix FLISOL Campinas 28-04-2012Zabbix FLISOL Campinas 28-04-2012
Zabbix FLISOL Campinas 28-04-2012
 
Gerenciamento de Servidores Linux utilizando SNMP
Gerenciamento de Servidores Linux utilizando SNMPGerenciamento de Servidores Linux utilizando SNMP
Gerenciamento de Servidores Linux utilizando SNMP
 
Alexei vladishev - Open Source Monitoring With Zabbix
Alexei vladishev - Open Source Monitoring With ZabbixAlexei vladishev - Open Source Monitoring With Zabbix
Alexei vladishev - Open Source Monitoring With Zabbix
 

Monitoramento de Aplicações Web Modernas com Zabbix e APIs RESTful

  • 1. Monitoramento de Aplicações Web Modernas com Zabbix
  • 2. Quem sou eu André (Luis Boni) Déo Fundador da Comunidade Zabbix Brasil Co-Autor do Livro de A a Zabbix Administrador de Redes, Professor Universitário, Membro da Comunidade OpenSource. @deoandre andredeo@gmail.com http://andredeo.blogspot.com
  • 3. Quem é ele Thales Reis Graduando em Ciência da Computação 8 anos como desenvolvedor de software com foco em rotinas de ERP Entusiasta da filosofia OpenSource “Linguagens de programação são ferramentas, o importante é resolver o problema do cliente” @reisthales thales.areis@gmail.com http://thalesreis.com
  • 4. A pergunta que não quer calar #tanogithub
  • 5. URL, URN e URI URL – Uniform Resource Locator Em português: Localizador de Recursos Universal, e como o próprio nome diz, se refere ao local, o Host que você quer acessar determinado recurso. https://conference.zabbix.com.br/programacao/
  • 6. URL, URN e URI URN – Uniform Resource Name Em português: Nome de Recursos Universal é o nome do recurso que será acessado e também fará parte da URI. É comum associarmos URN a página que estamos acessando, por exemplo home.html. https://conference.zabbix.com.br/programacao/
  • 7. URL, URN e URI URI – Uniform Resource Identifier Em português: Identificador de Recursos Universal, como diz o próprio nome, é o identificador do recurso. Pode ser uma imagem, uma página, etc, pois tudo o que está disponível na internet precisa de um identificador único para que não seja confundido. A URI une o Protocolo (https://) a localização do recurso (URL) e o nome do recurso (URN - /minha-pagina/) para que você acesse as coisas na Web. https://conference.zabbix.com.br/programacao/
  • 8. Métodos HTTP GET* Essa é a requisição mais comum de todas. Através dessa requisição nós pedimos a representação de um recurso: que pode ser um arquivo html, xml, json, etc.
  • 9. Métodos HTTP Um exemplo de requisição GET seria: $ curl --location --request GET "http://localhost:8080/api/zabbix/" [{"id":1,"title":"O Conde de Monte Cristo","author":"Alexandre Dumas","pages":1664},{"id":2,"title":"Os Miseráveis","author":"Victor Hugo","pages":1511},{"id":3,"title":"Dom Quixote","author":"Miguel de Cervantes","pages":1248}]
  • 10. Métodos HTTP POST* O método POST é utilizado quando queremos criar um recurso. Quando usamos POST, os dados vão no corpo da requisição e não na URI.
  • 11. Métodos HTTP Um exemplo de requisição POST seria: $ curl --location --request POST "http://localhost:8080/api/zabbix/" > --header "Content-Type: application/json" > --data "{"id": 4,"title": "Redes de Computadores","author": "Andrew S. Tanenbaum, David Wetherall","pages": 600}" {"id":4,"title":"Redes de Computadores","author":"Andrew S. Tanenbaum, David Wetherall","pages":600}
  • 12. Métodos HTTP PUT* Requisita que um recurso seja "guardado" na URI fornecida. Se o recurso já existir, ele deve ser atualizado. Se não existir, pode ser criado.
  • 13. Métodos HTTP Um exemplo de requisição PUT seria: $ curl --location --request PUT "http://localhost:8080/api/zabbix/" > --header "Content-Type: application/json" > --data "{"id": 2,"title": "De A a Zabbix","author": "Déo, André Luis Boni; Horst, Adail Spínola; Pires, Aécio Dos Santos","pages": 416}" {"id":2,"changed":true,"book":{"id":2,"title":"De A A Zabbix","author":"Déo, André Luis Boni; Horst, Adail Spínola; Pires, Aécio Dos Santos","pages":416}}
  • 14. Métodos HTTP HEAD* Retorna somente os cabeçalhos de uma resposta. Um exemplo de requisição HEAD seria: $ curl -I "http://localhost:8080/api/zabbix/" HTTP/1.1 200 OK Date: Thu, 25 Apr 2019 04:54:12 GMT Content-Type: application/json; charset=utf-8 Server: Kestrel – Sim estamos usando ASP.NET!!!
  • 15. Métodos HTTP DELETE Exclui o recurso especificado. Um exemplo de requisição DELETE seria: $ curl --location --request DELETE "http://localhost:8080/api/zabbix/4" --data "" {"id":4,"deleted":true}
  • 16. Métodos HTTP TRACE Devolve a mesma requisição que for enviada, verifica se houve mudança e/ou adições feitas por servidores intermediários.
  • 17. Métodos HTTP OPTIONS Retorna os métodos HTTP suportados pelo servidor para a URL especificada.
  • 18. Métodos HTTP PATCH Serve para atualizar partes de um recurso, e não o recurso todo.
  • 19. Métodos HTTP CONNECT Converte a requisição de conexão para um túnel TCP/IP transparente, geralmente para facilitar a comunicação criptografada com SSL (HTTPS) através de um proxy HTTP não criptografado.
  • 22. Mercado Atual API - Application Programming Interface Conjunto de rotinas e padrões estabelecidos por um software para a utilização das suas funcionalidades por aplicativos que não pretendem envolver-se em detalhes da implementação do software, mas apenas usar seus serviços. De modo geral, a API é composta por uma série de funções acessíveis somente por programação, e que permitem utilizar características do software menos evidentes ao utilizador tradicional.
  • 23. Mercado Atual REST - Representational State Transfer É um estilo de arquitetura que define um conjunto de restrições e propriedades baseados em HTTP. Web Services que obedecem ao estilo arquitetural REST, ou web services RESTful, fornecem interoperabilidade entre sistemas de computadores na Internet. Em um web service RESTful, requisições feitas a um URI de recurso extrairá uma resposta que pode estar em XML, HTML, JSON ou algum outro formato.
  • 24. Mercado Atual JSON - JavaScript Object Notation Formato compacto, de padrão aberto independente, de troca de dados simples e rápida (parsing) entre sistemas, que utiliza texto legível a humanos, no formato atributo-valor (natureza auto-descritiva). Isto é, um modelo de transmissão de informações no formato texto, muito usado em web services que usa transferência de estado representacional (REST) e aplicações AJAX, substituindo o uso do XML.
  • 25. JSON JSON - JavaScript Object Notation Basicamente são duas estruturas: Uma coleção de chave/valor Uma lista ordenada de valores (array), separados por “,”
  • 26. JSON "book": [ { "title": "Beginning JSON", "price": 49.99 }, { "title": "JSON at Work", "price": 29.99 } ]
  • 28. JSON $.book[:1].title [ "Beginning JSON", "JSON at Work" ] $.book[0:].price [ 49.99, 29.99 ]
  • 29. Zabbix – Monitoramento Web API está no ar? Tempo de resposta é aceitável? Qual o código de retorno?
  • 32. Zabbix 4.0 – Agente HTTP Suporta os verbos:  GET  POST  PUT  HEAD
  • 37. Agente HTTP – Resultados POST PUT
  • 38. Zabbix 4.2 – JSON Nativo Requisitar corpo (Request Body Type) Dados JSON - Corpo da solicitação HTTP no formato JSON. As macros podem ser usadas como string, number, true e false; As macros usadas como strings devem ser colocadas entre aspas duplas. Valores de macros são resolvidos e, em seguida, escapados automaticamente. Se "Content-Type" não for especificado nos cabeçalhos, então será padronizado como "Content-Type: application / json"
  • 39. Zabbix 4.2 – JSON Nativo Converter para JSON Os cabeçalhos são salvos como pares de atributo e valor sob a chave "header". Se 'Content-Type: application / json' for encontrado, o corpo será salvo como um objeto, caso contrário, será armazenado como string, por exemplo: { “header”: { “<key>”: “<value>”, “<key2>”: “<value>” }, “body”: <body> }
  • 40. Item Dependente (Dependent Item) https://www.zabbix.com/documentation/4.2/manual/config/items/itemtypes/http Exemplo 4: Recuperando informações meteorológicas conectando-se ao serviço público do Openweathermap. Item Dependente Agente HTTP
  • 43. DevOps Desenvolvedor já cria a API pensando no MONITORAMENTO http://thalesreis.com/programacao/net-core-implementando-a-interface-ihealthcheck/
  • 50. Referências [1] - http://gabsferreira.com/os-metodos-http-e-a-diferenca-entre-eles/ [2] - https://woliveiras.com.br/posts/url-uri-qual-diferenca/ [3] - http://thalesreis.com/programacao/net-core-implementando-a-interface-ihealthcheck/ [4] - https://pt.wikipedia.org/wiki/Interface_de_programa%C3%A7%C3%A3o_de_aplica%C3%A7%C3%B5e s [5] - https://pt.wikipedia.org/wiki/REST [6] - https://pt.wikipedia.org/wiki/JSON
  • 51. Referências [7] - http://www.json.org [8] - https://www.baeldung.com/guide-to-jayway-jsonpath [9] - https://jsonpath.curiousconcept.com [10] - https://dotnet.microsoft.com/apps/aspnet [11] - https://www.restapitutorial.com/lessons/httpmethods.html