SlideShare uma empresa Scribd logo
1 de 18
Baixar para ler offline
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

Mais conteúdo relacionado

Semelhante a Trabalhando com Logs no PostgreSQL

Administradores e suas gambiarras
Administradores e suas gambiarrasAdministradores e suas gambiarras
Administradores e suas gambiarrasdebian-rs
 
Tunning PostgreSQL em modo OGRO - 13º Latinoware
Tunning PostgreSQL em modo OGRO - 13º LatinowareTunning PostgreSQL em modo OGRO - 13º Latinoware
Tunning PostgreSQL em modo OGRO - 13º LatinowareGerdan Santos
 
Desmistificando web2py - #TDC2011
Desmistificando web2py - #TDC2011Desmistificando web2py - #TDC2011
Desmistificando web2py - #TDC2011Bruno 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 - ...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 2013Composição e Integração de Sistemas em 2013
Composição e Integração de Sistemas em 2013Leandro Silva
 
Software Livre em pequenas empresas
Software Livre em pequenas empresasSoftware Livre em pequenas empresas
Software Livre em pequenas empresasPaulo Henrique
 
Django - Desenvolvimento web ágil com Python
Django - Desenvolvimento web ágil com PythonDjango - Desenvolvimento web ágil com Python
Django - Desenvolvimento web ágil com PythonIgor Sobreira
 
Apresentacao redis
Apresentacao redisApresentacao redis
Apresentacao redisdmazui
 
Acelerando o caminho para nuvem com serverless e java
Acelerando o caminho para nuvem com serverless e javaAcelerando o caminho para nuvem com serverless e java
Acelerando o caminho para nuvem com serverless e javaEvandro Pires da Silva
 
Joomla Day Brasil 2010: Customizações para grandes portais
Joomla Day Brasil 2010: Customizações para grandes portaisJoomla Day Brasil 2010: Customizações para grandes portais
Joomla Day Brasil 2010: Customizações para grandes portaisrafaelberlanda
 
TDD: A Essência do Mantra
TDD: A Essência do MantraTDD: A Essência do Mantra
TDD: A Essência do MantraDionatan default
 
Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhor
Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhorPorque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhor
Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhorDickson S. Guedes
 
ZeroBugsProject - Técnicas de programação efetivas
ZeroBugsProject - Técnicas de programação efetivasZeroBugsProject - Técnicas de programação efetivas
ZeroBugsProject - Técnicas de programação efetivasRafael Chinelato Del Nero
 

Semelhante a Trabalhando com Logs no PostgreSQL (20)

Trabalhando com Logs no PostgreSQL
Trabalhando com Logs no PostgreSQLTrabalhando com Logs no PostgreSQL
Trabalhando com Logs no PostgreSQL
 
Postgres Big data
Postgres Big dataPostgres Big data
Postgres Big data
 
Oracle x PostgreSQL
Oracle x PostgreSQLOracle x PostgreSQL
Oracle x PostgreSQL
 
Postgres Chainsaw Massacre
Postgres Chainsaw MassacrePostgres Chainsaw Massacre
Postgres Chainsaw Massacre
 
Administradores e suas gambiarras
Administradores e suas gambiarrasAdministradores e suas gambiarras
Administradores e suas gambiarras
 
Tunning PostgreSQL em modo OGRO - 13º Latinoware
Tunning PostgreSQL em modo OGRO - 13º LatinowareTunning PostgreSQL em modo OGRO - 13º Latinoware
Tunning PostgreSQL em modo OGRO - 13º Latinoware
 
Desmistificando web2py - #TDC2011
Desmistificando web2py - #TDC2011Desmistificando web2py - #TDC2011
Desmistificando web2py - #TDC2011
 
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 - ...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 - ...
 
Dojo plpgsql
Dojo plpgsqlDojo plpgsql
Dojo plpgsql
 
Composição e Integração de Sistemas em 2013
Composição e Integração de Sistemas em 2013Composição e Integração de Sistemas em 2013
Composição e Integração de Sistemas em 2013
 
Software Livre em pequenas empresas
Software Livre em pequenas empresasSoftware Livre em pequenas empresas
Software Livre em pequenas empresas
 
Codigo limpo
Codigo limpoCodigo limpo
Codigo limpo
 
Django - Desenvolvimento web ágil com Python
Django - Desenvolvimento web ágil com PythonDjango - Desenvolvimento web ágil com Python
Django - Desenvolvimento web ágil com Python
 
Receitas XE
Receitas XEReceitas XE
Receitas XE
 
Apresentacao redis
Apresentacao redisApresentacao redis
Apresentacao redis
 
Acelerando o caminho para nuvem com serverless e java
Acelerando o caminho para nuvem com serverless e javaAcelerando o caminho para nuvem com serverless e java
Acelerando o caminho para nuvem com serverless e java
 
Joomla Day Brasil 2010: Customizações para grandes portais
Joomla Day Brasil 2010: Customizações para grandes portaisJoomla Day Brasil 2010: Customizações para grandes portais
Joomla Day Brasil 2010: Customizações para grandes portais
 
TDD: A Essência do Mantra
TDD: A Essência do MantraTDD: A Essência do Mantra
TDD: A Essência do Mantra
 
Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhor
Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhorPorque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhor
Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhor
 
ZeroBugsProject - Técnicas de programação efetivas
ZeroBugsProject - Técnicas de programação efetivasZeroBugsProject - Técnicas de programação efetivas
ZeroBugsProject - Técnicas de programação efetivas
 

Mais de Fabio Telles Rodriguez

Data Hero: Sua carreira na área de dados
Data Hero: Sua carreira na área de dadosData Hero: Sua carreira na área de dados
Data Hero: Sua carreira na área de dadosFabio 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 sqlAplicações 10x a 100x mais rápida com o postgre sql
Aplicações 10x a 100x mais rápida com o postgre sqlFabio Telles Rodriguez
 
Migre seu banco de dados para a nuvem. Pergunte-me como!
Migre seu banco de dados para a nuvem. Pergunte-me como!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 2013Postgres Wonderland - Campus Party 2013
Postgres Wonderland - Campus Party 2013Fabio Telles Rodriguez
 
Postgres Wonderland - PGDay Cascavél 2013
Postgres Wonderland - PGDay Cascavél 2013Postgres Wonderland - PGDay Cascavél 2013
Postgres Wonderland - PGDay Cascavél 2013Fabio Telles Rodriguez
 
Fazendo uma manada de elefantes passar por baixo da porta
Fazendo uma manada de elefantes passar por baixo da portaFazendo uma manada de elefantes passar por baixo da porta
Fazendo uma manada de elefantes passar por baixo da portaFabio Telles Rodriguez
 
Tutorial para criação de módulo no Xoops 2.4
Tutorial para criação de módulo no Xoops 2.4Tutorial para criação de módulo no Xoops 2.4
Tutorial para criação de módulo no Xoops 2.4Fabio Telles Rodriguez
 

Mais de Fabio Telles Rodriguez (20)

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

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!!!