SlideShare uma empresa Scribd logo
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

PDF
Zabbix Performance Tuning
PDF
Monitoring Models in Production
PDF
Zabbix - Gerenciando relatórios personalizados com Jasper Reports
PPTX
VMware Vsphere Graduation Project Presentation
PPTX
Diabetes Mellitus
PPTX
Hypertension
PPTX
Republic Act No. 11313 Safe Spaces Act (Bawal Bastos Law).pptx
PPTX
Power Point Presentation on Artificial Intelligence
Zabbix Performance Tuning
Monitoring Models in Production
Zabbix - Gerenciando relatórios personalizados com Jasper Reports
VMware Vsphere Graduation Project Presentation
Diabetes Mellitus
Hypertension
Republic Act No. 11313 Safe Spaces Act (Bawal Bastos Law).pptx
Power Point Presentation on Artificial Intelligence

Mais procurados (20)

PDF
Zabbix Performance Tuning
PDF
Monitoramento de serviços com Zabbix + Grafana + Python - Marcelo Santoto - D...
PPTX
Igor Nicoli: External scripts O poder do Zabbix em suas mãos
PPTX
Monitoramento e Gerenciamento de Infraestrutura com Zabbix - Patrícia Ladislau
PPTX
Apresentacao zabbix
PDF
판교 개발자 데이 – Aws가 제안하는 서버리스 아키텍처 – 김필중
PDF
Zabbix para iniciantes
PDF
Monitoramento Enterprise com Zabbix+RHEL
PPTX
Spring Security 5
PDF
Zabbix: Uma ferramenta para Gerenciamento de ambientes de T.I
PDF
The never-ending REST API design debate
PPTX
Monitoramento Inteligente utilizando o ZABBIX
PPTX
Monitoramento de Banco de dados SQL Server com Zabbix
PPT
Understanding REST
PPTX
Introduction to Zabbix - Company, Product, Services and Use Cases
PPT
RESTful services
PDF
CloudWatch 성능 모니터링과 신속한 대응을 위한 노하우 - 박선용 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming
PDF
AWS Builders - Industry Edition: DevSecOps on AWS - 시작은 IAM 부터
PDF
Amazon Aurora - Auroraの止まらない進化とその中身
PPTX
Gerando Mapas de Rede Automatico - Zabbix API
Zabbix Performance Tuning
Monitoramento de serviços com Zabbix + Grafana + Python - Marcelo Santoto - D...
Igor Nicoli: External scripts O poder do Zabbix em suas mãos
Monitoramento e Gerenciamento de Infraestrutura com Zabbix - Patrícia Ladislau
Apresentacao zabbix
판교 개발자 데이 – Aws가 제안하는 서버리스 아키텍처 – 김필중
Zabbix para iniciantes
Monitoramento Enterprise com Zabbix+RHEL
Spring Security 5
Zabbix: Uma ferramenta para Gerenciamento de ambientes de T.I
The never-ending REST API design debate
Monitoramento Inteligente utilizando o ZABBIX
Monitoramento de Banco de dados SQL Server com Zabbix
Understanding REST
Introduction to Zabbix - Company, Product, Services and Use Cases
RESTful services
CloudWatch 성능 모니터링과 신속한 대응을 위한 노하우 - 박선용 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming
AWS Builders - Industry Edition: DevSecOps on AWS - 시작은 IAM 부터
Amazon Aurora - Auroraの止まらない進化とその中身
Gerando Mapas de Rede Automatico - Zabbix API
Anúncio

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

PDF
Criando e consumindo webservice REST com PHP e JSON
PDF
Criando e consumindo webservice REST com PHP e JSON
PDF
compreensão geral para estruturar uma api
PDF
REST-fuuuu - Boas práticas RESTful [PHPeste 2017]
PPTX
Conhecendo o Novo REST Framework
PDF
Workshop do Bem: O mundo das APIs
PDF
O MUNDO DAS APIS OTIMIZANDO A INTEGRAÇÃO DE SISTEMAS
PDF
WordPress como um backend de seus aplicativos
PPTX
WCPOA2019 - WordPress como um backend de seus aplicativos
PDF
Introdução APIs RESTful
ODP
Web apis
PDF
Web 2.0 e RIA com PHP
PPTX
Integrando sua App ao Mundo via REST/JSON
PDF
Servidor de Aplicação Web: CherryPy - Python
PDF
WebService Restful em Java
PPTX
Novidades do elasticsearch 2.0 e como usá-lo com PHP
PDF
Desenvolvendo uma Aplicação WEB usando o Python e o CherryPy
PDF
APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...
PDF
Rest fuuuu front-end
PDF
Consumindo dados via web service no android
Criando e consumindo webservice REST com PHP e JSON
Criando e consumindo webservice REST com PHP e JSON
compreensão geral para estruturar uma api
REST-fuuuu - Boas práticas RESTful [PHPeste 2017]
Conhecendo o Novo REST Framework
Workshop do Bem: O mundo das APIs
O MUNDO DAS APIS OTIMIZANDO A INTEGRAÇÃO DE SISTEMAS
WordPress como um backend de seus aplicativos
WCPOA2019 - WordPress como um backend de seus aplicativos
Introdução APIs RESTful
Web apis
Web 2.0 e RIA com PHP
Integrando sua App ao Mundo via REST/JSON
Servidor de Aplicação Web: CherryPy - Python
WebService Restful em Java
Novidades do elasticsearch 2.0 e como usá-lo com PHP
Desenvolvendo uma Aplicação WEB usando o Python e o CherryPy
APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...
Rest fuuuu front-end
Consumindo dados via web service no android
Anúncio

