Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Escrito por:

...

P. B.
Painel
borderColorgrey
borderStylesolid
Image Modified  

Monitoramento de

API's

APIs



Âncora
Início
Início

Painel
borderColorgrey
titleColorWhite
borderWidth1px
titleBGColor#AB0047
titleObjetivo

O que é?

  • Este documento tem como objetivo demonstrar como monitorar uma API.   Há várias ferramentas para monitoramento de APIs em nosso ambiente, utilizaremos o Zabbix por ser uma solução consolidada, freeware e com vasta documentação disponível online.
Painel
borderColorgrey
titleColorWhite
borderWidth1 px
titleBGColor#AB0047
titleFuncionalidade
  • Analisar o desempenho das APIs (disponibilidade, velocidade, tempo de resposta).
Painel
borderColorgrey
titleColorWhite
borderWidth1px
titleBGColor#AB0047
titleOperacionalização
Expandir
titleRequisitos

1- Servidor dedicado para monitoramento:

Sistema operacional:

  • Debian Buster 10 (stable) ou superior;

Recursos Mínimos:

  • Memória RAM: 2 GB
  • Disco: 20 GB

Recursos Recomendados:

  • Memória RAM: 4 GB
  • Disco: 40 GB

Voltar ao início

Expandir
titleInstalação

Para realizar a instalação do Zabbix, basta executar os comandos a seguir.

Importante: Execute todos os comandos com o usuário root.

Preparação do Ambiente

  • Instalação NGINX:
    apt install nginx
Image Removed
  • Image Added


  • Instalação POSTGREE:

apt install postgresql postgresql-contrib

Image RemovedImage Added

Torne-se o usuário postgres, para poder criar o banco de dados

.

:
su – postgres

Execute para entrar no terminal de comandos do banco

.

:
psql

Para definir a senha do usuário postgres e instalar o adminpack

.

:
\password postgres
CREATE EXTENSION adminpack;

Ajustes no pg_hba.conf, assim toda alteração será necessária validação do postgres com a senha que acabou de definir

.

:
vim /etc/postgresql/13/main/pg_hba.conf
Altere as seguintes linhas:
local   all             postgres                                peer
local   all             all                                          peer
Para: 

Reinicie o

postgree

Postgree:
systemctl restart postgresql

c.

Voltar ao início

  • Instalação PHP 7.4:
    apt install php php-{fpm,cli,mysql,pear,gd,gmp,bcmath,mbstring,curl,xml,zip,json,pgsql}

Image Removed

d.

Image Added

Voltar ao início

  • Integração do PHP com NGINX. 
    Mover arquivo default:
    mv /etc/nginx/sites-available/default /etc/nginx/sites-available/default.original

Criar novo arquivo default
vim /etc/nginx/sites-available/default
inclua no seu arquivo as informações abaixo e salve.

Teste a configuração: 
nginx -t

Se não

tem nada errado e restart os

houver erro, realizar  restart dos serviços:
systemctl restart nginx php7.4-fpm

Image Removed

e.

Image Added

Voltar ao início

  • Instalação PHPPGADMIN:
    apt install phppgadmin

Ajuste no config.inc.php:
vim /usr/share/phppgadmin/conf/config.inc.php

Localize as linhas e ajuste:

$conf['extra_login_security'] = false;
$conf['owned_only'] = true;
Salve o arquivo.

Para torná-lo acessível, altere o arquivo de configuração do seu NGINX.
vim /etc/nginx/sites-available/default
Inclua o bloco destacado e salve o arquivo.

Reinicie o NGINX.

systemctl restart nginx

f.

Voltar ao início

  • Instalação ZABBIX 6

Para instalação, vamos incluir o repositório do oficial do Zabbix

.

:
cd /tmp
apt install wget

Voltar ao início

Repositório Debian 11:
wget https://repo.zabbix.com/zabbix/6.0/debian/pool/main/z/zabbix-release/zabbix-release_6.0-1+debian11_all.deb

Image RemovedImage Added

apt install ./zabbix-release_6.0-1+debian11_all.deb

apt update; apt upgrade -y

apt install zabbix-server-pgsql zabbix-frontend-php php-pgsql zabbix-nginx-conf zabbix-sql-scripts zabbix-agent

Image RemovedImage Added

Criar uma base de dados chamada "zabbix" e um usuário, com o mesmo nome, no PostgreSQL

.

:

createuser --pwprompt zabbix (crie uma senha)

createdb -O zabbix zabbix

Importe o esquema inicial e os dados

:
zcat /usr/share/doc/zabbix-sql-scripts/postgresql/server.sql.gz | psql -U zabbix -d zabbix &>/dev/null

Volte para o root:
Exit

