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/

Primeiros passos com a API do Zabbix - Webinar JLCP

  • 1.
  • 2.
    Robert Silva Especialista emmonitoramento Desenvolvedor Python JLCP robert.silva@jlcp.com.br
  • 3.
    Primeiros passos comAPI do Zabbix
  • 4.
    Agenda 1. Introdução aAPI 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.
  • 6.
    Visão Geral daAPI 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 mensagemda 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
  • 11.
  • 12.
    Consumindo API naPrá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 APIdo 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 dohost.get { "jsonrpc": "2.0", "result": [ { "hostid": "10084", "proxy_hostid": "0", "host": "zabbix-proxy", "status": "0", "disable_until": "0", ..., ... },
  • 17.
    Aqui começam asdú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 usona JLCP ● Dashboards ● Automaçãoes ● Novas funcionalidades para o Zabbix ● Relatórios em PDF ● Entre outros.
  • 19.
    Benefícios da APIpara JLCP ● Redução de custo operacional. ● Agilidade na entrega de projetos. ● Fidelização de clientes
  • 20.
    Obrigado pela presença! Robert Silva Especialistaem monitoramento Desenvolvedor Python JLCP robert.silva@jlcp.com.br https://www.linkedin.com/in/contatorobert/