Ir para o final dos metadados
Ir para o início dos metadados

Você está vendo a versão antiga da página. Ver a versão atual.

Comparar com o atual Ver Histórico da Página

« Anterior Versão 6 Próxima »

Escrito por: Paulo Borges
 

Monitoramento de API's




Objetivo
  • 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.
Funcionalidade
  • Analisar o desempenho das APIs (disponibilidade, velocidade, tempo de resposta).
Operacionalização
 Requisitos

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


 Instalação

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

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

  1. Preparação do Ambiente
    1. Instalação NGINX:


      apt install nginx
    2. Instalação POSTGREE:

apt install postgresql postgresql-contrib

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
systemctl restart postgresql


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


d. 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 serviços:
systemctl restart nginx php7.4-fpm

e. 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. Instalação ZABBIX 6

Para instalação, vamos incluir o repositório do oficial do Zabbix.
cd /tmp
apt install wget


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

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

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


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


Localize max_execution_time e altere de 30 para 600.

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:

 Configuraçã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
  2. Em seguida em Hosts
  3. Clique em Itens para abrir a tela de criação
  4. Clique em Criar item





  • Criar TRIGGER:
  1. Na tela inicial clique em configurações
  2. Em seguida em hosts
  3. Clique em trigger para abrir a tela de criação
  4. Clique em Criar trigger


  • Criar TRIGGER:
  1. Crie um nome para identificar a 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)


  • Configuração da trigger
  1. Selecione o item que será monitorizado pela a trigger.
  2. Selecione a função (status, tempo de resposta, velocidade de download, ping...)
  3. Informe a condição para o teste lógico


  • Dashboard

Um 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 seu cenário.

  1. Na tela inicial da interface zabbix, acesse o menu lateral, expanda o menu Monitoramento e cliquem Dashboard.
  2. Clique em Criar dashboard.
  3. Mantenha o usuário adm do zabbix
  4. Crie um nome amigável para sua dashboard
  5. Clique em aplicar
  6. Selecione o tipo de widget (gráfico, disponibilidade, incidentes, relógio...)
  7. Crie um nome amigável para o widget
  8. Selecione o intervalo de atualização do widget
  9. No exemplo da imagem acima foi selecionado o widget “Gráfico” portanto é necessário indicar a origem dos dados que vão ser utilizados para exibição. Os outros tipo também exigem a origem dos dados.
  10. Clique em Adicionar.


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

*exemplo de dashboard.

Atenção

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



Editado por: Paulo Borges 03/09/2021
  • Sem rótulos