Lorsque vos gestionnaires de files d’attente IBM MQ s’exécutent en tant que pods dans Kubernetes, vous avez besoin d’une solution de monitoring capable de les découvrir et de les suivre automatiquement à mesure que votre cluster évolue. Ce guide vous montre comment déployer un collecteur qui trouve automatiquement vos gestionnaires de files d’attente et envoie leurs métriques à New Relic sans aucune modification manuelle de configuration.
Vous pouvez utiliser soit la distribution d’OpenTelemetry de New Relic (NRDOT), soit l’OpenTelemetry Collector Contrib — les deux utilisent la même configuration et la même approche de découverte automatique. Le collecteur découvre les pods du gestionnaire de files d’attente par annotation, rassemble leurs métriques et envoie des données organisées à New Relic où elles apparaissent sous forme d’entités IBMMQ_MANAGER et IBMMQ_QUEUE avec des dashboards prêts à l’emploi. Lorsque vous ajoutez de nouveaux gestionnaires de files d’attente, le collecteur les trouve automatiquement — aucune mise à jour de configuration n’est nécessaire.
Conseil
Si vos gestionnaires de files d'attente s'exécutent plutôt sur des hôtes traditionnels, consultez Monitorer IBM MQ auto-hébergé.
Avant de commencer
Vous aurez besoin de ces composants avant de configurer le collecteur :
- Compte New Relic avec une clé de licencevalide
- Point de terminaison OTLP New Relic pour votre région
- Cluster Kubernetes avec accès
kubectlet Helm installé - Pods du gestionnaire de files d’attente IBM MQ s’exécutant avec des sidecars d’exportateur mq-metric-samples exposant des métriques sur le port
9157 - Pods du gestionnaire de files d’attente annotés avec les annotations Prometheus requises
Conseil
Nous recommandons d'activer les statistiques MQI sur vos gestionnaires de files d'attente à l'aide de ALTER QMGR STATMQI(ON) STATQ(ON) pour obtenir de meilleures métriques de débit.
Configurer le monitoring IBM MQ
Suivez ces étapes pour déployer le collecteur et commencer à envoyer les métriques IBM MQ à New Relic :
Créer un secret d'identifiants New Relic
Créez un secret Kubernetes pour stocker vos identifiants New Relic en toute sécurité. Le collecteur lit ces valeurs à l'exécution, gardant les informations sensibles hors des fichiers de configuration.
Assurez-vous que l'espace de nommage
ibmmqexiste :bash$kubectl get namespace ibmmq >/dev/null 2>&1 || kubectl create namespace ibmmqCréez le secret d’identifiants, en remplaçant
<YOUR_LICENSE_KEY>par votre clé de licence réelle :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 -Pour les comptes de l'UE, utilisez
https://otlp.eu01.nr-data.net:4318comme valeur de point de terminaison.
Configurer les valeurs Helm du collecteur
Créer un fichier values.yaml local avec la configuration du collecteur. Ce fichier contient tous les paramètres nécessaires pour déployer le collecteur via le chart Helm OpenTelemetry.
Prudence
Ne modifiez pas TARGET_NAME après le déploiement initial. Cette valeur forme le premier segment de chaque GUID d'entité IBMMQ_MANAGER et IBMMQ_QUEUE. Sa modification crée de nouvelles entités et rend orphelines celles qui existent déjà, ce qui casse les dashboards et les alertes.
Ce que fait cette configuration
Cette configuration crée un pipeline de découverte automatique qui trouve les pods du gestionnaire de files d'attente IBM MQ et envoie leurs métriques à New Relic. Le pipeline de traitement est identique à la configuration de l'hôte, mais utilise la découverte automatique de pod au lieu de cibles statiques :
| Section | Rôle |
|---|---|
prometheus/ibmmq Récepteur | Découvre automatiquement les pods de gestionnaire de files d'attente dans l'espace de nommage ibmmq qui possèdent les annotations requises. Se connecte au point de terminaison de métriques de chaque pod et recueille les données IBM MQ toutes les 60 secondes. |
filter/ibmmq-overhead | Supprime les métriques internes de l'exportateur (telles que go_* et process_*) qui ne contiennent pas de données IBM MQ, optimisant ainsi les coûts d'ingestion des données. |
filter/ibmmq-queues | Exclut les files d'attente système IBM MQ internes (SYSTEM.* et AMQ.*) afin que seules les files d'attente d'application deviennent des entités dans New Relic. |
transform/ibmmq-cleanup | Composant critique qui associe les métriques aux entités IBM MQ appropriées dans New Relic. Sans cela, les données apparaissent comme des métriques de collecteur génériques au lieu d'entités IBMMQ_MANAGER et IBMMQ_QUEUE avec des dashboards et des alertes. |
memory_limiter/ibmmq | Limite l’utilisation de la mémoire à 400 Mo (en dessous de la limite du conteneur de 512 Mi) pour éviter que le pod du collecteur ne soit tué par Kubernetes. |
batch/ibmmq | Regroupe les métriques avant la transmission pour réduire la surcharge du réseau en regroupant jusqu'à 1 000 points de données par requête. |
otlphttp/ibmmq exportateur | Exporte les métriques traitées vers New Relic en utilisant votre clé de licence pour l'authentification et le point de terminaison régional configuré. |
Paramètres Kubernetes importants :
| Paramètre | Pourquoi cela est requis |
|---|---|
replicaCount: 1 | Avec kubernetes_sd et sans TargetAllocator, chaque réplica scrape chaque cible, de sorte que plus d'un réplica compte en double (et facture en double) les métriques. Pour la HA, partitionnez les cibles avec l'OpenTelemetry TargetAllocator. |
mode: deployment (pas daemonset) | Un DaemonSet exécute kubernetes_sd sur chaque nœud et produit N copies de chaque métrique pour un cluster de N nœuds. |
clusterRole.create: true | kubernetes_sd nécessite get/list/watch sur les pods ; sans cela, l'API renvoie 403 Forbidden et le Récepteur découvre zéro cible (le collecteur démarre mais n'émet rien). |
service.enabled: false | Ce collecteur n'a pas de Récepteurs entrants, le chart essaierait donc autrement de créer un service à port zéro et échouerait au moment de l'installation. L'auto-télémétrie sur :8888 est toujours accessible via kubectl port-forward. |
replacement: $$1:$$2 (règle de réétiquetage 4) | Le $$ échappe l’expansion de la variable d’environnement ${...} du chargeur de configuration OTel afin que le moteur Prometheus reçoive la syntaxe littérale du groupe de capture $1:$2. Un seul $1:$2 serait consommé comme une variable d’environnement vide et casserait la construction de l’adresse. |
image.tag: "latest" | Idéal pour les tests ; utilisez une version spécifique pour la production. |
Installer le collecteur avec Helm
Ajoutez le référentiel Helm OpenTelemetry et installez le collecteur dans l'espace de nommage ibmmq en utilisant le values.yaml que vous avez créé à l'étape précédente :
$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 le pod du collecteur n'atteint pas 1/1 Running, consultez la section Dépannage ci-dessous.
Vérifier le déploiement
Confirmez que le pod du collecteur est en cours d'exécution :
$kubectl -n ibmmq rollout status deploy/ibmmq-collector-opentelemetry-collector --timeout=180s$kubectl -n ibmmq get podsLe pod du collecteur doit afficher 1/1 Running. Pour confirmer qu'il découvre et scrape réellement les pods, transférez le port de son point de terminaison d'auto-télémétrie (exposé sur :8888, accessible uniquement via port-forward car le service entrant est désactivé) et vérifiez les compteurs acceptés/exportés :
$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 supérieur à 0 confirme que le collecteur a trouvé et récupéré au moins un pod annoté en cours d'exécution ; otelcol_exporter_send_failed_metric_points doit rester à 0 (toute valeur non nulle indique un problème de connexion OTLP ou d'informations d'identification).
Confirmez ensuite les métriques et entités IBM MQ dans New Relic à l'aide des requêtes de vérification dans trouver et interroger vos données. Pour connaître la signification des valeurs d'état, consultez la référence des codes d'état MQ.
Affichez vos données dans New Relic
Une fois que votre pod de collecteur est en cours d'exécution et que les métriques circulent, vous verrez vos gestionnaires de files d'attente en tant qu'entités IBMMQ_MANAGER dans New Relic, avec leurs files d'attente en tant qu'entités IBMMQ_QUEUE enfants. Pour des informations détaillées sur la recherche de vos données, l'exécution de requêtes et la configuration de dashboards et d'alertes, consultez Afficher et interroger vos données.