• /
  • EnglishEspañolFrançais日本語한국어Português
  • Inicia sesiónComenzar ahora

Te ofrecemos esta traducción automática para facilitar la lectura.

En caso de que haya discrepancias entre la versión en inglés y la versión traducida, se entiende que prevalece la versión en inglés. Visita esta página para obtener más información.

Crea una propuesta

Instalar y configurar NRDOT para el monitoreo de MySQL con Docker

|View as Markdown (English)

Configure el monitoreo de MySQL usando el NRDOT Collector como un contenedor hermano de una instancia de MySQL que ya se está ejecutando en Docker.

Sugerencia

¿Desea automatizar esto a escala o ejecutarlo en Kubernetes en su lugar? Consulte la instalación con Ansible, la instalación con Chef o la instalación con chart de Helm.

Requisitos previos

Antes de instalar, asegúrese de tener:

Configurar el usuario de la base de datos

Cree un usuario de monitoreo con los privilegios necesarios ejecutando SQL en su contenedor MySQL con docker exec. Reemplace <YOUR_MYSQL_CONTAINER_NAME>, <YOUR_MYSQL_ROOT_PASSWORD>, <YOUR_DB_USERNAME> y <YOUR_DB_PASSWORD> con sus propios valores.

  • Para crear un usuario de monitoreo con los privilegios mínimos necesarios para la recopilación de métricas, ejecute:

    bash
    $
    docker exec -i <YOUR_MYSQL_CONTAINER_NAME> mysql -u root -p'<YOUR_MYSQL_ROOT_PASSWORD>' -e "CREATE USER '<YOUR_DB_USERNAME>'@'%' IDENTIFIED BY '<YOUR_DB_PASSWORD>'; GRANT SELECT ON performance_schema.* TO '<YOUR_DB_USERNAME>'@'%'; FLUSH PRIVILEGES;"
  • Para recopilar también muestras de consultas y las consultas principales, otorgue el conjunto completo de privilegios en su lugar:

    bash
    $
    docker exec -i <YOUR_MYSQL_CONTAINER_NAME> mysql -u root -p'<YOUR_MYSQL_ROOT_PASSWORD>' -e "CREATE USER '<YOUR_DB_USERNAME>'@'%' IDENTIFIED BY '<YOUR_DB_PASSWORD>'; GRANT SELECT, PROCESS, REPLICATION CLIENT ON *.* TO '<YOUR_DB_USERNAME>'@'%'; GRANT SELECT ON performance_schema.* TO '<YOUR_DB_USERNAME>'@'%'; FLUSH PRIVILEGES;"
  • (Opcional) Para ver los datos de tiempo de espera en la plataforma de New Relic, otorgue el siguiente privilegio al usuario de monitoreo:

    bash
    $
    docker exec -i <YOUR_MYSQL_CONTAINER_NAME> mysql -u root -p'<YOUR_MYSQL_ROOT_PASSWORD>' -e "GRANT UPDATE ON performance_schema.setup_consumers TO '<YOUR_DB_USERNAME>'@'%'; FLUSH PRIVILEGES;"
  • (Opcional) Para verificar la conexión y los permisos, ejecute:

    bash
    $
    docker exec -i <YOUR_MYSQL_CONTAINER_NAME> mysql -u '<YOUR_DB_USERNAME>' -p'<YOUR_DB_PASSWORD>' -e "SELECT 1;"

    Si el comando se completa sin errores, el usuario de monitoreo y la contraseña son correctos.

Crear la configuración del Collector NRDOT

Esta configuración se centra en el monitoreo esencial de MySQL con el receptor nrmysql. Ejecute lo siguiente en el host de Docker para generar mysql-config.yaml en el directorio actual:

bash
$
cat << 'EOF' > mysql-config.yaml
$
receivers:
$
nrmysql:
$
endpoint: "<YOUR_MYSQL_CONTAINER_NAME>:3306"
$
transport: tcp
$
username: "<YOUR_DB_USERNAME>"
$
password: "<YOUR_DB_PASSWORD>"
$
allow_native_passwords: true
$
collection_interval: 15s
$
initial_delay: 1s
$
explain_mode: procedure
$
statement_events:
$
digest_text_limit: 4096
$
time_limit: 24h
$
limit: 500
$
query_sample_collection:
$
max_rows_per_query: 100
$
allowed_comment_keys: [nr_service_guid]
$
top_query_collection:
$
lookback_time: 60
$
max_query_sample_count: 5000
$
top_query_count: 200
$
collection_interval: 60s
$
query_plan_cache_size: 1000
$
query_plan_cache_ttl: 1h
$
allowed_comment_keys: [nr_service_guid]
$
events:
$
db.server.query_sample:
$
enabled: true
$
db.server.top_query:
$
enabled: true
$
db.server.query_plan:
$
enabled: true
$
resource_attributes:
$
db.system.version:
$
enabled: true
$
metrics:
$
mysql.query.count:
$
enabled: true
$
mysql.query.slow.count:
$
enabled: true
$
mysql.commands:
$
enabled: true
$
mysql.innodb.data_file.io:
$
enabled: true
$
$
processors:
$
batch:
$
$
exporters:
$
otlp/newrelic:
$
endpoint: "<YOUR_NEWRELIC_OTLP_ENDPOINT>"
$
headers:
$
api-key: "<YOUR_NEWRELIC_LICENSE_KEY>"
$
compression: gzip
$
retry_on_failure:
$
enabled: true
$
initial_interval: 5s
$
max_interval: 30s
$
max_elapsed_time: 300s
$
$
service:
$
pipelines:
$
metrics:
$
receivers: [nrmysql]
$
processors: [batch]
$
exporters: [otlp/newrelic]
$
logs:
$
receivers: [nrmysql]
$
processors: [batch]
$
exporters: [otlp/newrelic]
$
EOF

