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

Mais procurados (20)

Workshop de Monitoramento com Zabbix e OCS
Workshop de Monitoramento com Zabbix e OCSWorkshop de Monitoramento com Zabbix e OCS
Workshop de Monitoramento com Zabbix e OCS
 
Zabbix e o Mistério das Expressões Regulares
Zabbix e o Mistério das Expressões RegularesZabbix e o Mistério das Expressões Regulares
Zabbix e o Mistério das Expressões Regulares
 
Monitorando Bancos Oracle - 2º ZABBIX MEETUP DO INTERIOR-SP
Monitorando Bancos Oracle - 2º ZABBIX MEETUP DO INTERIOR-SPMonitorando Bancos Oracle - 2º ZABBIX MEETUP DO INTERIOR-SP
Monitorando Bancos Oracle - 2º ZABBIX MEETUP DO INTERIOR-SP
 
Case Santos F.C. |Gerência de TI com Zabbix
Case Santos F.C. |Gerência de TI com ZabbixCase Santos F.C. |Gerência de TI com Zabbix
Case Santos F.C. |Gerência de TI com Zabbix
 
ビルドで情報を埋め込んでみた
ビルドで情報を埋め込んでみたビルドで情報を埋め込んでみた
ビルドで情報を埋め込んでみた
 
Zabbix Performance Tuning
Zabbix Performance TuningZabbix Performance Tuning
Zabbix Performance Tuning
 
Temperatura Zabbix Procedimento Temper Usb
Temperatura Zabbix Procedimento Temper UsbTemperatura Zabbix Procedimento Temper Usb
Temperatura Zabbix Procedimento Temper Usb
 
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 - 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
 
2023 COSCUP - Whats new in PostgreSQL 16
2023 COSCUP - Whats new in PostgreSQL 162023 COSCUP - Whats new in PostgreSQL 16
2023 COSCUP - Whats new in PostgreSQL 16
 
The basics of fluentd
The basics of fluentdThe basics of fluentd
The basics of fluentd
 
[2019] 바르게, 빠르게! Reactive를 품은 Spring Kafka
[2019] 바르게, 빠르게! Reactive를 품은 Spring Kafka[2019] 바르게, 빠르게! Reactive를 품은 Spring Kafka
[2019] 바르게, 빠르게! Reactive를 품은 Spring Kafka
 
Zabbixのパフォーマンスチューニング & インストール時の注意点
Zabbixのパフォーマンスチューニング & インストール時の注意点Zabbixのパフォーマンスチューニング & インストール時の注意点
Zabbixのパフォーマンスチューニング & インストール時の注意点
 
Tracking Huge Files with Git LFS
Tracking Huge Files with Git LFSTracking Huge Files with Git LFS
Tracking Huge Files with Git LFS
 
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
 
Ansible - Hands on Training
Ansible - Hands on TrainingAnsible - Hands on Training
Ansible - Hands on Training
 
Terraform introduction
Terraform introductionTerraform introduction
Terraform introduction
 
Technical Introduction to PostgreSQL and PPAS
Technical Introduction to PostgreSQL and PPASTechnical Introduction to PostgreSQL and PPAS
Technical Introduction to PostgreSQL and PPAS
 
Introduction To Terraform
Introduction To TerraformIntroduction To Terraform
Introduction To Terraform
 
Alfresco CMIS
Alfresco CMISAlfresco CMIS
Alfresco CMIS
 

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

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
Alexandre Antunes
 

Semelhante a Monitoramento de Aplicações Web Modernas com Zabbix (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

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
André 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
 
Gerenciamento de Redes com Zabbix
Gerenciamento de Redes com ZabbixGerenciamento de Redes com Zabbix
Gerenciamento de Redes com Zabbix
 
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
 

Último

Último (8)

Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 

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