O documento discute a importância de logs em aplicações PHP, definindo o que são logs e suas características em um bom sistema de logs. Ele explica como implementar logs no PHP usando o padrão PSR-3 e a biblioteca Monolog, apresentando exemplos de configuração de handlers, formatters e processors de logs. Por fim, discute a análise e centralização de logs para monitoramento e alertas.
2. Globalcode – Open4education
O que são Logs?
“Quando o homem avançou o mar, na época dos grandes
descobrimentos, para deixar registrado os eventos
ocorridos durante a viagem foi comum a criação de um log,
no sentido de ser um 'diário de bordo’.” - Wikipedia
12. Globalcode – Open4education
Analise seus logs
Antecipe problemas analisando seus logs
Tenha rotinas para ver logs não críticos
Não use seus logs só para apagar incêndios
14. Globalcode – Open4education
Níveis de Criticidade
Debug
Contém informações detalhadas para
debug
Geralmente é desligado em produção
(Ex: Iterações de um loop, query SQL
gerada pelo ORM)0
1
2
3
4
5
6
7
8
Level
15. Globalcode – Open4education
Níveis de Criticidade
Info
Eventos comuns ocorridos no sistema
(Ex.: Usuário fez login, hits na API)
0
1
2
3
4
5
6
7
8
Level
17. Globalcode – Open4education
Níveis de Criticidade
Warning
Eventos não caracterizados como erro,
mas que merecem uma certa atenção
(Ex.: Uso de funções descontinuadas)
0
1
2
3
4
5
6
7
8
Level
18. Globalcode – Open4education
Níveis de Criticidade
Error
Erros encontrados em tempo de
execução
Exceptions não tratadas aparecem aqui
0
1
2
3
4
5
6
7
8
Level
19. Globalcode – Open4education
Níveis de Criticidade
Critical
Condições críticas no sistema, como
falha de serviços externos
Pode ser usado para medir nível de
serviço (SLA)
0
1
2
3
4
5
6
7
8
Level
20. Globalcode – Open4education
Níveis de Criticidade
Alert
Requer uma ação corretiva imediata
Aqui alguém vai te ligar, enviar SMS,
@channel no Slack, sinal de fumaça
0
1
2
3
4
5
6
7
8
Level
21. Globalcode – Open4education
Níveis de Criticidade
Emergency
Sistema está em um estado não
utilizável
É raro no nível da aplicação
0
1
2
3
4
5
6
7
8
Level
23. Globalcode – Open4education
PSR-3
Padrão de Logs para PHP
De acordo com os níveis de criticidade da IETF
RFC 5424
Algumas implementações: monolog, zend-log,
log4php
Especificação da PSR-3
38. Globalcode – Open4education
Como visualizar?
Em produção, caso tenha acesso a máquina via
ssh
$ ssh -i ~/.ssh/key.pem user@host tail –f /path/to/log
E se seu ambiente for composto por 35 hosts?
39. Globalcode – Open4education
Você pode precisar de
Agregação e centralização de logs
Pesquisa por determinadas ocorrências
Geração de métricas (KPIs e SLA)
Alertas e notificações
43. Globalcode – Open4education
Resumindo...
Organize os logs gerados pela aplicação
Crie processos de revisão periódica dos logs
Automatize o envio de alertas
Centralize os logs da aplicação
Cruze com outros logs (servidor web, banco de
dados)