Slide 1

Slide 1 text

Trabalhando com logs no PostgreSQL F´ abio Telles Rodriguez Timbira - A empresa brasileira de PostgreSQL 18 de setembro de 2015 FTSL2015

Slide 2

Slide 2 text

Apresenta¸ c˜ ao F´ abio Telles Rodrigues DBA Oracle e PostgreSQL +10 anos Colaborador Comunidade Brasileira de PostgreSQL Blog: http://savepoint.blog.br @telles

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

Sobre o que estamos falando?

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

Mantra O que os olhos n˜ ao vˆ eem o DBA n˜ ao sente

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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.

Slide 10

Slide 10 text

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)

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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’;

Slide 15

Slide 15 text

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’;

Slide 16

Slide 16 text

Ferramentas externas grep, regex, sed, awk, etc; pgBadger; pgFouine (descontinuado); auto explain; Elasticsearch

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

Perguntas ? F´ abio 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