SlideShare uma empresa Scribd logo
bit.ly/grupozabbix
bit.ly/tw-jlcp
bit.ly/youtube-jorgepretel
bit.ly/jlcpnovidades
ead.jlcp.com.br
Robert Silva
Especialista em monitoramento
Desenvolvedor Python
JLCP
robert.silva@jlcp.com.br
Primeiros passos com API do Zabbix
Agenda
1. Introdução a API do Zabbix
1. O que é API?
2. Visão geral da API do Zabbix
3. O que é JSON?
4. Estrutura
5. Fluxo de mensagem
6. Qual chamada utilizar?
7. Bibliotecas
2. Consumindo a API na prática com POSTMAN
1. O que é POSTMAN?
2. Executando as primeiras requisições
3. Lista de hosts habilitados/desabilitados
4. Como trabalhar com os parâmetros de cada método?
5. O que significa cada objeto de retorno?
3. Casos de uso na JLCP.
4. Encerramento/Perguntas
O que é API?
Visão Geral da API do Zabbix
● API baseada no Frontend do Zabbix
● Utiliza o protocolo JSON RPC 2.0.
● Utiliza a mesma regra de permissão do Zabbix.
O que é JSON?
● JSON (JavaScript Object Notation)
● JSON é um formato leve para troca de informações entre sistemas.
● Possui duas estruturas:
● Uma coleção de chave/valor
● Uma lista ordenada, conhecida como array em algumas
linguagens de programação.
● https://jsonlint.com/
● https://www.jsonrpc.org/specification
● http://json.org/
Estrutura da API
● A API é estruturada em Classes.
● Host, Hostgroup, Item, Trigger e etc.
● Possui atualmente mais de 232 métodos.
● Os principais métodos são:
● Get – Lista informações
● Create – Cria objeto
● Update – Atualiza objeto
● Delete – Deleta objeto
● Classes de dados históricos possuem somente o método Get.
● Exemplo: Event, History e Problem
Fluxo de mensagem da API
Cliente
API
Zabbix
API
Token
user.login (Autenticação)
hostgroup.get (Lista de grupo de hosts)
Result
host.get (Lista de hosts)
Result
user.logout (Logoff)
Qual chamada utilizar?
● Monitoramento.
● Configuração.
● Administração.
● Informações da API.
● https://www.zabbix.com/documentation/4.0/manual/api/reference
Bibliotecas
● https://zabbix.org/wiki/Docs/api/libraries
● http://monitoringartist.github.io/zapix/
Consumindo API na Prática com
POSTMAN
O que é POSTMAN?
● Aplicação que permite enviar e receber dados via requisições HTTP.
● Além de outras funcionalidades.
● https://www.getpostman.com/
Autenticando na API do Zabbix
{
"jsonrpc": "2.0",
"method": "user.login",
"params": {
"user": ”usuario",
"password": ”senha"
},
"id": 1
}
{
"jsonrpc": "2.0",
"result":
"7c5ad4e01e4a6c18cceb0754d2d14995",
"id": 1
}
user.login Result: TOKEN
Listando hosts
host.get
{
"jsonrpc": "2.0",
"method": "host.get",
"params": {
"output": "extend"
},
"auth":
"01b4d00065ecd6eec4ab8c9aae6921ff",
"id": 1
}
Listando hosts
Result do host.get
{
"jsonrpc": "2.0",
"result": [
{
"hostid": "10084",
"proxy_hostid": "0",
"host": "zabbix-proxy",
"status": "0",
"disable_until": "0",
...,
...
},
Aqui começam as dúvidas...
● O que significa esses objetos que retornaram (status e etc.)?
● E se eu não quiser todos esses objetos no resultado?
● Posso filtrar pelo status do host?
● Posso filtrar pelo grupo de host?
● Posso procurar todos os hosts com o nome parecido?
Casos de uso na JLCP
● Dashboards
● Automaçãoes
● Novas funcionalidades para o Zabbix
● Relatórios em PDF
● Entre outros.
Benefícios da API para JLCP
● Redução de custo operacional.
● Agilidade na entrega de projetos.
● Fidelização de clientes
Obrigado pela
presença!
Robert Silva
Especialista em monitoramento
Desenvolvedor Python
JLCP
robert.silva@jlcp.com.br
https://www.linkedin.com/in/contatorobert/

Mais conteúdo relacionado

Mais procurados

Data Center Networks:Virtual Bridging
Data Center Networks:Virtual BridgingData Center Networks:Virtual Bridging
Data Center Networks:Virtual Bridgingrjain51
 
OpenGurukul : Database : PostgreSQL
OpenGurukul : Database : PostgreSQLOpenGurukul : Database : PostgreSQL
OpenGurukul : Database : PostgreSQLOpen Gurukul
 
Ansible presentation
Ansible presentationAnsible presentation
Ansible presentationJohn Lynch
 
Nginx internals
Nginx internalsNginx internals
Nginx internalsliqiang xu
 
OpenStack Architecture
OpenStack ArchitectureOpenStack Architecture
OpenStack ArchitectureMirantis
 
What Is ELK Stack | ELK Tutorial For Beginners | Elasticsearch Kibana | ELK S...
What Is ELK Stack | ELK Tutorial For Beginners | Elasticsearch Kibana | ELK S...What Is ELK Stack | ELK Tutorial For Beginners | Elasticsearch Kibana | ELK S...
What Is ELK Stack | ELK Tutorial For Beginners | Elasticsearch Kibana | ELK S...Edureka!
 
Delivering High-Availability Web Services with NGINX Plus on AWS
Delivering High-Availability Web Services with NGINX Plus on AWSDelivering High-Availability Web Services with NGINX Plus on AWS
Delivering High-Availability Web Services with NGINX Plus on AWSNGINX, Inc.
 
[KubeCon NA 2020] containerd: Rootless Containers 2020
[KubeCon NA 2020] containerd: Rootless Containers 2020[KubeCon NA 2020] containerd: Rootless Containers 2020
[KubeCon NA 2020] containerd: Rootless Containers 2020Akihiro Suda
 
IT Automation with Ansible
IT Automation with AnsibleIT Automation with Ansible
IT Automation with AnsibleRayed Alrashed
 
HelloCloud.io - Introduction to IaC & Terraform
HelloCloud.io - Introduction to IaC & TerraformHelloCloud.io - Introduction to IaC & Terraform
HelloCloud.io - Introduction to IaC & TerraformHello Cloud
 
eBPF - Observability In Deep
eBPF - Observability In DeepeBPF - Observability In Deep
eBPF - Observability In DeepMydbops
 
Kubernetes networking
Kubernetes networkingKubernetes networking
Kubernetes networkingSim Janghoon
 
Gerenciamento de Redes com Zabbix
Gerenciamento de Redes com ZabbixGerenciamento de Redes com Zabbix
Gerenciamento de Redes com ZabbixAndré Déo
 
[오픈소스컨설팅] EFK Stack 소개와 설치 방법
[오픈소스컨설팅] EFK Stack 소개와 설치 방법[오픈소스컨설팅] EFK Stack 소개와 설치 방법
[오픈소스컨설팅] EFK Stack 소개와 설치 방법Open Source Consulting
 
DevOps Meetup ansible
DevOps Meetup   ansibleDevOps Meetup   ansible
DevOps Meetup ansiblesriram_rajan
 
Reverse proxy & web cache with NGINX, HAProxy and Varnish
Reverse proxy & web cache with NGINX, HAProxy and VarnishReverse proxy & web cache with NGINX, HAProxy and Varnish
Reverse proxy & web cache with NGINX, HAProxy and VarnishEl Mahdi Benzekri
 
Introduction to memcached
Introduction to memcachedIntroduction to memcached
Introduction to memcachedJurriaan Persyn
 
Primeiros passos com a API do Zabbix
Primeiros passos com a API do ZabbixPrimeiros passos com a API do Zabbix
Primeiros passos com a API do ZabbixJanssen Lima
 
Elk with Openstack
Elk with OpenstackElk with Openstack
Elk with OpenstackArun prasath
 

Mais procurados (20)

Data Center Networks:Virtual Bridging
Data Center Networks:Virtual BridgingData Center Networks:Virtual Bridging
Data Center Networks:Virtual Bridging
 
HAProxy
HAProxy HAProxy
HAProxy
 
OpenGurukul : Database : PostgreSQL
OpenGurukul : Database : PostgreSQLOpenGurukul : Database : PostgreSQL
OpenGurukul : Database : PostgreSQL
 
Ansible presentation
Ansible presentationAnsible presentation
Ansible presentation
 
Nginx internals
Nginx internalsNginx internals
Nginx internals
 
OpenStack Architecture
OpenStack ArchitectureOpenStack Architecture
OpenStack Architecture
 
What Is ELK Stack | ELK Tutorial For Beginners | Elasticsearch Kibana | ELK S...
What Is ELK Stack | ELK Tutorial For Beginners | Elasticsearch Kibana | ELK S...What Is ELK Stack | ELK Tutorial For Beginners | Elasticsearch Kibana | ELK S...
What Is ELK Stack | ELK Tutorial For Beginners | Elasticsearch Kibana | ELK S...
 
Delivering High-Availability Web Services with NGINX Plus on AWS
Delivering High-Availability Web Services with NGINX Plus on AWSDelivering High-Availability Web Services with NGINX Plus on AWS
Delivering High-Availability Web Services with NGINX Plus on AWS
 
[KubeCon NA 2020] containerd: Rootless Containers 2020
[KubeCon NA 2020] containerd: Rootless Containers 2020[KubeCon NA 2020] containerd: Rootless Containers 2020
[KubeCon NA 2020] containerd: Rootless Containers 2020
 
IT Automation with Ansible
IT Automation with AnsibleIT Automation with Ansible
IT Automation with Ansible
 
HelloCloud.io - Introduction to IaC & Terraform
HelloCloud.io - Introduction to IaC & TerraformHelloCloud.io - Introduction to IaC & Terraform
HelloCloud.io - Introduction to IaC & Terraform
 
eBPF - Observability In Deep
eBPF - Observability In DeepeBPF - Observability In Deep
eBPF - Observability In Deep
 
Kubernetes networking
Kubernetes networkingKubernetes networking
Kubernetes networking
 
Gerenciamento de Redes com Zabbix
Gerenciamento de Redes com ZabbixGerenciamento de Redes com Zabbix
Gerenciamento de Redes com Zabbix
 
[오픈소스컨설팅] EFK Stack 소개와 설치 방법
[오픈소스컨설팅] EFK Stack 소개와 설치 방법[오픈소스컨설팅] EFK Stack 소개와 설치 방법
[오픈소스컨설팅] EFK Stack 소개와 설치 방법
 
DevOps Meetup ansible
DevOps Meetup   ansibleDevOps Meetup   ansible
DevOps Meetup ansible
 
Reverse proxy & web cache with NGINX, HAProxy and Varnish
Reverse proxy & web cache with NGINX, HAProxy and VarnishReverse proxy & web cache with NGINX, HAProxy and Varnish
Reverse proxy & web cache with NGINX, HAProxy and Varnish
 
Introduction to memcached
Introduction to memcachedIntroduction to memcached
Introduction to memcached
 
Primeiros passos com a API do Zabbix
Primeiros passos com a API do ZabbixPrimeiros passos com a API do Zabbix
Primeiros passos com a API do Zabbix
 
Elk with Openstack
Elk with OpenstackElk with Openstack
Elk with Openstack
 

Semelhante a Primeiros passos com a API do Zabbix - Webinar JLCP

Primeiros Passos com a API do Zabbix - 3 Meetup do Interior
Primeiros Passos com a API do Zabbix - 3 Meetup do InteriorPrimeiros Passos com a API do Zabbix - 3 Meetup do Interior
Primeiros Passos com a API do Zabbix - 3 Meetup do InteriorRobert Silva
 
Primeiros passos com a API do Zabbix - 3º Zabbix Meetup do Interior
Primeiros passos com a API do Zabbix - 3º Zabbix Meetup do InteriorPrimeiros passos com a API do Zabbix - 3º Zabbix Meetup do Interior
Primeiros passos com a API do Zabbix - 3º Zabbix Meetup do InteriorZabbix BR
 
Colaboração em Projetos FLOSS: CakePHP
Colaboração em Projetos FLOSS: CakePHPColaboração em Projetos FLOSS: CakePHP
Colaboração em Projetos FLOSS: CakePHPThiago Colares
 
Colaboração em Projetos FLOSS: CakePHP
Colaboração em Projetos FLOSS: CakePHPColaboração em Projetos FLOSS: CakePHP
Colaboração em Projetos FLOSS: CakePHPCBA2012
 
Cake php selecaodeprojetos-apres-em-modelo
Cake php selecaodeprojetos-apres-em-modeloCake php selecaodeprojetos-apres-em-modelo
Cake php selecaodeprojetos-apres-em-modeloCBA2012
 
Diapositivos práticos - Integração de Sistemas.pdf
Diapositivos práticos - Integração de Sistemas.pdfDiapositivos práticos - Integração de Sistemas.pdf
Diapositivos práticos - Integração de Sistemas.pdfJ0071
 
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
 
Python - Programando em alto nível
Python - Programando em alto nívelPython - Programando em alto nível
Python - Programando em alto nívelIgor Sobreira
 
Implementando PSR-3 com Monolog
Implementando PSR-3 com MonologImplementando PSR-3 com Monolog
Implementando PSR-3 com MonologGabriel Machado
 
Zabbix?!? Sou Dev, o que eu tenho a ver com isso?!? - 3º Zabbix Meetup do In...
 Zabbix?!? Sou Dev, o que eu tenho a ver com isso?!? - 3º Zabbix Meetup do In... Zabbix?!? Sou Dev, o que eu tenho a ver com isso?!? - 3º Zabbix Meetup do In...
Zabbix?!? Sou Dev, o que eu tenho a ver com isso?!? - 3º Zabbix Meetup do In...Zabbix BR
 
Logs, pra que te quero! @ PHP Community Summit by locaweb 2017
Logs, pra que te quero! @ PHP Community Summit by locaweb 2017Logs, pra que te quero! @ PHP Community Summit by locaweb 2017
Logs, pra que te quero! @ PHP Community Summit by locaweb 2017Gabriel Machado
 
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
 
#1 Robot Floripa - Robot Framework: O que é? Onde vive? Do que se alimenta?
#1 Robot Floripa - Robot Framework: O que é? Onde vive? Do que se alimenta?#1 Robot Floripa - Robot Framework: O que é? Onde vive? Do que se alimenta?
#1 Robot Floripa - Robot Framework: O que é? Onde vive? Do que se alimenta?Mayara Fernandes
 
MC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrões
MC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrõesMC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrões
MC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrõesRodrigo Cândido da Silva
 
JHipster - Produtividade e Maturidade em suas mãos
JHipster - Produtividade e Maturidade em suas mãosJHipster - Produtividade e Maturidade em suas mãos
JHipster - Produtividade e Maturidade em suas mãosThiago Soares
 
Construindo APIs RESTful com Spring
Construindo APIs RESTful com SpringConstruindo APIs RESTful com Spring
Construindo APIs RESTful com SpringMateus Malaquias
 
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1Giovanni Bassi
 

Semelhante a Primeiros passos com a API do Zabbix - Webinar JLCP (20)

Primeiros Passos com a API do Zabbix - 3 Meetup do Interior
Primeiros Passos com a API do Zabbix - 3 Meetup do InteriorPrimeiros Passos com a API do Zabbix - 3 Meetup do Interior
Primeiros Passos com a API do Zabbix - 3 Meetup do Interior
 
Primeiros passos com a API do Zabbix - 3º Zabbix Meetup do Interior
Primeiros passos com a API do Zabbix - 3º Zabbix Meetup do InteriorPrimeiros passos com a API do Zabbix - 3º Zabbix Meetup do Interior
Primeiros passos com a API do Zabbix - 3º Zabbix Meetup do Interior
 
Colaboração em Projetos FLOSS: CakePHP
Colaboração em Projetos FLOSS: CakePHPColaboração em Projetos FLOSS: CakePHP
Colaboração em Projetos FLOSS: CakePHP
 
Colaboração em Projetos FLOSS: CakePHP
Colaboração em Projetos FLOSS: CakePHPColaboração em Projetos FLOSS: CakePHP
Colaboração em Projetos FLOSS: CakePHP
 
Java 8 e futuro
Java 8 e futuroJava 8 e futuro
Java 8 e futuro
 
Cake php selecaodeprojetos-apres-em-modelo
Cake php selecaodeprojetos-apres-em-modeloCake php selecaodeprojetos-apres-em-modelo
Cake php selecaodeprojetos-apres-em-modelo
 
Diapositivos práticos - Integração de Sistemas.pdf
Diapositivos práticos - Integração de Sistemas.pdfDiapositivos práticos - Integração de Sistemas.pdf
Diapositivos práticos - Integração de Sistemas.pdf
 
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
 
Python - Programando em alto nível
Python - Programando em alto nívelPython - Programando em alto nível
Python - Programando em alto nível
 
Implementando PSR-3 com Monolog
Implementando PSR-3 com MonologImplementando PSR-3 com Monolog
Implementando PSR-3 com Monolog
 
Zabbix?!? Sou Dev, o que eu tenho a ver com isso?!? - 3º Zabbix Meetup do In...
 Zabbix?!? Sou Dev, o que eu tenho a ver com isso?!? - 3º Zabbix Meetup do In... Zabbix?!? Sou Dev, o que eu tenho a ver com isso?!? - 3º Zabbix Meetup do In...
Zabbix?!? Sou Dev, o que eu tenho a ver com isso?!? - 3º Zabbix Meetup do In...
 
Logs, pra que te quero! @ PHP Community Summit by locaweb 2017
Logs, pra que te quero! @ PHP Community Summit by locaweb 2017Logs, pra que te quero! @ PHP Community Summit by locaweb 2017
Logs, pra que te quero! @ PHP Community Summit by locaweb 2017
 
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
 
#1 Robot Floripa - Robot Framework: O que é? Onde vive? Do que se alimenta?
#1 Robot Floripa - Robot Framework: O que é? Onde vive? Do que se alimenta?#1 Robot Floripa - Robot Framework: O que é? Onde vive? Do que se alimenta?
#1 Robot Floripa - Robot Framework: O que é? Onde vive? Do que se alimenta?
 
MC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrões
MC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrõesMC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrões
MC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrões
 
JHipster - Produtividade e Maturidade em suas mãos
JHipster - Produtividade e Maturidade em suas mãosJHipster - Produtividade e Maturidade em suas mãos
JHipster - Produtividade e Maturidade em suas mãos
 
Construindo APIs RESTful com Spring
Construindo APIs RESTful com SpringConstruindo APIs RESTful com Spring
Construindo APIs RESTful com Spring
 
Zope
ZopeZope
Zope
 
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
 
Palestra Zabbix no 12 Geinfo (2013)
Palestra Zabbix no 12 Geinfo (2013)Palestra Zabbix no 12 Geinfo (2013)
Palestra Zabbix no 12 Geinfo (2013)
 

Mais de Robert Silva

Integração do Zabbix com Testes Automatizados
Integração do Zabbix com Testes AutomatizadosIntegração do Zabbix com Testes Automatizados
Integração do Zabbix com Testes AutomatizadosRobert Silva
 
Grafana & Zabbix - Webinar JLCP
Grafana & Zabbix - Webinar JLCPGrafana & Zabbix - Webinar JLCP
Grafana & Zabbix - Webinar JLCPRobert Silva
 
Cloud e DevOps, como o Zabbix pode contribuir para este cenário - Zabbix Conf...
Cloud e DevOps, como o Zabbix pode contribuir para este cenário - Zabbix Conf...Cloud e DevOps, como o Zabbix pode contribuir para este cenário - Zabbix Conf...
Cloud e DevOps, como o Zabbix pode contribuir para este cenário - Zabbix Conf...Robert Silva
 
Visão de Negócio com Zabbix
Visão de Negócio com ZabbixVisão de Negócio com Zabbix
Visão de Negócio com ZabbixRobert Silva
 
Agilizando a administração do Zabbix com API
Agilizando a administração do Zabbix com APIAgilizando a administração do Zabbix com API
Agilizando a administração do Zabbix com APIRobert Silva
 

Mais de Robert Silva (6)

Integração do Zabbix com Testes Automatizados
Integração do Zabbix com Testes AutomatizadosIntegração do Zabbix com Testes Automatizados
Integração do Zabbix com Testes Automatizados
 
Grafana & Zabbix - Webinar JLCP
Grafana & Zabbix - Webinar JLCPGrafana & Zabbix - Webinar JLCP
Grafana & Zabbix - Webinar JLCP
 
Cloud e DevOps, como o Zabbix pode contribuir para este cenário - Zabbix Conf...
Cloud e DevOps, como o Zabbix pode contribuir para este cenário - Zabbix Conf...Cloud e DevOps, como o Zabbix pode contribuir para este cenário - Zabbix Conf...
Cloud e DevOps, como o Zabbix pode contribuir para este cenário - Zabbix Conf...
 
Visão de Negócio com Zabbix
Visão de Negócio com ZabbixVisão de Negócio com Zabbix
Visão de Negócio com Zabbix
 
Zabbix + Grafana
Zabbix + GrafanaZabbix + Grafana
Zabbix + Grafana
 
Agilizando a administração do Zabbix com API
Agilizando a administração do Zabbix com APIAgilizando a administração do Zabbix com API
Agilizando a administração do Zabbix com API
 

Primeiros passos com a API do Zabbix - Webinar JLCP

  • 2. Robert Silva Especialista em monitoramento Desenvolvedor Python JLCP robert.silva@jlcp.com.br
  • 3. Primeiros passos com API do Zabbix
  • 4. Agenda 1. Introdução a API do Zabbix 1. O que é API? 2. Visão geral da API do Zabbix 3. O que é JSON? 4. Estrutura 5. Fluxo de mensagem 6. Qual chamada utilizar? 7. Bibliotecas 2. Consumindo a API na prática com POSTMAN 1. O que é POSTMAN? 2. Executando as primeiras requisições 3. Lista de hosts habilitados/desabilitados 4. Como trabalhar com os parâmetros de cada método? 5. O que significa cada objeto de retorno? 3. Casos de uso na JLCP. 4. Encerramento/Perguntas
  • 5. O que é API?
  • 6. Visão Geral da API do Zabbix ● API baseada no Frontend do Zabbix ● Utiliza o protocolo JSON RPC 2.0. ● Utiliza a mesma regra de permissão do Zabbix.
  • 7. O que é JSON? ● JSON (JavaScript Object Notation) ● JSON é um formato leve para troca de informações entre sistemas. ● Possui duas estruturas: ● Uma coleção de chave/valor ● Uma lista ordenada, conhecida como array em algumas linguagens de programação. ● https://jsonlint.com/ ● https://www.jsonrpc.org/specification ● http://json.org/
  • 8. Estrutura da API ● A API é estruturada em Classes. ● Host, Hostgroup, Item, Trigger e etc. ● Possui atualmente mais de 232 métodos. ● Os principais métodos são: ● Get – Lista informações ● Create – Cria objeto ● Update – Atualiza objeto ● Delete – Deleta objeto ● Classes de dados históricos possuem somente o método Get. ● Exemplo: Event, History e Problem
  • 9. Fluxo de mensagem da API Cliente API Zabbix API Token user.login (Autenticação) hostgroup.get (Lista de grupo de hosts) Result host.get (Lista de hosts) Result user.logout (Logoff)
  • 10. Qual chamada utilizar? ● Monitoramento. ● Configuração. ● Administração. ● Informações da API. ● https://www.zabbix.com/documentation/4.0/manual/api/reference
  • 12. Consumindo API na Prática com POSTMAN
  • 13. O que é POSTMAN? ● Aplicação que permite enviar e receber dados via requisições HTTP. ● Além de outras funcionalidades. ● https://www.getpostman.com/
  • 14. Autenticando na API do Zabbix { "jsonrpc": "2.0", "method": "user.login", "params": { "user": ”usuario", "password": ”senha" }, "id": 1 } { "jsonrpc": "2.0", "result": "7c5ad4e01e4a6c18cceb0754d2d14995", "id": 1 } user.login Result: TOKEN
  • 15. Listando hosts host.get { "jsonrpc": "2.0", "method": "host.get", "params": { "output": "extend" }, "auth": "01b4d00065ecd6eec4ab8c9aae6921ff", "id": 1 }
  • 16. Listando hosts Result do host.get { "jsonrpc": "2.0", "result": [ { "hostid": "10084", "proxy_hostid": "0", "host": "zabbix-proxy", "status": "0", "disable_until": "0", ..., ... },
  • 17. Aqui começam as dúvidas... ● O que significa esses objetos que retornaram (status e etc.)? ● E se eu não quiser todos esses objetos no resultado? ● Posso filtrar pelo status do host? ● Posso filtrar pelo grupo de host? ● Posso procurar todos os hosts com o nome parecido?
  • 18. Casos de uso na JLCP ● Dashboards ● Automaçãoes ● Novas funcionalidades para o Zabbix ● Relatórios em PDF ● Entre outros.
  • 19. Benefícios da API para JLCP ● Redução de custo operacional. ● Agilidade na entrega de projetos. ● Fidelização de clientes
  • 20. Obrigado pela presença! Robert Silva Especialista em monitoramento Desenvolvedor Python JLCP robert.silva@jlcp.com.br https://www.linkedin.com/in/contatorobert/