PostgreSQL

A integração do PostgreSQL coleta métricas de uso do banco de dados, como o tamanho do banco de dados, o número de back-ends ou o número de operações. A integração também coleta registros do PostgreSQL e os analisa em um payload JSON. Esse resultado inclui campos para papel, usuário, nível e mensagem.

Para mais informações sobre o PostgreSQL, consulte a documentação do PostgreSQL.

Pré-requisitos

Para coletar a telemetria do PostgreSQL, instale o Agente de operações:

  • Para métricas, instale a versão 2.9.0 ou mais recente. Outras métricas foram adicionadas na versão 2.21.0.
  • Para registros, instale a versão 2.9.0 ou mais recente.

Essa integração é compatível com o PostgreSQL versão 10.18+.

Configurar a instância do PostgreSQL

Por padrão, o receptor postgresql se conecta a um servidor postgresql local usando um soquete Unix e a autenticação Unix como usuário root.

Configurar o agente de operações para PostgreSQL

Seguindo o guia para Configurar o Agente de operações, adicione os elementos necessários para coletar registros das instâncias do PostgreSQL e reinicie o agente.

Exemplo de configuração

Os comandos a seguir criam a configuração para coletar e ingerir telemetria para o PostgreSQL e reinicia o agente de operações.

# Configures Ops Agent to collect telemetry from the app and restart Ops Agent.

set -e

# Create a back up of the existing file so existing configurations are not lost.
sudo cp /etc/google-cloud-ops-agent/config.yaml /etc/google-cloud-ops-agent/config.yaml.bak

# Configure the Ops Agent.
sudo tee /etc/google-cloud-ops-agent/config.yaml > /dev/null << EOF
metrics:
  receivers:
    postgresql:
      type: postgresql
      username: postgres
      password: abc123
      insecure: true
      endpoint: localhost:5432
  service:
    pipelines:
      postgresql:
        receivers:
        - postgresql
logging:
  receivers:
    postgresql_general:
      type: postgresql_general
  service:
    pipelines:
      postgresql:
        receivers:
          - postgresql_general
EOF

sudo service google-cloud-ops-agent restart
sleep 60

Configurar a coleta de registros

Para ingerir registros do PostgreSQL, você precisa criar receptores para os registros que o PostgreSQL produz e, em seguida, criar um pipeline para os novos receptores.

postgresql_generalPara configurar um receptor para os registros , especifique os seguintes campos:

