Trabalhando com Logs no PostgreSQL
Click here to load reader
-
Upload
fabio-telles-rodriguez -
Category
Technology
-
view
606 -
download
0
Transcript of Trabalhando com Logs no PostgreSQL
Trabalhando com logs no PostgreSQL
Fabio Telles Rodriguez
Timbira - A empresa brasileira de PostgreSQL
18 de setembro de 2015
FTSL2015
Apresentacao
Fabio Telles Rodrigues
I DBA Oracle e PostgreSQL +10 anos
I Colaborador Comunidade Brasileira de PostgreSQL
I Blog: http://savepoint.blog.br
I @telles
Timbira
I http://www.timbira.com.br
I A empresa Brasileira de PostgreSQL
I Consultoria / Desenvolvimento
I Planos de Suporte
I Parcerias com Empresas Desenvolvedoras de Software
I Treinamentos In-Company e On-Line
I Correcao de bugs no PostgreSQL garantida em contrato
Sobre esta apresentacao
I esta apresentacao esta disponıvel em:http://www.timbira.com.br/material
I esta apresentacao esta sob licenca Creative CommonsAtribuicao 3.0 Brasil :http://creativecommons.org/licenses/by/3.0/br
Sobre o que estamos falando?
Sobre o que estamos falando?
Visao sobre o passado:
I Erros de configuracao;
I Erros na aplicacao;
I Volume de conexoes;
I Tempos de execucao;
I Locks, deadlocks, temp buffers
Mantra
O que os olhos nao veem o DBA naosente
Onde logar
I log destination: (stderr, csvlog, syslog e se estiver utilizandoo Windows, eventlog)
I logging collector: Ligue e seja feliz
I log directory: pg log (voce pode utilizar um ponto demontagem so para os logs tambem)
I log filename: use’postgresql-%Y-%m-%d%H%M%S .log ′ou′postgresql − %d .log ′
Onde logar
I log file mode: Tire a mao daı.
I log rotation age: ’1d’
I log rotation size: 10MB a 1GB
I log truncate on rotation: use em sistemas embarcados pararotacionar os logs.
Quando logar
I client min messages, log min messages elog min error statement: DEBUG5, DEBUG4, DEBUG3,DEBUG2, DEBUG1, INFO, NOTICE, WARNING, ERROR,LOG, FATAL e PANIC
I log min duration statement: gatilho para logar comandos comvalores maiores sejam logados (em ms)
O que logar
I application name: Nao mexa, mas saiba usar na sua aplicacao(SET application name = ’meu app’;)
I debug print parse, debug print rewritten, debug print plan,debug pretty print: nao mexa.
I log checkpoints: ligue (porque eu estou mandando! Serio, naocusta nada)
I log connections e log disconnections: use com parcimonia
I log duration: ha quem use. Casos bem especıficos. Naosubstitui o log min duration
O que logar
I log error verbosity: Em geral, nao mexa.
I log hostname: So ative se confiar muito no seu DNS. Podegerar um pouco de overhead.
I log line prefix: ”%t [%p]: [%l] db=%d,user=%u ‘. Muitasopcoes legais. Vale a pena conhecer.
I log lock waits: Ligue e entenda.
I log statement: DDL, MOD (DDL + DML), ALL (tudo) ounone (nada).
I log temp files: Util para ajustar parametros de memoria.Coloque em zero para ver o que acontece de verdade.
I log timezone: Espero que voce nao tenha que mexer nisso...
GUCs ou Grand Unified Configuration
I Alguns parametros podem ser alterados em diferentescontextos, como INTERNAL, POSTMASTER, SIGHUP,BACKEND, SUPERUSER e USER
I Verificar no catalogo em pg settings;
I Utilizar o pg reload conf() para parametros alterados nopostgresql.conf
I Utilizar o pg rotate logfile() para rotacionar os logs
GUCs ou Grand Unified Configuration
I SELECT pg rotate logfile(), pg reload conf();
I ALTER SYSTEM SET log min messages = ’INFO’;
I ALTER DATABASE teste SET log min messages =’NOTICE’;
I ALTER ROLE abizi SET log min messages = ’DEBUG1’;
I SET log min messages = ’PANIC’;
Usando o application name
I SET application name = ’financeiro’;
I SET application name = ’APP=financeiro — SCR=cadastro’;
I SET application name = ’APP=financeiro — SCR=cadastro— USER=telles’;
I SET application name = ’APP=financeiro — SCR=cadastro— USER=telles — HOST=m129’;
Ferramentas externas
I grep, regex, sed, awk, etc;
I pgBadger;
I pgFouine (descontinuado);
I auto explain;
I Elasticsearch
Para os DBAs...
I Durma bem antes de um novo deploy. Tire uns dias de folga;
I Nao deixe de tomar cerveja com os amigos...
I Pratique exercıcios fısicos regularmente!!!
Perguntas
?Fabio Telles Rodriguez([email protected])
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