Puede instalar y configurar el monitoreo de PostgreSQL en Kubernetes usando el chart de Helm postgresql-otel. Opcionalmente, el chart también puede ejecutar un trabajo de configuración que crea el rol de monitoreo, sus permisos y la extensión pg_stat_statements.
Instalación guiada
Para instalar a través de la UI de New Relic en su lugar, vaya a one.newrelic.com > Integrations & Agents > PostgreSQL (Database 360). Esta página solo cubre la instalación manual.
Importante
El chart despliega el recolector como un despliegue de Kubernetes que se conecta a PostgreSQL de forma remota a través de la red, por lo que solo reporta métricas de PostgreSQL: sin métricas de host o infraestructura para la máquina en la que se ejecuta PostgreSQL. Monitorea una instancia de PostgreSQL por lanzamiento (se admiten múltiples bases de datos en esa instancia) y no configura TLS ni proveedores de credenciales de db_auth como la autenticación de IAM de AWS.
Requisitos previos a nivel de servidor
Se requiere PostgreSQL 14 o superior. Antes de instalar este chart (o habilitar el trabajo de configuración), los siguientes parámetros del servidor deben estar establecidos. No se puede crear pg_stat_statements sin shared_preload_libraries, y ese parámetro requiere un reinicio, por lo que nada que se ejecute dentro del clúster de Kubernetes puede hacerlo.
Parámetro | Valor |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
- Autohospedado: configure estos valores en
postgresql.confy luego reinicie PostgreSQL. Algunas distribuciones necesitan que el paquetepostgresql-contribesté instalado para quepg_stat_statementsesté disponible. - AWS RDS o Aurora: configúrelos en el grupo de parámetros de la base de datos, no en un archivo de configuración.
track_activity_query_sizeypg_stat_statements.maxson parámetros estáticos; aplíquelos conapply_method: pending-rebooty luego reinicie la instancia. Aplicarlos inmediatamente falla conInvalidParameterCombination. Para Aurora, el nombre de la familia del grupo de parámetros debe coincidir exactamente con la versión principal de su motor, por ejemploaurora-postgresql16.
Requisitos previos
Clave de licencia de New Relic válida.
Helm 3.0 o posterior, y
kubectlconfigurado para acceder al clúster de Kubernetes.Conectividad de red desde el clúster de Kubernetes al host de PostgreSQL (o extremo de RDS) y al puerto:
- Autohospedado: una ruta enrutada al host de PostgreSQL (VPN, emparejamiento o red compartida), resolución de DNS si es un nombre de host, y el
pg_hba.confdel lado de PostgreSQL y el firewall deben permitir la IP de origen real de la conexión (que puede ser una puerta de enlace NAT, no la IP del pod en sí). - AWS RDS: emparejamiento de VPC, una puerta de enlace de tránsito o ubicación de VPC compartida con la instancia de RDS, y el grupo de seguridad de RDS debe permitir el puerto de PostgreSQL (
5432por defecto) desde la fuente de salida del clúster.
- Autohospedado: una ruta enrutada al host de PostgreSQL (VPN, emparejamiento o red compartida), resolución de DNS si es un nombre de host, y el
Ya sea un rol de monitoreo que ya haya creado con sus permisos por base de datos, o credenciales de administrador de PostgreSQL para que el trabajo de configuración del chart pueda crearlos. Consulte Configurar las credenciales de monitoreo a continuación.
Cree el namespace
Cree el namespace en el que realizará la instalación. Debe existir antes de crear cualquier secreto en el siguiente paso, ya que helm install --create-namespace solo crea el namespace durante el paso de instalación final:
$kubectl create namespace newrelicSugerencia
Establézcalo como el namespace predeterminado para el contexto kubectl actual para que no necesite pasar -n en cada comando a continuación:
$kubectl config set-context --current --namespace=newrelicConfigurar las credenciales de monitoreo
Decida si desea que el trabajo de configuración del chart cree el rol de monitoreo de PostgreSQL y, de no ser así, cómo proporcionará sus credenciales:
Configurar los valores de Helm
Establezca postgresql.topology para que coincida con su entorno:
Valor | Descripción |
|---|---|
| PostgreSQL autohospedado, al que se accede a través de la red. |
| PostgreSQL o Aurora en AWS RDS. |
postgresql.databases es una lista obligatoria y no vacía. A diferencia de MySQL o SQL Server, PostgreSQL no tiene un modo de monitorear cada base de datos: una conexión tiene como objetivo una base de datos a la vez, por lo que se debe indicar al receptor cuáles extraer.
Utilice el values.yaml que coincida con el método de credenciales que eligió en el paso anterior:
Parámetro | Descripción |
|---|---|
| Su clave de licencia de New Relic. |
| El extremo OTLP/gRPC de la región, como un |
| El host de PostgreSQL (o extremo de RDS) y el puerto, accesibles desde el clúster. |
| Lista obligatoria y no vacía de bases de datos para monitorear. |
| Bases de datos excluidas de los escaneos de consultas principales y muestras de consultas a nivel de clúster. El valor predeterminado es |
| Una imagen compatible con |
| Opcional. También crea la función |
| Opcional. También crea la extensión |
Sugerencia
Por lo general, no es necesario configurar postgresql.topQueryCollection.explainFunctionName. El valor predeterminado del propio receptor ya es otel.explain_statement (la función exacta que crea setupJob.enableExplainPermissions), y el chart omite la clave cuando está vacía, por lo que ambos coinciden sin configuración adicional. Configúrelo solo para que el receptor apunte a una función con un nombre diferente.
Sugerencia
Consulte el archivo values.yaml del chart para ver todas las opciones de configuración disponibles, incluidos postgresql.collectionInterval, los interruptores metrics, los bloques topQueryCollection/querySampleCollection y la vía de escape additionalReceiverConfig.
(Opcional) Monitorear múltiples instancias desde un release
En lugar de postgresql.*, configure postgresqlMulti.enabled: true para monitorear varias instancias de PostgreSQL (autohospedadas o RDS) desde un único pod recolector en una versión. Los dos modos son mutuamente excluyentes: no configure postgresql.server y postgresqlMulti.enabled: true en la misma versión.
Las entradas se llaman instances, no databases: cada instancia es un servidor de PostgreSQL independiente y cada una contiene su propia lista anidada de databases (las bases de datos individuales para monitorear en esa instancia), de la misma manera que postgresql.databases funciona en el modo de instancia única.
El modo multiinstancia no tiene una ruta de nombre de usuario/contraseña en texto plano: cada instancia necesita su propio secreto de Kubernetes con credenciales de monitoreo. Decida si también desea que el trabajo de configuración le cree cada rol de monitoreo:
Parámetro | Descripción |
|---|---|
| Establezca en |
|
|
| Lista de instancias a monitorear. Cada entrada requiere un |
Sugerencia
setupJob.enableExplainPermissions y setupJob.enablePgvector son opciones únicas compartidas en cada base de datos de cada instancia; no se pueden configurar por instancia. La configuración de extracción (intervalo de recopilación, métricas, topQueryCollection/querySampleCollection) también se aplica de manera idéntica a cada instancia en postgresqlMulti.instances; no hay anulación por instancia. Utilice additionalReceiverConfig para cualquier elemento que deba ser diferente. El trabajo de configuración se ejecuta una vez por instancia (<release>-setup-<name>) en lugar de una vez por versión.
Instale el chart de Helm
Agregue el repositorio Helm de New Relic:
bash$helm repo add newrelic https://helm-charts.newrelic.com$helm repo updateInstale el chart utilizando su archivo
values.yaml:bash$helm upgrade --install postgresql-otel newrelic/postgresql-otel \>-n newrelic \>--create-namespace \>-f values.yaml
Verifique la instalación
Compruebe que el trabajo de configuración se haya completado (si está habilitado) y que el pod del recolector se esté ejecutando:
bash$kubectl get jobs,pods -n newrelic --watchEjecute esta consulta en el generador de consultas para confirmar que los datos están llegando:
SELECT count(*) FROM MetricWHERE metricName LIKE 'postgresql.%'AND instrumentation.provider = 'opentelemetry'SINCE 10 minutes ago
Encuentra y utiliza tus datos
Una vez que sus datos se estén recopilando, puede acceder al monitoreo integral de bases de datos PostgreSQL a través de la UI de New Relic.
Para encontrar su entidad de base de datos PostgreSQL en New Relic:
- Vaya a one.newrelic.com > All capabilities > Databases.
- En el menú desplegable Entity type, seleccione PostgreSQL instance y luego haga clic en Apply.
- Seleccione su base de datos PostgreSQL de la lista de entidades.
Documentación relacionada
Introducción al monitoreo de PostgreSQL con NRDOT
Conozca todos los métodos de instalación disponibles para el monitoreo de PostgreSQL con New Relic.
Instalación de la CLI
Aprenda a instalar y configurar el monitoreo de PostgreSQL con un solo comando de la CLI de New Relic.
Instalación con Ansible
Aprenda a instalar y configurar el monitoreo de PostgreSQL a escala con el newrelic.newrelic_install rol de Ansible.
Instalación con Chef
Aprenda a instalar y configurar el monitoreo de PostgreSQL a escala con el libro de recetas de Chef newrelic-install.