Edite o arquivo zabbix_server.conf para informar os dados para conexão com do PostgreSQL.:
vim /etc/zabbix/zabbix_server.conf

Procure por # DBPassword=descomente e sete sua senha e salve o arquivo.


Ajuste o arquivo /etc/zabbix/php-fpm.conf, descomente e defina o fuso horário correto

.

(timezone Sua região

.

):
vim /etc/zabbix/php-fpm.conf

Adicione:  php_value[date.timezone] = America/Sao_Paulo
Salve o arquivo.

Inicie o servidor Zabbix e os processos do agente e configure-os para que sejam iniciados durante o boot do sistema

.

:
systemctl enable zabbix-server zabbix-agent

Image RemovedImage Added

vim /etc/php/7.4/fpm/php.ini

Localize max_execution_time e altere de 30 para 600

.

:

Voltar ao início

Acesse em seu navegador http://ipdoservidorzabbix
Selecione o Idioma e clique em "Próximo passo".

Se estiver tudo ok, clique novamente em "Próximo Passo".

Selecione PostgreSQL e informe a senha do usuário zabbix criada anteriormente, clique em "Próximo passo".

Crie um nome para seu servidor e clique em "Próximo Passo"

Se estiver tudo ok, clique mais uma vez em "Próximo Passo"

Instalação concluída.

Usuário: Admin
Senha: zabbix

Tela inicial do Zabbix:

Image AddedImage Removed

Voltar ao início

Expandir
titleConfiguração

Configuração de Host:

O monitoramento é feito a partir de um endereço http://IP:PORTA/statusapi (ip do servidor da API e a porta de comunicação seguido de uma chave para consulta de status); a partir desta “rota” o Zabbix consegue verificar o status, tempo de resposta entre outras métricas.

  • Criar ITEM
  1. Na tela inicial clique em configurações"Configurações";
  2. Em seguida, em "Hosts";
  3. Clique em "Itens" para abrir a tela de criação;
  4. Clique em "Criar item".

Image Added
Image RemovedImage Added
Image RemovedVoltar ao início


  • Criar TRIGGER (passo 1):
  1. Na tela inicial clique em configurações"Configurações";
  2. Em seguida, em hosts"Hosts";
  3. Clique em trigger "Trigger" para abrir a tela de criação;
  4. Clique em "Criar trigger".

Image RemovedImage Added

Image RemovedImage Added


  • Criar TRIGGER (passo 2):
  1. Crie um nome para identificar a trigger Trigger posteriormente;
  2. Clique em "Adicionar" para abrir o assistente para criação da expressão regular que vai capturar a métrica.;
  3. Informe a URL (esta foi criada para verificar o status para consulta do status da métrica: http://IP:PORTA/statusapi).

Image RemovedImage Added


  • Configuração da triggerTrigger
  1. Selecione o item que será monitorizado pela a trigger.monitorado pela Trigger;
  2. Selecione a função (statusStatus, tempo Tempo de resposta, velocidade Velocidade de download, pingPing...);
  3. Informe a condição para o teste lógico
Image Removed
  1. .

Image Added

Voltar ao início


  • Dashboard
Um dashboard

O Dashboard no Zabbix ajuda muito na visualização das métricas, todavia não existe um padrão, ficando a critério do responsável pelo monitoramento a criação do modelo que melhor

atende o

atenda ao seu cenário.

Na tela inicial da interface

zabbix

Zabbix, acesse o menu lateral

, expanda

:

  1. Expanda o menu Monitoramento e cliquem Dashboard.
    Image RemovedClique em Criar dashboard.
    Image Removed"Monitoramento";
  2. Clique em "Dashboard";

E em "Criar Novo" (3).
Image Added

  1. Mantenha o usuário adm do zabbixZabbix;
  2. Crie um nome amigável para sua dashboardDashboard;
  3. Clique em aplicar
    Image Removed"Aplicar".
    Image Added
  4. Selecione o tipo de widget (gráficoGráfico, disponibilidadeDisponibilidade, incidentesIncidentes, relógioRelógio...);
  5. Crie um nome amigável para o widget;
  6. Selecione o intervalo de atualização do widget;
  7. No exemplo da imagem acima foi selecionado o widget “Gráfico”, portanto é necessário indicar a origem dos dados que vão ser serão utilizados para exibição. Os outros tipo demais também exigem a origem dos dados.;
  8. Clique em "Adicionar".
    Image RemovedImage Added

Ao final das configurações é possível obter um resultado semelhante ao exemplo abaixo

*exemplo de dashboard.
Image Removed

:Image Added

Voltar ao início

Aviso
titleAtenção

Documentação elaborada com base na versão vigente do sistema.



Editado por:
Paulo Borges 03/09/2021
P. B.,