SlideShare uma empresa Scribd logo
Trabalhando com logs no PostgreSQL
F´abio Telles Rodriguez
Timbira - A empresa brasileira de PostgreSQL
18 de setembro de 2015
FTSL2015
Apresenta¸c˜ao
F´abio Telles Rodrigues
DBA Oracle e PostgreSQL +10 anos
Colaborador Comunidade Brasileira de PostgreSQL
Blog: http://savepoint.blog.br
@telles
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
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
Sobre o que estamos falando?
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
Mantra
O que os olhos n˜ao vˆeem o DBA n˜ao
sente
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
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.
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)
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
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...
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
GUCs ou Grand Unified Configuration
SELECT pg rotate logfile(), pg reload conf();
ALTER SYSTEM SET log min messages = ’INFO’;
ALTER DATABASE teste SET log min messages =
’NOTICE’;
ALTER ROLE abizi SET log min messages = ’DEBUG1’;
SET log min messages = ’PANIC’;
Usando o application name
SET application name = ’financeiro’;
SET application name = ’APP=financeiro — SCR=cadastro’;
SET application name = ’APP=financeiro — SCR=cadastro
— USER=telles’;
SET application name = ’APP=financeiro — SCR=cadastro
— USER=telles — HOST=m129’;
Ferramentas externas
grep, regex, sed, awk, etc;
pgBadger;
pgFouine (descontinuado);
auto explain;
Elasticsearch
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!!!
Perguntas
?
F´abio Telles Rodriguez
(telles@timbira.com.br)
http://www.timbira.com.br
http://www.postgresql.org/docs/current/static/runtime-config-logging.html
http://savepoint.blog.br/trabalhando-com-logs-no-postgresql
http://savepoint.blog.br/aprenda-a-trabalhar-com-as-configuracoes-do-postgresql
Anúncio

Recomendados

Annullamento in autotutela del permesso di costruire a Montetullio
Annullamento in autotutela del permesso di costruire a Montetullio
Valleditria News
 
Cartaz sobre a lei antifumo
Cartaz sobre a lei antifumo
sindiconet
 
Aula 04 isc - a informação e sua representação
Aula 04 isc - a informação e sua representação
Fábio Andrade
 
PostgreSQL Rock Star
PostgreSQL Rock Star
Fabio Telles Rodriguez
 
PostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardo
Fabio Telles Rodriguez
 
Alta Concorrência com Postgres
Alta Concorrência com Postgres
Fabio Telles Rodriguez
 
Alta Concorrência com Postgres
Alta Concorrência com Postgres
Fabio Telles Rodriguez
 
PostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardo
elliando dias
 
Trabalhando com Logs no PostgreSQL
Trabalhando com Logs no PostgreSQL
Fabio Telles Rodriguez
 
Postgres Big data
Postgres Big data
Fabio Telles Rodriguez
 
Oracle x PostgreSQL
Oracle x PostgreSQL
Fabio Telles Rodriguez
 
Postgres Chainsaw Massacre
Postgres Chainsaw Massacre
Fabio Telles Rodriguez
 
Administradores e suas gambiarras
Administradores e suas gambiarras
debian-rs
 
Tunning PostgreSQL em modo OGRO - 13º Latinoware
Tunning PostgreSQL em modo OGRO - 13º Latinoware
Gerdan Santos
 
Desmistificando web2py - #TDC2011
Desmistificando web2py - #TDC2011
Bruno Rocha
 
Os pecados mortais de escalabilidade em Drupal e seus efeitos nos negócios - ...
Os pecados mortais de escalabilidade em Drupal e seus efeitos nos negócios - ...
Taller Negócio Digitais
 
Dojo plpgsql
Dojo plpgsql
Fabrízio Mello
 
Composição e Integração de Sistemas em 2013
Composição e Integração de Sistemas em 2013
Leandro Silva
 
Software Livre em pequenas empresas
Software Livre em pequenas empresas
Paulo Henrique
 
Codigo limpo
Codigo limpo
diegomcunha
 
Django - Desenvolvimento web ágil com Python
Django - Desenvolvimento web ágil com Python
Igor Sobreira
 
Receitas XE
Receitas XE
Dennes Torres
 
Apresentacao redis
Apresentacao redis
dmazui
 
Acelerando o caminho para nuvem com serverless e java
Acelerando o caminho para nuvem com serverless e java
Evandro Pires da Silva
 
Joomla Day Brasil 2010: Customizações para grandes portais
Joomla Day Brasil 2010: Customizações para grandes portais
rafaelberlanda
 
TDD: A Essência do Mantra
TDD: A Essência do Mantra
Dionatan default
 
Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhor
Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhor
Dickson S. Guedes
 
