Versões comparadas

Chave

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

...

Painel
borderColorgrey
borderStylesolid
 

Monitoramento de API's




Painel
borderColorgrey
titleColorWhite
borderWidth1px
titleBGColor#AB0047
titleObjetivo
  • 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



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.

  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 postgreePostgree:
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 houver erra, realizar  restart dos 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:


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 RemovedImage Added
Image RemovedImage Added

  • Criar TRIGGER:
  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:
  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).

Image RemovedImage Added


  • Configuração da trigger
  1. Selecione o item que será monitorizado pela a 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 RemovedImage Added


  • 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

ao seu cenário.

Na tela inicial da interface zabbix, acesse o menu lateral, expanda o menu "Monitoramento

e cliquem Dashboard.
Image RemovedClique em Criar dashboard.
Image Removed

" (1), clique em "Dashboard" (2) e em "Criar Novo" (3):
Image Added

  1. Mantenha o usuário adm do zabbix;
  2. Crie um nome amigável para sua dashboard;
  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 tipos 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 Exemplo de dashboard.:
Image RemovedImage Added



Aviso
titleAtenção

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



Editado por: Paulo Borges 03/09/2021

...