Mais de André Déo (20)

PPTX
Zabbix - Onde buscar conhecimento?
PPTX
De A a Zabbix - I Congresso de Ciências Exatas e Tecnológicas
PPTX
1º Zabbix On The Road - João Pessoa - Zabbix para IoT
PPTX
1º Zabbix On The Road - João Pessoa - Zabbix!?!? - Sou Dev, o que eu tenho a ...
PDF
Zabbix + SNMP: Compartilhando experiências sobre SNMP
PPTX
Zabbix para IoT - Zabbix Conference LatAm 2018
PPTX
Monitoração de Ambiente Críticos SAP com Zabbix - 1º ZABBIX MEETUP DO INTERIO...
PPTX
Integração do Zabbix com AWS EC2 Auto Scalling - 1º ZABBIX MEETUP DO INTERIOR-SP
PPTX
Kit de Desenvolvimento de Soluções de IoT com Zabbix - - 1º ZABBIX MEETUP DO ...
PPTX
MeduZa - Automação Residencial com Zabbix - 1º ZABBIX MEETUP DO INTERIOR-SP
PPTX
UserParameter vs Zabbix Sender - 1º ZABBIX MEETUP DO INTERIOR-SP
PPTX
De A a Zabbix Devry Metrocamp
PPTX
De A a Zabbix - Puc Campinas - Setembro/2017
PPTX
Gerenciamento de Redes com Zabbix
PPTX
Zabbix e SNMP - Zabbix Conference LatAM 2016
PPTX
Comunidade Zabbix Brasil - Zabbix Conference LatAM 2016
PPTX
Zabbix e SNMP - Zabbix Conference LatAm - André Déo
PPTX
Comunidade Zabbix Brasil - Zabbix Conference LatAM - André Déo
PDF
O que é Linux - FLISOL Campinas 28-04-2012
PDF
Zabbix FLISOL Campinas 28-04-2012
Zabbix - Onde buscar conhecimento?
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!?!? - Sou Dev, o que eu tenho a ...
Zabbix + SNMP: Compartilhando experiências sobre SNMP
Zabbix para IoT - Zabbix Conference LatAm 2018
Monitoração de Ambiente Críticos SAP com Zabbix - 1º ZABBIX MEETUP DO INTERIO...
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 ...
MeduZa - Automação Residencial com Zabbix - 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 - Puc Campinas - Setembro/2017
Gerenciamento de Redes com Zabbix
Zabbix e SNMP - Zabbix Conference LatAM 2016
Comunidade Zabbix Brasil - Zabbix Conference LatAM 2016
Zabbix e SNMP - Zabbix Conference LatAm - André Déo
Comunidade Zabbix Brasil - Zabbix Conference LatAM - André Déo
O que é Linux - FLISOL Campinas 28-04-2012
Zabbix FLISOL Campinas 28-04-2012

Último (19)

PDF
Apple Pippin Uma breve introdução. - David Glotz
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
PPTX
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
PPTX
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
PDF
Processos na gestão de transportes, TM100 Col18
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PDF
Aula04-Academia Heri- Tecnologia Geral 2025
PDF
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
PPTX
Aula 18 - Manipulacao De Arquivos python
PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
PPTX
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
PDF
COBITxITIL-Entenda as diferença em uso governança TI
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
Apple Pippin Uma breve introdução. - David Glotz
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
Processos na gestão de transportes, TM100 Col18
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Aula04-Academia Heri- Tecnologia Geral 2025
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
Aula 18 - Manipulacao De Arquivos python
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
Custos e liquidação no SAP Transportation Management, TM130 Col18
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
COBITxITIL-Entenda as diferença em uso governança TI
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express

Monitoramento de Aplicações Web Modernas com Zabbix

  • 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