ZeroBugsProject - Técnicas de programação efetivas
ZeroBugsProject - Técnicas de programação efetivas
Rafael Chinelato Del Nero
 
Data Hero: Sua carreira na área de dados
Data Hero: Sua carreira na área de dados
Fabio Telles Rodriguez
 
Postgres level up
Postgres level up
Fabio Telles Rodriguez
 

Mais conteúdo relacionado

Semelhante a Trabalhando com Logs no PostgreSQL (20)

Trabalhando com Logs no PostgreSQL
Trabalhando com Logs no PostgreSQL
Fabio Telles Rodriguez
 
Postgres Big data
Postgres Big data
Fabio Telles Rodriguez
 
Oracle x PostgreSQL
Oracle x PostgreSQL
Fabio Telles Rodriguez
 
Postgres Chainsaw Massacre
Postgres Chainsaw Massacre
Fabio Telles Rodriguez
 
Administradores e suas gambiarras
Administradores e suas gambiarras
debian-rs
 
Tunning PostgreSQL em modo OGRO - 13º Latinoware
Tunning PostgreSQL em modo OGRO - 13º Latinoware
Gerdan Santos
 
Desmistificando web2py - #TDC2011
Desmistificando web2py - #TDC2011
Bruno Rocha
 
Os pecados mortais de escalabilidade em Drupal e seus efeitos nos negócios - ...
Os pecados mortais de escalabilidade em Drupal e seus efeitos nos negócios - ...
Taller Negócio Digitais
 
Dojo plpgsql
Dojo plpgsql
Fabrízio Mello
 
Composição e Integração de Sistemas em 2013
Composição e Integração de Sistemas em 2013
Leandro Silva
 
Software Livre em pequenas empresas
Software Livre em pequenas empresas
Paulo Henrique
 
Codigo limpo
Codigo limpo
diegomcunha
 
Django - Desenvolvimento web ágil com Python
Django - Desenvolvimento web ágil com Python
Igor Sobreira
 
Receitas XE
Receitas XE
Dennes Torres
 
Apresentacao redis
Apresentacao redis
dmazui
 
Acelerando o caminho para nuvem com serverless e java
Acelerando o caminho para nuvem com serverless e java
Evandro Pires da Silva
 
Joomla Day Brasil 2010: Customizações para grandes portais
Joomla Day Brasil 2010: Customizações para grandes portais
rafaelberlanda
 
TDD: A Essência do Mantra
TDD: A Essência do Mantra
Dionatan default
 
Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhor
Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhor
Dickson S. Guedes
 
ZeroBugsProject - Técnicas de programação efetivas
ZeroBugsProject - Técnicas de programação efetivas
Rafael Chinelato Del Nero
 
Administradores e suas gambiarras
Administradores e suas gambiarras
debian-rs
 
Tunning PostgreSQL em modo OGRO - 13º Latinoware
Tunning PostgreSQL em modo OGRO - 13º Latinoware
Gerdan Santos
 
Desmistificando web2py - #TDC2011
Desmistificando web2py - #TDC2011
Bruno Rocha
 
Os pecados mortais de escalabilidade em Drupal e seus efeitos nos negócios - ...
Os pecados mortais de escalabilidade em Drupal e seus efeitos nos negócios - ...
Taller Negócio Digitais
 
Composição e Integração de Sistemas em 2013
Composição e Integração de Sistemas em 2013
Leandro Silva
 
Software Livre em pequenas empresas
Software Livre em pequenas empresas
Paulo Henrique
 
Django - Desenvolvimento web ágil com Python
Django - Desenvolvimento web ágil com Python
Igor Sobreira
 
Apresentacao redis
Apresentacao redis
dmazui
 
Acelerando o caminho para nuvem com serverless e java
Acelerando o caminho para nuvem com serverless e java
Evandro Pires da Silva
 
Joomla Day Brasil 2010: Customizações para grandes portais
Joomla Day Brasil 2010: Customizações para grandes portais
rafaelberlanda
 
TDD: A Essência do Mantra
TDD: A Essência do Mantra
Dionatan default
 
Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhor
Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhor
Dickson S. Guedes
 
ZeroBugsProject - Técnicas de programação efetivas
ZeroBugsProject - Técnicas de programação efetivas
Rafael Chinelato Del Nero
 

Mais de Fabio Telles Rodriguez (20)

Data Hero: Sua carreira na área de dados
Data Hero: Sua carreira na área de dados
Fabio Telles Rodriguez
 
Postgres level up
Postgres level up
Fabio Telles Rodriguez
 
Explain this!
Explain this!
Fabio Telles Rodriguez
 
High concurrency with Postgres
High concurrency with Postgres
Fabio Telles Rodriguez
 
