Cuando sus gestores de colas de IBM MQ se ejecutan como pods en Kubernetes, necesita una solución de monitoreo que pueda descubrirlos y rastrearlos automáticamente a medida que su clúster escala. Esta guía le muestra cómo desplegar un recolector que encuentra sus gestores de colas automáticamente y envía sus métricas a New Relic sin ningún cambio de configuración manual.
Puede usar la distribución de OpenTelemetry de New Relic (NRDOT) o el OpenTelemetry Collector Contrib — ambos usan la misma configuración y enfoque de descubrimiento automático. El recolector descubre los pods del gestor de colas mediante anotaciones, recopila sus métricas y envía datos organizados a New Relic, donde aparecen como entidades IBMMQ_MANAGER y IBMMQ_QUEUE con dashboards listos para usar. Cuando agrega nuevos gestores de colas, el recolector los encuentra automáticamente — no se necesitan actualizaciones de configuración.
Sugerencia
Si, en cambio, sus administradores de colas se ejecutan en hosts tradicionales, consulte Monitorear IBM MQ autohospedado.
Antes de que empieces
Necesitará estos componentes antes de configurar el recolector:
- Cuenta de New Relic con una clave de licenciaválida
- Extremo OTLP de New Relic para su región
- Clúster de Kubernetes con acceso
kubectly Helm instalado - Pod del administrador de colas de IBM MQ en ejecución con sidecars de exportador mq-metric-samples que exponen métricas en el puerto
9157 - Pods del gestor de colas anotados con las anotaciones de Prometheus requeridas
Sugerencia
Recomendamos habilitar las estadísticas de MQI en sus gestores de colas mediante ALTER QMGR STATMQI(ON) STATQ(ON) para obtener mejores métricas de rendimiento.
Configurar el monitoreo de IBM MQ
Siga estos pasos para desplegar el recolector y comenzar a enviar métricas de IBM MQ a New Relic:
Crear secreto de credenciales de New Relic
Crea un secreto de Kubernetes para almacenar tus credenciales de New Relic de forma segura. El recolector lee estos valores en tiempo de ejecución, manteniendo la información confidencial fuera de los archivos de configuración.
Asegúrese de que el namespace
ibmmqexista:bash$kubectl get namespace ibmmq >/dev/null 2>&1 || kubectl create namespace ibmmqCrea el secreto de credenciales, reemplazando
<YOUR_LICENSE_KEY>con tu clave de licencia real:bash$kubectl create secret generic newrelic-otlp-secret \>--namespace ibmmq \>--from-literal=NEW_RELIC_LICENSE_KEY="<YOUR_LICENSE_KEY>" \>--from-literal=NEW_RELIC_OTLP_ENDPOINT="https://otlp.nr-data.net:4318" \>--dry-run=client -o yaml | kubectl apply -f -Para las cuentas de la UE, utilice
https://otlp.eu01.nr-data.net:4318como el valor del extremo.
Configura los valores de Helm del recolector
Cree un archivo values.yaml local con la configuración del recolector. Este archivo contiene todos los ajustes necesarios para desplegar el recolector mediante el chart de Helm de OpenTelemetry.
Advertencia
No cambie TARGET_NAME después del despliegue inicial. Este valor forma el primer segmento de cada GUID de entidad IBMMQ_MANAGER y IBMMQ_QUEUE. Cambiarlo crea nuevas entidades y deja huérfanas las existentes, rompiendo dashboards y alertas.
Qué hace esta configuración
Esta configuración crea un pipeline de autodescubrimiento que encuentra los pods del administrador de colas de IBM MQ y envía sus métricas a New Relic. El pipeline de procesamiento es idéntico a la configuración del host, pero utiliza el autodescubrimiento de pods en lugar de objetivos estáticos:
| Sección | Rol |
|---|---|
prometheus/ibmmq receptor | Descubre automáticamente los pod del gestor de colas en el namespace ibmmq que tienen las anotaciones requeridas. Se conecta al extremo de métrica de cada pod y recopila datos de IBM MQ cada 60 segundos. |
filter/ibmmq-overhead | Elimina las métricas internas del exportador (como go_* y process_*) que no contienen datos de IBM MQ, lo que optimiza los costos de ingesta de datos. |
filter/ibmmq-queues | Excluye las colas internas del sistema IBM MQ (SYSTEM.* y AMQ.*) para que solo las colas de la aplicación se conviertan en entidades en New Relic. |
transform/ibmmq-cleanup | Componente crítico que mapea las métricas a las entidades de IBM MQ correspondientes en New Relic. Sin esto, los datos aparecen como métricas de recolector genéricas en lugar de entidades IBMMQ_MANAGER y IBMMQ_QUEUE con dashboards y alertas. |
memory_limiter/ibmmq | Limita el uso de memoria a 400 MB (por debajo del límite de 512 Mi del contenedor) para evitar que Kubernetes elimine el pod del recolector. |
batch/ibmmq | Agrupa las métricas antes de la transmisión para reducir la sobrecarga de la red empaquetando hasta 1000 puntos de datos por solicitud. |
otlphttp/ibmmq exportador | Exporta las métricas procesadas a New Relic usando su clave de licencia para la autenticación y el extremo regional configurado. |
Configuraciones importantes de Kubernetes:
| Configuración | Por qué es necesario |
|---|---|
replicaCount: 1 | Con kubernetes_sd y sin TargetAllocator, cada réplica extrae cada objetivo, por lo que más de una réplica cuenta dos veces (y factura dos veces) las métricas. Para HA, fragmenta los objetivos con el TargetAllocator de OpenTelemetry. |
mode: deployment (no daemonset) | Un DaemonSet ejecuta kubernetes_sd en cada nodo y produce N copias de cada métrica para un clúster de N nodos. |
clusterRole.create: true | kubernetes_sd necesita get/list/watch en los pods; sin esto, la API devuelve 403 Forbidden y el receptor descubre cero objetivos (el recolector se inicia pero no emite nada). |
service.enabled: false | Este recolector no tiene receptores entrantes, por lo que, de lo contrario, el chart intentaría crear un Service de puerto cero y fallaría durante la instalación. La autotelemetría en :8888 todavía es accesible a través de kubectl port-forward. |
replacement: $$1:$$2 (regla de reetiquetado 4) | El $$ escapa la expansión de la variable de entorno ${...} del cargador de configuración de OTel para que el motor de Prometheus reciba la sintaxis literal del grupo de captura $1:$2. Un solo $1:$2 se consumiría como una variable de entorno vacía y rompería la construcción de la dirección. |
image.tag: "latest" | Bueno para pruebas; use una versión específica para producción. |
Instalar recolector con Helm
Agrega el respositorio de Helm de OpenTelemetry e instala el recolector en el namespace ibmmq usando el values.yaml que creaste en el paso anterior:
$helm repo add open-telemetry https://open-telemetry.github.io/opentelemetry-helm-charts$helm repo update$
$helm upgrade --install ibmmq-collector open-telemetry/opentelemetry-collector \> --namespace ibmmq \> --create-namespace \> --values values.yamlSi el pod del recolector no llega a 1/1 Running, consulte Resolución de problemas a continuación.
Verifique el despliegue
Confirme que el pod del recolector se esté ejecutando:
$kubectl -n ibmmq rollout status deploy/ibmmq-collector-opentelemetry-collector --timeout=180s$kubectl -n ibmmq get podsEl pod del recolector debería mostrar 1/1 Running. Para confirmar que realmente está descubriendo y extrayendo pods, reenvíe el puerto de su extremo de autotelemetría (expuesto en :8888, accesible solo a través de port-forward porque el Servicio entrante está deshabilitado) y verifique los contadores aceptados/exportados:
$kubectl -n ibmmq port-forward deploy/ibmmq-collector-opentelemetry-collector 8888:8888 &$curl -s http://localhost:8888/metrics | \> grep -E 'otelcol_(receiver_accepted|exporter_sent|exporter_send_failed)_metric_points'$kill %1 2>/dev/nullotelcol_receiver_accepted_metric_points mayor que 0 confirma que el recolector encontró y recopiló al menos un pod Running anotado; otelcol_exporter_send_failed_metric_points debe mantenerse en 0 (cualquier valor distinto de cero indica un problema de conexión o de credenciales de OTLP).
Luego, confirme las métricas y entidades de IBM MQ en New Relic usando las consultas de verificación en buscar y consultar sus datos. Para conocer el significado de los valores de estado, consulte la referencia de códigos de estado de MQ.
Ver tus datos en New Relic
Una vez que el pod de su recolector se esté ejecutando y las métricas fluyan, verá sus administradores de colas como entidades IBMMQ_MANAGER en New Relic, con sus colas como entidades IBMMQ_QUEUE secundarias. Para obtener detalles sobre cómo buscar sus datos, ejecutar consultas y configurar dashboards y alertas, consulte Ver y consultar sus datos.