Este documento discute como configurar e usar logs no PostgreSQL para monitoramento e solução de problemas. Ele explica onde armazenar logs, quais informações registrar, como rotacionar logs e ferramentas para analisar logs. O objetivo é ajudar DBAs a monitorarem o banco de dados e identificarem erros rapidamente.
3. Timbira
http://www.timbira.com.br
A empresa Brasileira de PostgreSQL
Consultoria / Desenvolvimento
Planos de Suporte
Parcerias com Empresas Desenvolvedoras de Software
Treinamentos In-Company e On-Line
Corre¸c˜ao de bugs no PostgreSQL garantida em contrato
4. Sobre esta apresenta¸c˜ao
esta apresenta¸c˜ao est´a dispon´ıvel em:
http://www.timbira.com.br/material
esta apresenta¸c˜ao est´a sob licen¸ca Creative Commons
Atribui¸c˜ao 3.0 Brasil:
http://creativecommons.org/licenses/by/3.0/br
6. Sobre o que estamos falando?
Vis˜ao sobre o passado:
Erros de configura¸c˜ao;
Erros na aplica¸c˜ao;
Volume de conex˜oes;
Tempos de execu¸c˜ao;
Locks, deadlocks, temp buffers
8. Onde logar
log destination: (stderr, csvlog, syslog e se estiver utilizando
o Windows, eventlog)
logging collector: Ligue e seja feliz
log directory: pg log (vocˆe pode utilizar um ponto de
montagem s´o para os logs tamb´em)
log filename: use
’postgresql-%Y-%m-%d%H%M%S.log ou postgresql − %d.log
9. Onde logar
log file mode: Tire a m˜ao da´ı.
log rotation age: ’1d’
log rotation size: 10MB a 1GB
log truncate on rotation: use em sistemas embarcados para
rotacionar os logs.
10. Quando logar
client min messages, log min messages e
log min error statement: DEBUG5, DEBUG4, DEBUG3,
DEBUG2, DEBUG1, INFO, NOTICE, WARNING, ERROR,
LOG, FATAL e PANIC
log min duration statement: gatilho para logar comandos com
valores maiores sejam logados (em ms)
11. O que logar
application name: N˜ao mexa, mas saiba usar na sua aplica¸c˜ao
(SET application name = ’meu app’;)
debug print parse, debug print rewritten, debug print plan,
debug pretty print: n˜ao mexa.
log checkpoints: ligue (porque eu estou mandando! S´erio, n˜ao
custa nada)
log connections e log disconnections: use com parcimˆonia
log duration: h´a quem use. Casos bem espec´ıficos. N˜ao
substitui o log min duration
12. O que logar
log error verbosity: Em geral, n˜ao mexa.
log hostname: S´o ative se confiar muito no seu DNS. Pode
gerar um pouco de overhead.
log line prefix: ”%t [%p]: [%l] db=%d,user=%u ‘. Muitas
op¸c˜oes legais. Vale `a pena conhecer.
log lock waits: Ligue e entenda.
log statement: DDL, MOD (DDL + DML), ALL (tudo) ou
none (nada).
log temp files: ´Util para ajustar parˆametros de mem´oria.
Coloque em zero para ver o que acontece de verdade.
log timezone: Espero que vocˆe n˜ao tenha que mexer nisso...
13. GUCs ou Grand Unified Configuration
Alguns parˆametros podem ser alterados em diferentes
contextos, como INTERNAL, POSTMASTER, SIGHUP,
BACKEND, SUPERUSER e USER
Verificar no cat´alogo em pg settings;
Utilizar o pg reload conf() para parˆametros alterados no
postgresql.conf
Utilizar o pg rotate logfile() para rotacionar os logs
15. Para os DBAs...
Durma bem antes de um novo deploy. Tire uns dias de folga;
N˜ao deixe de tomar cerveja com os amigos...
Pratique exerc´ıcios f´ısicos regularmente!!!