Parámetro de configuración

ParámetroDescripción
<YOUR_MYSQL_CONTAINER_NAME>El nombre (o nombre de host de Docker que se puede resolver por DNS) del contenedor de MySQL en ejecución.
<YOUR_DB_USERNAME>El usuario de monitoreo que creó en Configurar usuario de base de datos.
<YOUR_DB_PASSWORD>La contraseña del usuario de monitoreo que creó en Configurar usuario de base de datos.
<YOUR_NEWRELIC_OTLP_ENDPOINT>El extremo OTLP de New Relic. Para obtener más información, consulte Extremos OTLP de New Relic.
<YOUR_NEWRELIC_LICENSE_KEY>Su clave de licencia de New Relic.

Iniciar el contenedor del NRDOT Collector

Ejecute el recolector en la misma red de Docker que el contenedor de MySQL para que pueda resolver <YOUR_MYSQL_CONTAINER_NAME> por el nombre del contenedor:

bash
$
docker run -d \
>
--name nrdot-collector \
>
--network <YOUR_DOCKER_NETWORK> \
>
-v "$PWD/mysql-config.yaml:/etc/nrdot-collector/mysql-config.yaml" \
>
newrelic/nrdot-collector:latest \
>
--config /etc/nrdot-collector/mysql-config.yaml

Sugerencia

Encuentre la red del contenedor de MySQL con docker inspect <YOUR_MYSQL_CONTAINER_NAME> --format '{{json .NetworkSettings.Networks}}'. Si aún no está en una red compartida definida por el usuario, cree una y conecte ambos contenedores a ella:

bash
$
docker network create <YOUR_DOCKER_NETWORK>
$
docker network connect <YOUR_DOCKER_NETWORK> <YOUR_MYSQL_CONTAINER_NAME>

Confirme que el contenedor del recolector se esté ejecutando:

bash
$
docker ps --filter name=nrdot-collector

Si no se está ejecutando, revise los registros en busca de errores. Las causas más comunes son problemas de indentación de YAML en mysql-config.yaml o un contenedor de MySQL inalcanzable:

bash
$
docker logs nrdot-collector

Sugerencia

Después de cambiar mysql-config.yaml, reinicie el contenedor para aplicar los cambios:

bash
$
docker restart nrdot-collector

Encuentra y utiliza tus datos

Una vez que sus datos se estén recopilando, puede acceder al monitoreo integral de bases de datos MySQL a través de la UI de New Relic.

Para encontrar su entidad de base de datos MySQL en New Relic:

  1. Vaya a one.newrelic.com > All capabilities > Databases.

  2. En el menú desplegable Entity type, seleccione MySQL instance y luego haga clic en Apply.

  3. Seleccione su base de datos MySQL de la lista de entidades.

    Para confirmar que los datos están llegando, ejecute esta consulta en el generador de consultas:

    SELECT count(*) FROM Metric
    WHERE metricName LIKE 'mysql.%'
    AND instrumentation.provider = 'opentelemetry'
    SINCE 10 minutes ago

Introducción al monitoreo de MySQL con NRDOT

Conozca todos los métodos de instalación disponibles para el monitoreo de MySQL con New Relic.

Instalación autohospedada

Aprenda a configurar el monitoreo de MySQL en servidores físicos, máquinas virtuales e instalaciones independientes.

Instalación con Ansible

Aprenda a instalar y configurar el monitoreo de MySQL a escala con newrelic.newrelic_install rol de Ansible.

Instalación con Chef

Aprenda a instalar y configurar el monitoreo de MySQL a escala con el cookbook de Chef newrelic-install.

Instalación del chart de Helm

Aprenda a instalar y configurar el monitoreo de MySQL en Kubernetes con el chart de Helm mysql-otel.

Copyright © 2026 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.