Campo Padrão Descrição
exclude_paths Uma lista de padrões de caminho do sistema de arquivos a serem excluídos do conjunto correspondente a include_paths.
include_paths [/var/log/postgresql/postgresql*.log, /var/lib/pgsql/data/log/postgresql*.log, /var/lib/pgsql/*/data/log/postgresql*.log] Uma lista de caminhos do sistema de arquivos a serem lidos acompanhando cada arquivo. Um caractere curinga (*) pode ser usado nos caminhos.
record_log_file_path false Se definido como true, o caminho para o arquivo específico de que a gravação de registro foi recebida aparecerá na entrada de registro de saída como o valor do identificador agent.googleapis.com/log_file_path. Ao usar um caractere curinga, apenas o caminho do arquivo de que o registro foi recebido é gravado.
type O valor precisa ser postgresql_general.
wildcard_refresh_interval 60s O intervalo em que os caminhos de arquivos curinga em include_paths são atualizados. Considerado uma duração analisável por time.ParseDuration, por exemplo, 30s ou 2m. Essa propriedade pode ser útil com capacidades de registro altas em que os arquivos de registro são alternados mais rapidamente do que o intervalo padrão.

O que é registrado

O logName é derivado dos IDs do receptor especificados na configuração. Os campos detalhados dentro de LogEntry são os seguintes.

Os registros postgresql_general contêm os seguintes campos no LogEntry:

Campo Tipo Descrição
jsonPayload.level string Gravidade de registro ou tipo de interação do banco de dados para alguns registros
jsonPayload.message string Registro da ação do banco de dados
jsonPayload.role string Papel autenticado para a ação que está sendo registrada quando relevante
jsonPayload.tid number ID da linha de execução em que o registro foi originado
jsonPayload.user string Usuário autenticado da ação que está sendo registrada quando relevante
severity string (LogSeverity) Nível de entrada de registro (traduzido).

Configurar a coleta de métricas

Para ingerir métricas do PostgreSQL, crie um receptor para as métricas produzidas pelo PostgreSQL e, em seguida, crie um pipeline para o novo receptor.

Esse receptor não aceita o uso de várias instâncias na configuração, por exemplo, para monitorar vários endpoints. Todas essas instâncias gravam na mesma série temporal, e o Cloud Monitoring não tem como diferenciá-las.

Para configurar um receptor para suas métricas do postgresql, especifique os campos a seguir:

Campo Padrão Descrição
ca_file Caminho para o certificado de CA. Como cliente, isso verifica o certificado do servidor. Se estiver vazio, o receptor usará a CA raiz do sistema.
cert_file Caminho para o certificado TLS a ser usado para conexões exigidas por mTLS.
collection_interval 60s Um valor de time.Duration, como 30s ou 5m.
endpoint /var/run/postgresql/.s.PGSQL.5432 O nome do host: porta ou caminho do soquete que começa com / usado para se conectar ao servidor postgresql.
insecure true Define se uma conexão TLS segura será ou não usada. Se definido como false, o TLS será ativado.
insecure_skip_verify false Define se é necessário pular a verificação do certificado. Se insecure for definido como true, o valor de insecure_skip_verify não será usado.
key_file Caminho para a chave TLS a ser usada para conexões exigidas por mTLS.
password A senha usada para se conectar ao servidor.
type Este valor precisa ser postgresql.
username O nome de usuário usado para se conectar ao servidor.

O que é monitorado?

A tabela a seguir fornece a lista de métricas que o agente de operações coleta da instância do PostgreSQL.

Tipo de métrica 
Tipo, tipo
Recursos monitorados
Rótulos
workload.googleapis.com/postgresql.backends
GAUGEINT64
gce_instance
database
workload.googleapis.com/postgresql.bgwriter.buffers.allocated
CUMULATIVEINT64
gce_instance
 
workload.googleapis.com/postgresql.bgwriter.buffers.writes
CUMULATIVEINT64
gce_instance
source
workload.googleapis.com/postgresql.bgwriter.checkpoint.count
CUMULATIVEINT64
gce_instance
type
workload.googleapis.com/postgresql.bgwriter.duration
CUMULATIVEINT64
gce_instance
type
workload.googleapis.com/postgresql.bgwriter.maxwritten
CUMULATIVEINT64
gce_instance
 
workload.googleapis.com/postgresql.blocks_read
CUMULATIVEINT64
gce_instance
database
table
source
workload.googleapis.com/postgresql.commits
CUMULATIVEINT64
gce_instance
database
workload.googleapis.com/postgresql.connection.max
GAUGEINT64
gce_instance
 
workload.googleapis.com/postgresql.database.count
GAUGEINT64
gce_instance
 
workload.googleapis.com/postgresql.db_size
GAUGEINT64
gce_instance
database
workload.googleapis.com/postgresql.index.scans
CUMULATIVEINT64
gce_instance
database
table
index
workload.googleapis.com/postgresql.index.size
GAUGEINT64
gce_instance
database
table
index
workload.googleapis.com/postgresql.operations
CUMULATIVEINT64
gce_instance
database
table
operation
workload.googleapis.com/postgresql.replication.data_delay
GAUGEINT64
gce_instance
replication_client
workload.googleapis.com/postgresql.rollbacks
CUMULATIVEINT64
gce_instance
database
workload.googleapis.com/postgresql.rows
GAUGEINT64
gce_instance
database
state
table
workload.googleapis.com/postgresql.table.count
GAUGEINT64
gce_instance
database
workload.googleapis.com/postgresql.table.size
GAUGEINT64
gce_instance
database
table
workload.googleapis.com/postgresql.table.vacuum.count
CUMULATIVEINT64
gce_instance
database
table
workload.googleapis.com/postgresql.wal.age
GAUGEINT64
gce_instance
 
workload.googleapis.com/postgresql.wal.lag
GAUGEINT64
gce_instance
operation
replication_client

Verificar a configuração

Nesta seção, descrevemos como verificar se você configurou corretamente o receptor do PostgreSQL. Pode levar um ou dois minutos para que o agente de operações comece a coletar telemetria.

Para verificar se os registros do PostgreSQL estão sendo enviados para o Cloud Logging, faça o seguinte:

  1. No painel de navegação do console do Google Cloud, selecione Logging e clique em Análise de registros:

    Acessar o Explorador de registros

  2. Insira a seguinte consulta no editor e clique em Executar consulta:
    resource.type="gce_instance"
    log_id("postgresql_general")
    

Para verificar se as métricas do PostgreSQL estão sendo enviadas para o Cloud Monitoring, faça o seguinte:

  1. No painel de navegação do console do Google Cloud, selecione Monitoramento e  Metrics Explorer:

    Acesse o Metrics explorer

  2. Na barra de ferramentas do painel do criador de consultas, selecione o botão com o nome  MQL ou  PromQL.
  3. Verifique se MQL está selecionado no botão de alternância Idioma. O botão de alternância está na mesma barra de ferramentas que permite formatar a consulta.
  4. Insira a seguinte consulta no editor e clique em Executar consulta:
    fetch gce_instance
    | metric 'workload.googleapis.com/postgresql.backends'
    | every 1m
    

Ver painel

Para visualizar as métricas do PostgreSQL, é necessário ter um gráfico ou um painel configurado. A integração do PostgreSQL inclui um ou mais painéis para você. Todos os painéis são instalados automaticamente depois que você configura a integração e o Agente de operações começa a coletar dados de métricas.

Também é possível ver visualizações estáticas de painéis sem instalar a integração.

Para ver um painel instalado, faça o seguinte:

  1. No painel de navegação do console do Google Cloud, selecione Monitoramento e  Painéis:

    Acessar Painéis

  2. Selecione a guia Lista de painéis e escolha a categoria Integrações.
  3. Clique no nome do painel que você quer visualizar.

Se você configurou uma integração, mas o painel não foi instalado, verifique se o agente de operações está em execução. Quando não há dados de métricas para um gráfico no painel, a instalação do painel falha. Depois que o Agente de operações começar a coletar métricas, o painel será instalado para você.

Para acessar uma visualização estática do painel, faça o seguinte:

  1. No painel de navegação do console do Google Cloud, selecione Monitoramento e  Integrações:

    Acessar Integrações

  2. Clique no filtro de plataforma de implantação do Compute Engine.
  3. Localize a entrada do PostgreSQL e clique em Ver detalhes.
  4. Selecione a guia Painéis para uma visualização estática. Se o painel estiver instalado, navegue até ele clicando em Ver painel.

Para mais informações sobre painéis no Cloud Monitoring, consulte Painéis e gráficos.

Para mais informações sobre como usar a página Integrações, consulte Gerenciar integrações.

Instalar políticas de alertas

As políticas de alertas orientam o Cloud Monitoring a notificar você quando ocorrerem condições especificadas. A integração do PostgreSQL inclui uma ou mais políticas de alertas para você usar. É possível ver e instalar essas políticas de alertas na página Integrações no Monitoring.

Para visualizar e descrever as descrições de políticas de alertas disponíveis, faça o seguinte:

  1. No painel de navegação do console do Google Cloud, selecione Monitoramento e  Integrações:

    Acessar Integrações

  2. Localize a entrada do PostgreSQL e clique em Ver detalhes.
  3. Selecione a guia Alertas. Essa guia apresenta descrições das políticas de alertas disponíveis e mostra uma interface para instalá-las.
  4. Instalar políticas de alertas. As políticas de alertas precisam saber para onde enviar as notificações de que o alerta foi acionado. Portanto, elas exigem informações para instalação. Para instalar políticas de alertas, faça o seguinte:
    1. Na lista de políticas de alertas disponíveis, selecione aquelas que você quer instalar.
    2. Na seção Configurar notificações, selecione um ou mais canais de notificação. Você pode desativar o uso dos canais de notificação, mas, se isso acontecer, as políticas de alertas vão ser disparadas silenciosamente. É possível verificar o status no Monitoring, mas não receber notificações.

      Para saber mais sobre canais de notificação, consulte Gerenciar canais de notificação.

    3. Clique em Criar políticas.

Para mais informações sobre políticas de alertas no Cloud Monitoring, consulte Introdução a alertas.

Para mais informações sobre como usar a página Integrações, consulte Gerenciar integrações.

A seguir

Para ver um tutorial sobre como usar o Ansible para instalar o agente de operações, configurar um aplicativo de terceiros e instalar um painel de amostra, consulte o vídeo Instalação do agente de operações para resolver problemas de aplicativos de terceiros.