Auditoria, monitoramento e backup - ticket-go/ticketgo-back-end GitHub Wiki

Auditoria e monitoramento com Django Simple History

A funcionalidade de auditoria foi implementada no sistema utilizando a biblioteca Django Simple History. Essa implementação visa garantir a rastreabilidade e o histórico completo das operações realizadas nos modelos de dados relevantes. A seguir, estão os detalhes sobre como a auditoria foi configurada e como os usuários podem utilizar essa funcionalidade.

Implementação

  1. Biblioteca Django Simple History: Utilizamos a biblioteca Django Simple History para registrar alterações em nossos modelos de dados. Essa biblioteca fornece um meio simples e eficiente para rastrear mudanças feitas em instâncias de modelos ao longo do tempo.

  2. Modelos Configurados: A configuração foi realizada para registrar a criação, atualização e exclusão de registros dos seguintes modelos:

    • Modelo de Compras: Toda alteração no modelo de compras será registrada, incluindo a criação, atualização e exclusão.
    • Modelo de Usuário: Mudanças no modelo de usuário, como atualizações de perfil e alterações de dados, também serão registradas.
  3. Armazenamento dos Registros: Os registros de auditoria são armazenados na mesma base de dados que os dados principais. Cada modelo configurado com Django Simple History terá uma tabela de histórico associada, permitindo a visualização e recuperação de alterações passadas.

  4. Acesso aos Registros: Os registros de auditoria serão exibidos para os usuários na aplicação front-end.

Monitoramento com UptimeRobot

Para garantir a disponibilidade contínua da nossa API estamos utilizando os serviços do UptimeRobot. O UptimeRobot é uma ferramenta que verifica a disponibilidade da nossa aplicação e envia alertas caso o serviço esteja fora do ar.

Configuração do Monitoramento:

  • URL de Monitoramento: O monitoramento está configurado para verificar a URL da nossa API em intervalos regulares. A ferramenta utiliza checagens HTTP(s) para assegurar que a aplicação está respondendo conforme o esperado.

  • Intervalo de Checagem: A checagem é realizada a cada 5 minutos, garantindo uma resposta rápida em caso de problemas.

  • Alertas: O UptimeRobot está configurado para enviar alertas por e-mail sempre que detectar uma indisponibilidade ou erro na API. Estes alertas nos permitem agir rapidamente para resolver quaisquer problemas.

Link do Monitoramento:

Para visualizar o status e as estatísticas de monitoramento da nossa aplicação, acesse o painel de controle do UptimeRobot através do seguinte link: Monitoramento UptimeRobot.

Backup

Para realizar backups do banco de dados, implementamos um comando customizado em Django: python manage.py backupdb. Este comando está localizado em apps/core/management/commands/backup.py.

O comando realiza o backup do banco de dados PostgreSQL e salva o arquivo de backup em um diretório específico: apps/core/backups.

Ele está sendo executado automaticamente às 7h nas quartas-feiras através de agendamento pelo crontab do Linux com base em um script shell:

#!/bin/bash
echo "Cron job started at $(date)" >> /home/ubuntu/ticketgo-back-end/logs/backup.log
source /home/ubuntu/venv/bin/activate
cd /home/ubuntu/ticketgo-back-end 
echo "Virtual environment activated at $(date)" >> /home/ubuntu/ticketgo-back-end/logs/backup.log
python3 manage.py backupdb >> /home/ubuntu/ticketgo-back-end/logs/backup.log 2>&1
echo "Backup command executed at $(date)" >> /home/ubuntu/ticketgo-back-end/logs/backup.log
0 7 * * 4 /home/ubuntu/ticketgo-back-end/backup.sh