Efetuando login no arquivo de texto ou banco de dados?

15

Quando devo usar o banco de dados para registro e quando arquivos de texto?
Vejo que os servidores da Web e as estruturas da web (que seu aplicativo usa internamente) normalmente (sempre?) Registram solicitações e erros em arquivos de texto por padrão. Mas vejo que as pessoas que desenvolvem seus aplicativos em torno desses servidores e frameworks às vezes fazem login no banco de dados (até mesmo no banco de dados principal do aplicativo, não em um externo). Talvez também haja uma diferença entre registros de depuração e registros de auditoria - eu li esta classificação em algum lugar deste site.

    
por Nakilon 23.03.2016 / 12:10
fonte

4 respostas

12

Em termos muito gerais, o registro em um arquivo de texto é muito mais rápido do que o registro em um banco de dados. Esse é o principal aspecto do registro que você precisa considerar.

O motivo pelo qual você faz login em um banco de dados é mais provável porque deseja consultar os resultados - pesquisar informações de log específicas é mais fácil em um banco de dados, especialmente se você registrar informações contextuais que podem ser usadas para agrupar entradas de log. Também é geralmente mais fácil acessar um banco de dados central do que um arquivo de log em um servidor que pode ser protegido e não acessível.

O ideal seria registrar localmente em um arquivo e depois migrar esses dados para um DB para inspeção, se necessário posteriormente.

Agora a auditoria é uma besta diferente. Embora seja semelhante em conceito ao registro em log, geralmente é necessário manter a auditoria por um longo período (ao contrário dos arquivos de log usados para depuração ou rastreamento que podem ser excluídos por um capricho). As auditorias estão lá para mostrar informações importantes. Você registra muito menos informações de auditoria e com menos frequência que o registro normal, portanto, o desempenho não é uma preocupação. É por esse motivo que as vantagens de gravar essas informações de auditoria em um banco de dados central são vistas.

    
por 23.03.2016 / 12:30
fonte
6

Não existe uma abordagem única para todas as situações e, para resiliência, você às vezes deseja usar várias abordagens. Tomando seu exemplo, você pode querer esconder registros de depuração em um arquivo e armazenar registros de auditoria em um banco de dados.

Breadcrumbs de aplicativos

Prós: fácil de implementar e visível para o usuário imediatamente

Contras: as informações apenas persistem enquanto o aplicativo é exibido

Arquivo de texto

Prós: fácil de implementar

Contras: precisa garantir que o bloqueio de arquivo não ocorra. O que fazer quando o espaço em disco acabar na unidade de log?

Log de eventos

Prós: fácil de implementar

Contras: o log de eventos pode ficar cheio se não for configurado corretamente ou os logs antigos podem ser perdidos devido à política de retenção / cleardown.

Banco de dados

Prós: fácil de implementar

Contras: mais tráfego de banco de dados. Como registrar uma perda de DB ou outro problema de DB?

Mensagens (MQ)

Prós: atire e esqueça

Contras: Outra camada para dar errado. Requer configuração

    
por 23.03.2016 / 12:33
fonte
2

Os registros de auditoria devem garantir a rastreabilidade total das operações por um longo período para fins de auditoria, com o objetivo de justificar totalmente o conteúdo de seu banco de dados.

Em alguns casos (por exemplo, aplicativos financeiros), esses registros podem ter que garantir a conformidade com os requisitos legais, como retenção (em alguns países, por 10 anos) ou inalterabilidade. Como esses logs têm que justificar o conteúdo do banco de dados no nível do aplicativo, é prática comum armazená-los no banco de dados, onde o acesso pode ser controlado para evitar alterações não autorizadas.

Outros registros , como o monitoramento de registros ou registros de segurança, frequentemente têm que lidar com restrições de desempenho e volume. Eles geralmente são gravados em um arquivo porque é mais rápido escrever (sem sobrecarga de gerenciamento de transações) mais fácil de arquivar offline e mais fácil de integrar com o monitoramento externo. Ferramentas SIEM .

Deve-se observar que, embora esses tipos de registros possam ser usados para demonstrar a confiabilidade dos logs de auditoria (por exemplo, sem acesso não autorizado), eles geralmente têm restrições de retenção mais curtas (por exemplo, entre 6 meses e 2 anos). registros de telecomunicação) se houver qualquer restrição.

    
por 23.03.2016 / 13:18
fonte
1

Uma das muitas razões para usar o db para o registro de depuração é quando você não tem acesso ao aplicativo ou servidor web para visualizar o visualizador de eventos ou arquivos de texto

Os registros de auditoria são diferentes, em seguida, os logs de depuração no contexto do aplicativo da Web, pois, em alguns aplicativos, talvez seja necessário mostrá-los ao usuário final, para que eles possam acessar o banco de dados para facilitar a recuperação.

Você também pode usar o DB Tools para filtrar e facilitar a visualização.

    
por 23.03.2016 / 12:28
fonte

Tags