L'integrazione PostgreSQL raccoglie le metriche di utilizzo del database, ad esempio le dimensioni del database, il numero di backend o il numero di operazioni. L'integrazione raccoglie anche i log PostgreSQL e li analizza in un payload JSON. Questo risultato include campi per ruolo, utente, livello e messaggio.
Per ulteriori informazioni su PostgreSQL, consulta postgresql.org.
Prerequisiti
Per raccogliere e importare log e metriche PostgreSQL, devi installare l'agente operativo versione 2.9.0 o successive.
Questo ricevitore supporta PostgreSQL 10.18 e versioni successive.
Configura la tua istanza PostgreSQL
Il destinatario postgresql
si connette per impostazione predefinita a un server postgresql
locale utilizzando un socket Unix e l'autenticazione Unix come utente root
.
Configurazione dell'agente operativo per PostgreSQL
Segui la guida per configurare l'agente operativo, aggiungi gli elementi necessari per raccogliere log e metriche dalle istanze PostgreSQL e riavvia l'agente.
Configurazione di esempio
Il comando seguente crea il file di configurazione per raccogliere e importare log e metriche per PostgreSQL e riavvia l'agente operativo su Linux.
sudo tee /etc/google-cloud-ops-agent/config.yaml > /dev/null << EOF
logging:
receivers:
postgresql_general:
type: postgresql_general
service:
pipelines:
postgresql:
receivers:
- postgresql_general
metrics:
receivers:
postgresql:
type: postgresql
collection_interval: 60s
username: usr
password: pwd
service:
pipelines:
postgresql_pipeline:
receivers:
- postgresql
EOF
sudo service google-cloud-ops-agent restart
Configura la raccolta dei log
Per importare i log da PostgreSQL, devi creare dei destinatari per i log prodotti da PostgreSQL, quindi creare una pipeline per i nuovi destinatari.
Per configurare un ricevitore per i log postgresql_general
, specifica i seguenti campi:
Campo | predefinita | Descrizione |
---|---|---|
type |
Il valore deve essere postgresql_general . |
|
include_paths |
[/var/log/postgresql/postgresql*.log, /var/lib/pgsql/data/log/postgresql*.log, /var/lib/pgsql/*/data/log/postgresql*.log] |
I file di log da leggere. |
exclude_paths |
I file di log da escludere, se include_paths contiene un glob o una directory. |
Che cosa viene registrato
I logName
dei log postgresql_general
sono ricavati dagli ID destinatario specificati nella configurazione. Di seguito sono riportati i campi dettagliati all'interno di LogEntry
.
postgresql_general
Questi log contengono i seguenti campi in
LogEntry
:
Campo | Tipo | Descrizione |
---|---|---|
jsonPayload.tid |
number | ID thread da cui ha origine il log |
jsonPayload.role |
string | Ruolo autenticato per l'azione registrata, quando pertinente |
jsonPayload.user |
string | Utente autenticato per l'azione registrata, quando pertinente |
jsonPayload.level |
string | Gravità del log o tipo di interazione di database per alcuni log |
jsonPayload.message |
string | Log dell'azione del database |
severity |
stringa (LogSeverity ) |
Livello di voce di log (tradotto) |
timestamp |
stringa (Timestamp ) |
L'ora in cui la voce è stata registrata |
Configurazione della raccolta di metriche
Per raccogliere metriche da PostgreSQL, devi creare un ricevitore per le metriche PostgreSQL e quindi creare una pipeline per il nuovo destinatario. Per configurare un ricevitore per le metriche PostgreSQL, specifica i seguenti campi:
Campo | predefinita | Descrizione |
---|---|---|
type |
Il valore deve essere postgresql . |
|
endpoint |
/var/run/postgresql/.s.PGSQL.5432 |
Il nome host:porta o socket che inizia con / utilizzato per la connessione al server postgresql . |
collection_interval |
60s |
Un valore time.Duration, ad esempio 30s o 5m . |
username |
Il nome utente utilizzato per la connessione al server. | |
password |
La password utilizzata per la connessione al server. | |
insecure |
true |
Consente di stabilire se utilizzare o meno una connessione TLS sicura. Se questo criterio viene impostato su false , TLS viene attivato. |
insecure_skip_verify |
false |
Consente di scegliere se saltare o meno la verifica del certificato. Se insecure è impostato su true , il valore di insecure_skip_verify non viene utilizzato. |
cert_file |
Percorso del certificato TLS da utilizzare per le connessioni TLS richieste. | |
key_file |
Percorso della chiave TLS da utilizzare per le connessioni TLS richieste. | |
ca_file |
Percorso del certificato CA. In qualità di client, verifica il certificato del server. Se vuoto, il destinatario utilizza la CA radice del sistema. |
Che cosa viene monitorato
La seguente tabella fornisce l'elenco delle metriche che l'agente operativo raccoglie dall'istanza PostgreSQL.
Tipo di metrica | |
---|---|
Tipo, tipo Risorse monitorate |
Etichette |
workload.googleapis.com/postgresql.backends
|
|
GAUGE , INT64 gce_instance |
database
|
workload.googleapis.com/postgresql.commits
|
|
CUMULATIVE , INT64 gce_instance |
database
|
workload.googleapis.com/postgresql.db_size
|
|
GAUGE , INT64 gce_instance |
database
|
workload.googleapis.com/postgresql.rollbacks
|
|
CUMULATIVE , INT64 gce_instance |
database
|
Verificare la configurazione
Puoi utilizzare Esplora log e Esplora metriche per verificare di aver configurato correttamente il ricevitore PostgreSQL. L'avvio della raccolta di log e metriche da parte dell'agente operativo potrebbe richiedere uno o due minuti.
Per verificare l'importazione dei log, vai a Esplora log ed esegui la query seguente per visualizzare i log PostgreSQL:
resource.type="gce_instance"
logName=("projects/PROJECT_ID/logs/postgresql_general")
Per verificare l'importazione delle metriche, accedi a
Metrics Explorer
ed esegui la query seguente nella scheda MQL.
fetch gce_instance
| metric 'workload.googleapis.com/postgresql.operations'
| align rate(1m)
| every 1m