Logs e Monitoramento

Sistema de Logs

Logs e Monitoramento

Sistema completo de logs e monitoramento

"Tudo posso naquele que me fortalece"

Filipenses 4:13

Visão Geral

O sistema de logs do CBAV registra todas as atividades importantes do sistema, incluindo erros, ações de usuários, transações e eventos de segurança. Fornece monitoramento em tempo real e análise histórica.

Monitoramento

Acompanhamento em tempo real

Análise

Relatórios e estatísticas

Segurança

Auditoria e compliance

Tipos de Logs

Categorias de Logs

Logs de Erro

Registro de erros e exceções

  • Exceções PHP
  • Erros de banco de dados
  • Erros de rede
  • Erros de validação

Logs de Acesso

Registro de acessos e autenticação

  • Login de usuários
  • Logout de usuários
  • Tentativas de acesso
  • Ações de segurança

Logs de Atividade

Registro de ações dos usuários

  • Criação de registros
  • Edição de dados
  • Exclusão de dados
  • Exportação de dados

Logs de Performance

Monitoramento de performance

  • Tempo de resposta
  • Queries lentas
  • Uso de memória
  • Uso de disco

Configuração de Logs

Configurações do Laravel

Arquivo config/logging.php

'default' => env('LOG_CHANNEL', 'stack'),

'channels' => [
    'stack' => [
        'driver' => 'stack',
        'channels' => ['single', 'daily'],
        'ignore_exceptions' => false,
    ],
    
    'single' => [
        'driver' => 'single',
        'path' => storage_path('logs/laravel.log'),
        'level' => env('LOG_LEVEL', 'debug'),
    ],
    
    'daily' => [
        'driver' => 'daily',
        'path' => storage_path('logs/laravel.log'),
        'level' => env('LOG_LEVEL', 'debug'),
        'days' => 14,
    ],
    
    'error' => [
        'driver' => 'single',
        'path' => storage_path('logs/error.log'),
        'level' => 'error',
    ],
    
    'security' => [
        'driver' => 'single',
        'path' => storage_path('logs/security.log'),
        'level' => 'info',
    ],
],

Configuração no .env

# Configurações de Log
LOG_CHANNEL=stack
LOG_DEPRECATIONS_CHANNEL=null
LOG_LEVEL=debug

# Logs específicos
ERROR_LOG_CHANNEL=error
SECURITY_LOG_CHANNEL=security
PERFORMANCE_LOG_CHANNEL=daily

Uso de Logs

Exemplos de Implementação

Logs Básicos

// Log de informação
Log::info('Usuário criado com sucesso', [
    'user_id' => $user->id,
    'email' => $user->email
]);

// Log de erro
Log::error('Erro ao processar pagamento', [
    'user_id' => $user->id,
    'amount' => $amount,
    'error' => $exception->getMessage()
]);

// Log de warning
Log::warning('Tentativa de login falhou', [
    'email' => $email,
    'ip' => request()->ip()
]);

// Log de debug
Log::debug('Query executada', [
    'sql' => $query->toSql(),
    'bindings' => $query->getBindings()
]);

Logs de Atividade

// Log de criação
Log::info('Membro criado', [
    'action' => 'create',
    'model' => 'Member',
    'user_id' => auth()->id(),
    'data' => $member->toArray()
]);

// Log de atualização
Log::info('Membro atualizado', [
    'action' => 'update',
    'model' => 'Member',
    'user_id' => auth()->id(),
    'member_id' => $member->id,
    'changes' => $member->getChanges()
]);

// Log de exclusão
Log::info('Membro excluído', [
    'action' => 'delete',
    'model' => 'Member',
    'user_id' => auth()->id(),
    'member_id' => $member->id
]);

Logs de Segurança

// Log de login
Log::channel('security')->info('Login realizado', [
    'user_id' => $user->id,
    'email' => $user->email,
    'ip' => request()->ip(),
    'user_agent' => request()->userAgent()
]);

// Log de tentativa de acesso
Log::channel('security')->warning('Tentativa de acesso negada', [
    'email' => $email,
    'ip' => request()->ip(),
    'reason' => 'Senha incorreta'
]);

// Log de permissão negada
Log::channel('security')->warning('Acesso negado', [
    'user_id' => auth()->id(),
    'permission' => 'members.delete',
    'route' => request()->route()->getName()
]);

Monitoramento

Sistema de Monitoramento

Monitoramento de Erros

  • Alertas de erro em tempo real
  • Taxa de erro por período
  • Notificações automáticas
  • Histórico de erros

Monitoramento de Performance

  • Tempo de resposta
  • Queries lentas
  • Uso de recursos
  • Métricas de performance

Monitoramento de Segurança

  • Tentativas de acesso
  • Ações de usuários
  • Violações de segurança
  • Auditoria de ações

Monitoramento de Negócio

  • Atividade de usuários
  • Métricas de uso
  • Padrões de acesso
  • Análise de comportamento

Análise de Logs

Ferramentas de Análise

Comandos de Análise

# Ver logs em tempo real
tail -f storage/logs/laravel.log

# Buscar erros específicos
grep "ERROR" storage/logs/laravel.log

# Contar erros por período
grep -c "ERROR" storage/logs/laravel-$(date +%Y-%m-%d).log

# Analisar logs de segurança
tail -f storage/logs/security.log

# Ver logs de performance
grep "slow query" storage/logs/laravel.log

Relatórios de Logs

// Gerar relatório de erros
php artisan log:analyze --type=error --days=7

// Relatório de segurança
php artisan log:analyze --type=security --days=30

// Relatório de performance
php artisan log:analyze --type=performance --days=7

// Exportar logs
php artisan log:export --start=2025-01-01 --end=2025-01-31

Retenção de Logs

Política de Retenção

Logs de Erro

  • Retenção: 90 dias
  • Arquivo após 30 dias
  • Exclusão após 90 dias

Logs de Segurança

  • Retenção: 1 ano
  • Arquivo após 90 dias
  • Exclusão após 1 ano

Logs de Atividade

  • Retenção: 6 meses
  • Arquivo após 30 dias
  • Exclusão após 6 meses

Logs de Performance

  • Retenção: 30 dias
  • Arquivo após 7 dias
  • Exclusão após 30 dias