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.
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_general
Para 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, é preciso criar receptores para as métricas produzidas pelo PostgreSQL e, em seguida, criar um pipeline para os novos receptores.
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
|
|
GAUGE , INT64 gce_instance |
database
|
workload.googleapis.com/postgresql.bgwriter.buffers.allocated
|
|
CUMULATIVE , INT64 gce_instance |
|
workload.googleapis.com/postgresql.bgwriter.buffers.writes
|
|
CUMULATIVE , INT64 gce_instance |
source
|
workload.googleapis.com/postgresql.bgwriter.checkpoint.count
|
|
CUMULATIVE , INT64 gce_instance |
type
|
workload.googleapis.com/postgresql.bgwriter.duration
|
|
CUMULATIVE , INT64 gce_instance |
type
|
workload.googleapis.com/postgresql.bgwriter.maxwritten
|
|
CUMULATIVE , INT64 gce_instance |
|
workload.googleapis.com/postgresql.blocks_read
|
|
CUMULATIVE , INT64 gce_instance |
database table source
|
workload.googleapis.com/postgresql.commits
|
|
CUMULATIVE , INT64 gce_instance |
database
|
workload.googleapis.com/postgresql.connection.max
|
|
GAUGE , INT64 gce_instance |
|
workload.googleapis.com/postgresql.database.count
|
|
GAUGE , INT64 gce_instance |
|
workload.googleapis.com/postgresql.db_size
|
|
GAUGE , INT64 gce_instance |
database
|
workload.googleapis.com/postgresql.index.scans
|
|
CUMULATIVE , INT64 gce_instance |
database table index
|
workload.googleapis.com/postgresql.index.size
|
|
GAUGE , INT64 gce_instance |
database table index
|
workload.googleapis.com/postgresql.operations
|
|
CUMULATIVE , INT64 gce_instance |
database table operation
|
workload.googleapis.com/postgresql.replication.data_delay
|
|
GAUGE , INT64 gce_instance |
replication_client
|
workload.googleapis.com/postgresql.rollbacks
|
|
CUMULATIVE , INT64 gce_instance |
database
|
workload.googleapis.com/postgresql.rows
|
|
GAUGE , INT64 gce_instance |
database state table
|
workload.googleapis.com/postgresql.table.count
|
|
GAUGE , INT64 gce_instance |
database
|
workload.googleapis.com/postgresql.table.size
|
|
GAUGE , INT64 gce_instance |
database table
|
workload.googleapis.com/postgresql.table.vacuum.count
|
|
CUMULATIVE , INT64 gce_instance |
database table
|
workload.googleapis.com/postgresql.wal.age
|
|
GAUGE , INT64 gce_instance |
|
workload.googleapis.com/postgresql.wal.lag
|
|
GAUGE , INT64 gce_instance |
operation replication_client
|
Amostra de painel
Para visualizar as métricas do PostgreSQL, é necessário ter um gráfico ou um painel configurado. O Cloud Monitoring disponibiliza uma biblioteca de painéis de amostra para integrações, que contêm gráficos pré-configurados. Para informações sobre a instalação desses painéis, consulte Como instalar painéis de amostra.
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 são ingeridos, acesse o Explorador de registros e execute a seguinte consulta para ver os registros do PostgreSQL:
resource.type="gce_instance"
log_id("postgresql_general")
Para verificar se as métricas são ingeridas, acesse o Metrics Explorer e execute a seguinte consulta na guia MQL:
fetch gce_instance
| metric 'workload.googleapis.com/postgresql.backends'
| every 1m
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.