Aplicações 10x a 100x mais rápida com o postgre sql
Aplicações 10x a 100x mais rápida com o postgre sql
Fabio Telles Rodriguez
 
Novidades do PostgreSQL 10
Novidades do PostgreSQL 10
Fabio Telles Rodriguez
 
Migre seu banco de dados para a nuvem. Pergunte-me como!
Migre seu banco de dados para a nuvem. Pergunte-me como!
Fabio Telles Rodriguez
 
PostgreSQL Wonderland TDC-SP 2015
PostgreSQL Wonderland TDC-SP 2015
Fabio Telles Rodriguez
 
Postgres Tuning
Postgres Tuning
Fabio Telles Rodriguez
 
Postgres Wonderland - PGDay CE2013
Postgres Wonderland - PGDay CE2013
Fabio Telles Rodriguez
 
Postgres Wonderland - Campus Party 2013
Postgres Wonderland - Campus Party 2013
Fabio Telles Rodriguez
 
Postgres, a "Metamorfose Ambulante"
Postgres, a "Metamorfose Ambulante"
Fabio Telles Rodriguez
 
Postgres Wonderland - PGDay Cascavél 2013
Postgres Wonderland - PGDay Cascavél 2013
Fabio Telles Rodriguez
 
Fazendo uma manada de elefantes passar por baixo da porta
Fazendo uma manada de elefantes passar por baixo da porta
Fabio Telles Rodriguez
 
Discos & Cia em PostgreSQL
Discos & Cia em PostgreSQL
Fabio Telles Rodriguez
 
Conceitos E Aplicações
Conceitos E Aplicações
Fabio Telles Rodriguez
 
PostgreSQL, o Elefante Encouraçado
PostgreSQL, o Elefante Encouraçado
Fabio Telles Rodriguez
 
Tutorial para criação de módulo no Xoops 2.4
Tutorial para criação de módulo no Xoops 2.4
Fabio Telles Rodriguez
 
Revisão do postgresql.conf
Revisão do postgresql.conf
Fabio Telles Rodriguez
 
Storage em Oracle RAC
Storage em Oracle RAC
Fabio Telles Rodriguez
 
Data Hero: Sua carreira na área de dados
Data Hero: Sua carreira na área de dados
Fabio Telles Rodriguez
 
Aplicações 10x a 100x mais rápida com o postgre sql
Aplicações 10x a 100x mais rápida com o postgre sql
Fabio Telles Rodriguez
 
Migre seu banco de dados para a nuvem. Pergunte-me como!
Migre seu banco de dados para a nuvem. Pergunte-me como!
Fabio Telles Rodriguez
 
Postgres Wonderland - Campus Party 2013
Postgres Wonderland - Campus Party 2013
Fabio Telles Rodriguez
 
Postgres Wonderland - PGDay Cascavél 2013
Postgres Wonderland - PGDay Cascavél 2013
Fabio Telles Rodriguez
 
Fazendo uma manada de elefantes passar por baixo da porta
Fazendo uma manada de elefantes passar por baixo da porta
Fabio Telles Rodriguez
 
Tutorial para criação de módulo no Xoops 2.4
Tutorial para criação de módulo no Xoops 2.4
Fabio Telles Rodriguez
 
Anúncio

Trabalhando com Logs no PostgreSQL

  • 1. Trabalhando com logs no PostgreSQL F´abio Telles Rodriguez Timbira - A empresa brasileira de PostgreSQL 18 de setembro de 2015 FTSL2015
  • 2. Apresenta¸c˜ao F´abio Telles Rodrigues DBA Oracle e PostgreSQL +10 anos Colaborador Comunidade Brasileira de PostgreSQL Blog: http://savepoint.blog.br @telles
  • 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
  • 5. Sobre o que estamos falando?
  • 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
  • 7. Mantra O que os olhos n˜ao vˆeem o DBA n˜ao sente
  • 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
  • 14. GUCs ou Grand Unified Configuration SELECT pg rotate logfile(), pg reload conf(); ALTER SYSTEM SET log min messages = ’INFO’; ALTER DATABASE teste SET log min messages = ’NOTICE’; ALTER ROLE abizi SET log min messages = ’DEBUG1’; SET log min messages = ’PANIC’;
  • 15. Usando o application name SET application name = ’financeiro’; SET application name = ’APP=financeiro — SCR=cadastro’; SET application name = ’APP=financeiro — SCR=cadastro — USER=telles’; SET application name = ’APP=financeiro — SCR=cadastro — USER=telles — HOST=m129’;
  • 16. Ferramentas externas grep, regex, sed, awk, etc; pgBadger; pgFouine (descontinuado); auto explain; Elasticsearch
  • 17. 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!!!