Fala pessoal blza? Feliz 2018 pra vocês!
Começando o ano com um post de uma ferramenta bem bacana Open e Free, que gera relátorios com informações das mais variadas sobre o seu servidor Postgres, tais como:
- Estatisticas gerais do seu servidor
- As querys mais demoradas
- As querys mais frequentes
- As querys que geram mais Temp
- As querys mais lentas
- Utilização de disco/rede/CPU
- Os erros mais frequentes
- Locks
- Estatisticas de Autovaccum e autoanalyze
- Sessões por usuário/database/host
Entre outros vários reports legais que podem auxiliar muito na coleta de informações sobre o comportamento do seu banco e saber onde agir para uma correção ou melhoria.
Caso precise baixar a ferramenta ou obter informações sobre a mesma o site é esse abaixo aqui >> http://dalibo.github.io/pgbadger/ << mas a instalação chega a ser ridiculamente facil, eu por exemplo tenho um Debian 9 como estação e um simples apt-get resolveu, acredito que um yum install resolva tambem no caso de distribuições que rodam em RedHat.
Vou mostrar um passo a passo de como realizei no meu:
apt-get install pgbadger
Simples assim!
- Local: pgbadger /caminho/dos/logs/*.log
- Remoto:
- Depende da configuração de uma chave RSA ssh (no meu caso foi mais simples) podemos criar com o procedimento abaixo de SSH sem senha:
- ssh-keygen
- Precione enter somente concordando com tudo e não coloque um passphrase simplesmente conclua, ele vai criar um diretorio no home do seu usuário .ssh e dentro dela terão 2 arquivos de criptografia id_rsa (chave privada) e id_rsa.pub (chave publica).
- Vamos mandar a chave publica para o servidor destino com o comando: ssh-copy-id -i ~/.ssh/id_rsa [email protected]
- Com a chave de criptografia configurada podemos realizar um SSH sem senha com o servidor e podemos rodar o comando de geração do relatório abaixo:
pgbadger -f stderr -o nomedorelatorio.html -r [email protected] /caminho/do/pg_log/*.log
Feito isso o relatorio será gerado no local solicitado.
- -f – Formato da saída do log, que pode ser syslog, stderr e outras, depende do que está no postgresql.conf
- -o – output de onde vai ser gerado o relatório no formato html.
- -r – usuário e host do servidor remoto onde estou está o servidor que preciso rodar, ele usa o protocolo SSH para conexão.
- Log – o ultimo parâmetro é o caminho onde ficam os logs do postgres (pgdata/pg_log).
- log_min_duration_statement = 0
- log_line_prefix = ‘%t [%p]: [%l-1] db=%d,user= %u,app=%a,client=%h ‘
- log_checkpoints = on
- log_connections = on
- log_disconnections = on
- log_lock_waits = on
- log_temp_files = 0
- log_autovacuum_min_duration = 0
Exemplo do relatório:
Segue abaixo um link com o exemplo e alguns prints de como fica o relatório final:
http://dalibo.github.io/pgbadger/samplev7.html
Bom, então é isso, estou usando algumas outras ferramentas Postgres tambem e faço o post sobre elas logo mais se elas realmente prestarem rs.
Um abraço e é noixx!
Anselmo Borges