Primeiros Passos com a API do Zabbix - 3 Meetup do Interior

RobertSilva17 55 views 19 slides May 04, 2019
Slide 1
Slide 1 of 19
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19

About This Presentation

Slides da palestra realizada no 3 Meetup do Interior em Campinas/Brasil em março de 2019.


Slide Content

Robert Silva
Especialista em monitoramento
Desenvolvedor Python
JLCP
[email protected]

Primeiros passos com a API do Zabbix

Agenda
•O que é API?
•Para que server a API do Zabbix?
•Visão geral da API do Zabbix
•O que é JSON?
•Estrutura da API
•Fluxo de mensagem
•Qual chamada utilizar?
•Quais parâmetros devo enviar?
•O que significa o retorno?
•Bibliotecas.

O que é API?
●ApplicationProgrammingInterface;
●Em português: Interface de Programação de Aplicações;
●É uma forma de integrar sistemas, possibilitando benefícios como:
●Segurança de dados;
●Facilidade na troca de informações com diferentes linguagens de
programação.

Para que serve a API do Zabbix?
●Criar, Ler, Atualizare Deletarobjetosdo Zabbix;
●Exemplos:
●Criar: Hosts, itens, triggers e etc;
●Ler: Hosts, itens, triggers, history, events e etc;
●Atualizar: Hosts, itens, triggers e etc;
●Deletar: Hosts, itens, triggers e etc.

Para que serve a API do Zabbix?
●E o que fazer com essas ações?
●Automatizar tarefas;
●Criar dashboards;
●Criar relatórios;
●Etc.

Visão geral da API do Zabbix
•API baseada no Frontenddo Zabbix;
•http://<IP-DNS-Frontend>/zabbix/api_jsonrpc.php;
•Utiliza o protocolo JSON RPC 2.0;
•Utiliza a mesma regra de permissão do Zabbix.

O que éJSON?
•JSON (JavaScriptObjectNotation);
•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 arrayem algumas
linguagens de programação;
•https://jsonlint.com/
•https://www.jsonrpc.org/specification
•http://json.org/

O que éJSON?
{
"jsonrpc": "2.0",
"result": [
{
"hostid": "10085",
"groups": [
{
"groupid": "2",
"name": "Linux servers",
"internal": "0",
"flags": "0"
},
{
"groupid": "4",
"name": "Zabbix servers",
"internal": "0",
"flags": "0"
}
]
}
],
"id": 2
}

Estruturada 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, Historye Problem.

Fluxode 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)

Qual
chamada
utilizar?
Fonte: https://www.zabbix.com/documentation/4.0/manual/api/reference

Quais
parâmetros
devo enviar?
Fonte: https://www.zabbix.com/documentation/4.0/manual/api/reference/host/get

Tiposde parâmetros
TipoDescriçãoExemplo
StringUma stringem python"hostids": "1034"
ArrayUma lista em python"hostids": ["1034", "1035", "1036"]
FlagQualquer valor, seja stringou númeroflag= 1
QueryÉ uma consulta com os objetos do
método utilizado
"extend"
["name", "status"]
ObjectUm dicionário em python, elemento
com chave: valor
{"status": 1}

O que significao retorno?{
"jsonrpc": "2.0",
"result": [
{
"itemid": "23298",
"type": "0",
"snmp_community": "",
"snmp_oid": "",
"hostid": "10084",
"name": "Contextswitches per second",
"key_": "system.cpu.switches",
"delay": "1m",
"history": "7d",
"trends": "365d",
"lastvalue": "2552",
"lastclock": "1351090998",
"prevvalue": "2641",
"state": "0",
"status": "0",
"value_type": "3",
"trapper_hosts": "",
"units": "sps",

Bibliotecas
Fonte: https://zabbix.org/wiki/Docs/api/libraries

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!
Primeiros passos com a API Zabbix
(Gratuito)
https://ead.jlcp.com.br