Configuration du capteur ACE ( IBM App Connect Enterprise )

Vous pouvez configurer le capteur « IBM ACE » dans un environnement traditionnel ou natif du cloud.

Pour plus d'informations sur la surveillance de l' IBM ACE (ACE), consultez la section Surveillance de l' IBM App Connect Enterprise (ACE).

Environnement ACE traditionnel

Prérequis

Remarque : À partir de la version 11 d'ACE, les statistiques relatives aux ressources et au flux de messages sont activées par défaut. Pour vérifier son état, procédez comme suit. Ces commandes sont basées sur l'IIB 10, avec de légères différences de paramètres pour l'ACE 11 et les versions ultérieures. Pour plus d'informations, consultez la documentation ACE. Remplacez <integrationNode> et <integrationServer> par les noms réels de votre nœud d'intégration et de votre serveur respectifs dans les commandes suivantes.

Avant de configurer le capteur « IBM ACE », procédez comme suit :

  1. Vérifier et activer l'état de collecte des statistiques sur les ressources et les flux de messages. Les mesures ACE n'existent que lorsque vous activez la collecte de statistiques sur les ressources et les flux de messages.

    • Pour vérifier l'état de la collecte des ressources, exécutez la commande suivante :

      mqsireportresourcestats <integrationNode> -e <integrationServer>
       

      Si l'état de collecte des ressources est inactif, activez-le en exécutant la commande suivante :

      mqsichangeresourcestats <integratorNode> -e <integrationServer> -c active
       
    • Pour vérifier l'état des statistiques de flux de messages, exécutez la commande suivante :

      mqsireportflowstats <integratorNode>  -s -e <integrationServer>  -j
       

      Si l'état de collecte des flux de messages est inactif, activez la collecte des statistiques instantanées pour tous les flux de messages sur le serveur d'intégration et le nœud spécifiés, puis transmettez les données au format JSON.

      • Pour activer la collecte de statistiques instantanées sans définir le niveau de données des threads, exécutez la commande suivante :

        mqsichangeflowstats <integrationNode> -s -e <integrationServer> -j -c active -o json
         
      • Pour activer la collecte de statistiques instantanées en définissant le niveau de données des threads, exécutez la commande suivante :

        mqsichangeflowstats <integrationNode> -s -e <integrationServer> -j -t basic -c active -o json
         
      • Pour activer la collecte de statistiques instantanées en définissant à la fois le niveau de données des threads et le niveau de données des nœuds, exécutez la commande suivante :

        mqsichangeflowstats <integrationNode> -s -e <integrationServer> -j -t basic -n basic -c active -o json
         
      Remarque : Si vous souhaitez vérifier l'utilisation des threads pour chaque flux de messages, vous devez activer les données relatives aux threads à l'aide de l'option « -t basic » lorsque vous utilisez la commande « mqsichangeflowstats ». Vous pouvez demander deux types de collecte de données, l'instantané et l'archive. Le type d'instantané est le meilleur choix pour la collecte de données. Pour plus d'informations, consultez les commandes correspondantes dans la documentation IIB ou ACE.
  2. Vérifiez si votre ACE utilise MQTT ou IBM MQ. Les commandes suivantes recherchent le processus MQTT ou « IBM MQ » et vérifient si les événements opérationnels sont publiés vers le capteur ACE.

    • Pour vérifier la présence de MQTT, exécutez la commande suivante :

      ps -ef | awk '/bipMQTT/ && /<integrationNode>/'
      mqsireportproperties <integrationNode> -b Events -o OperationalEvents/MQTT -n enabled
       

      Pour utiliser MQTT comme destination de la publication OperationalEvents dans le capteur ACE, procédez comme suit :

      • Assurez-vous que l'utilisateur qui exécute l'agent « Instana » fait partie du groupe ACE.

      • Spécifiez le port MQTT dans le fichier configuration.yaml. Pour plus d'informations, voir Exemples de configuration ACE.

        Remarque : les paramètres et acePassword: ‘<VIWER_USER_PASSWORD>’aceUsername: ‘<VIWER_USER>’ de la fonction ` configuration.yaml ` ne sont pas utilisés avec le socket ` Unix `.
      • Activer le MQTT. Pour plus d'informations, consultez le site IBMApp Connect.

      • Utilisez la commande précédente pour vérifier les événements publiés.

      Utilisez les exemples de requêtes suivants pour vous assurer que la connexion est ouverte et fonctionne du côté de MQTT :

      • Requête via un socket Unix, réponse 403 :

        root@itm-0:~# curl --unix-socket /var/mqsi/INODE4.uds http://127.0.0.1:4417/apiv2/servers
        {"name":"servers","type":"integrationServers","uri":"/apiv2/servers","hasChildren":true,"children":[{"name":"IServer_2","hasChildren":true,"uri":"/apiv2/servers/IServer_2","type":"integrationServer","apiResponseCode":403}]}
         
      • Demande avec nom d'utilisateur, réponse 403 :

        root@itm-0:~# curl -u user1 --unix-socket /var/mqsi/INODE4.uds http://127.0.0.1:4417/apiv2/servers
        Enter host password for user 'user1':
        {"name":"servers","type":"integrationServers","uri":"/apiv2/servers","hasChildren":true,"children":[{"name":"IServer_2","hasChildren":true,"uri":"/apiv2/servers/IServer_2","type":"integrationServer","apiResponseCode":403}]}
         
      • Suppression de la connexion Unix et renvoi d'un utilisateur, réponse 200 :

        root@itm-0:~# curl -u user1 http://127.0.0.1:4417/apiv2/servers
        Enter host password for user 'user1':
        {"name":"servers","type":"integrationServers","uri":"/apiv2/servers","hasChildren":true,"children":[{"name":"IServer_2","hasChildren":true,"uri":"/apiv2/servers/IServer_2","type":"integrationServer","active":{"processId":26013,"isRunning":true,"state":"started"},"apiResponseCode":200}]}
         
      • Après avoir ajouté "root" au groupe ACE, il n'est pas nécessaire de fournir le nom d'utilisateur et le mot de passe, la réponse est 200 :

        root@itm-0:~# grep root /etc/group
        root:x:0:
        mqbrkrs:x:1001:mquser,mq,root
        root@itm-0:~# curl --unix-socket /var/mqsi/INODE4.uds http://127.0.0.1:4417/apiv2/servers
        {"name":"servers","type":"integrationServers","uri":"/apiv2/servers","hasChildren":true,"children":[{"name":"IServer_2","hasChildren":true,"uri":"/apiv2/servers/IServer_2","type":"integrationServer","active":{"processId":26013,"isRunning":true,"state":"started"},"apiResponseCode":200}]}
         
    • Pour vérifier la présence d' IBM MQ s, exécutez la commande suivante :

      mqsilist | grep <integrationNode>  # check there is a default queue manager configured.
      mqsireportproperties <integrationNode> -b Events -o OperationalEvents/MQ -n enabled
       

      Pour utiliser « IBM MQ » dans votre ACE, procédez comme suit :

      1. Créez un canal ou utilisez un canal existant pour le flux des données de mesure des performances pour le serveur d'intégration, le flux de messages et le nœud de flux.

      2. Assurez-vous que le canal est accessible via le nom d'utilisateur ou le mot de passe spécifié dans le fichier configuration.yaml.

      3. Spécifiez le nom du gestionnaire de file d'attente et le port d'écoute dans le fichier configuration.yaml ainsi que le nom du canal, le nom d'utilisateur et le mot de passe. Pour plus d'informations sur la configuration des canaux, consultez la section « Résolution des problèmes d'accès CHLAUTH ».

  3. Si le serveur surveillé est un serveur d'intégration indépendant, assurez-vous que les conditions suivantes sont remplies :

    • Configurer la publication des messages d'événements, car elle est désactivée par défaut. Le capteur ACE ne surveille que OperationalEvents, et non BusinessEvents. Pour plus d'informations, consultez la section « Configuration de la publication des messages d'événement ».
    • Utilisez ACE 11.0.0.11 ou une version ultérieure. Sinon, vous ne pouvez pas utiliser le socket de domaine UNIX, car le fichier .uds n'existe pas pour chaque serveur.
  4. Pour activer la fonction de découverte automatique dans l'environnement ACE traditionnel, assurez-vous que les conditions suivantes sont remplies :

    • Le capteur « IBM ACE » est activé sans qu'il soit nécessaire de configurer le nœud d'intégration ou le serveur dans le <agent_install_dir>/etc/instana/configuration.yaml fichier.
    • L'utilisateur qui lance l'agent dispose des droits d'accès au chemin de travail ACE (par exemple, /var/mqsi/).
    • Le processus MQTT fonctionne correctement pour le nœud d'intégration concerné. Pour vérifier, exécutez la ps -ef | grep -E 'bipMQTT.*<integrationNode>’ commande sur l'hôte.
    Remarque : grâce à la détection automatique, vous pouvez voir tous les serveurs d'intégration en cours d'exécution répertoriés sur le tableau de bord de l'hôte de l'interface utilisateur d' Instana, même si toutes les conditions préalables ne sont pas remplies.
  5. Dans les versions 13 et ultérieures d' IBM ACE, les serveurs d'intégration utilisent par défaut le protocole HTTPS avec des certificats auto-signés. Pour permettre à Instana d'effectuer un suivi, choisissez l'une des options suivantes :

    • Démarrez le serveur d'intégration avec un keystore JKS approprié contenant des certificats valides. Si vous utilisez HTTPS avec un keystore valide, configurez les keystore paramètres keystorePassword et dans le fichier de configuration.yaml l'agent.
    • Remplacez le protocole HTTPS par HTTP pour le serveur d'intégration.

Procédure

Dans l'environnement ACE traditionnel, l' Instana prend en charge la surveillance des instances d' IBM ACE, qu'elles soient distantes ou locales. Vous devez configurer les champs dans le fichier de configuration de l'agent <agent_install_dir>/etc/instana/configuration.yaml. Vous pouvez utiliser les configurations suivantes :

  • Pour utiliser la surveillance à distance, définissez l'adresse IP du serveur ACE cible comme valeur de l'hôte.

  • Pour utiliser la surveillance locale, commentez l'attribut host. La surveillance locale est utilisée par défaut.

  • Pour surveiller des courtiers ou des serveurs d'intégration portant le même nom sur différents hôtes, utilisez brokerName:x ou integrationServer:x comme clé des courtiers ou des serveurs d'intégration. Par exemple, BK1:1et BK:2.

  • Pour utiliser la fonction de découverte automatique, ne définissez aucun champ sous NodesOrServers. La fonction de découverte automatique du capteur ACE permet de découvrir tous les serveurs d'intégration en cours d'exécution sur l'hôte et de commencer à les surveiller automatiquement sans aucune configuration.

Pour obtenir des conseils sur la manière d'obtenir les valeurs de ces champs, consultez l'article de blog intitulé « Conseils utiles pour la configuration des capteurs ACE ».

Voir l'exemple de fichier configuration.yaml suivant pour la configuration de l'ACE :

com.instana.plugin.ace:
  enabled: true
  poll_rate: 60
  forceRemote: false
  flowNodesExcludedRegex: ''
  messageFlow:
    limit: 0
    sortByMetric: 'MaximumElapsedTime'
  NodesOrServers:
    SampleNode/Server:
      host: '<ACE_SERVEr_HOST>'
      restApiPort: '<ACE_REST_API_PORT>'
      aceUsername: '<VIWER_USER>'
      acePassword: '<VIWER_USER_PASSWORD>'
      keystore: '<ACE_KEYSTORE_PATH>'
      keystorePassword: '<ACE_KEYSTORE_PASSWORD>'
      excludedServers: '<INTEGRATION_SERVER_NAMES>'
      flowNodesExcludedRegex: ''
      messageFlow:
        limit: 0
        sortByMetric: 'MaximumElapsedTime'
      availabilityZone: 'IBM ACE Custom Zone'
      mqHost: '<MQ_HOST>'
      mqport: '<MQ_LISTENING_PORT>'
      queuemanagerName: '<QMGR_NAME>'
      channel: '<SVRCONN_CHANNEL>'
      mqUsername: '<AUTHORIZED_USER>'
      mqPassword: '<USER_PASSWORD>'
      mqKeystore: '<MQ_KEYSTORE_PATH>'
      mqKeystorePassword: '<MQ_KEYSTORE_PASSWORD>'
      mqCipherSuite: '<MQ_CIPHER_SUITE>'
 

Configuration de la fréquence d'interrogation

Remarque : les capteurs Instana, IBM ACE, 1.0.84 et les versions ultérieures permettent de configurer la fréquence d'interrogation afin de réduire le volume de données collectées. Cette fonctionnalité est prise en charge sur le backend Instana auto-hébergé à partir de la version 311.

Vous pouvez configurer la fréquence à laquelle l' Instana interroge IBM ACE pour collecter des données et des métriques en utilisant le poll_rate paramètre dans le fichier de configuration.yaml l'agent, comme le montre l'exemple suivant :

com.instana.plugin.ace:
  poll_rate: 60
Remarque : la fréquence de sondage par défaut est de 60 secondes; elle peut être réduite à un minimum de 20 secondes.

Paramètres de configuration

Le tableau suivant contient les paramètres de configuration et leur description :

Paramètre Description Obligatoire Valeur par défaut
enabled Active ou désactive le plug-in. Oui true
poll_rate Définit le taux d'interrogation du plug-in en secondes. La valeur minimale est de 20 secondes. Oui 60
forceRemote Force le plug-in à utiliser la surveillance à distance au lieu de la surveillance locale. Non false
flowNodesExcludedRegex Définit une expression régulière globale pour filtrer les nœuds de flux exclusifs de tous les nœuds d'intégration. Nécessaire uniquement lorsque vous devez filtrer certains types de nœuds de flux à partir de tous les nœuds ou serveurs surveillés. ND
flowNodeLimit Limite le nombre de nœuds de flux surveillés par flux de messages. Lorsque cette valeur est définie sur « 0 », tous les nœuds de flux sont surveillés. Lorsque la valeur N est définie sur un nombre N > 0, seuls les N nœuds de flux les plus lents sont surveillés. Non 0
limit Limite le nombre de flux de messages surveillés ou faisant l'objet d'un rapport (imbriqués sous messageFlow l'objet). Lorsqu'il est réglé sur 0, « Instana » surveille tous les flux de messages. Lorsqu'il est défini sur une valeur supérieure à 0, il surveille uniquement les N premiers flux en fonction des indicateurs de performance. Non 0
sortByMetric Spécifie l'indicateur de performance à utiliser pour trier les flux lorsque limit est supérieur à 0 (imbriqué sous messageFlow l'objet ). Instana trie les flux par ordre décroissant. Les valeurs suivantes sont prises en charge : MaximumElapsedTime et ThreadUtilization. Non MaximumElapsedTime
SampleNode/Server Définit un nœud d'intégration ou un serveur d'intégration indépendant. Oui Toutefois, si vous prévoyez d'utiliser la fonction de découverte automatique, tous les champs suivants qui contiennent ce paramètre ne sont plus nécessaires. ND
host Définit l'hôte du serveur ACE. Nécessaire uniquement pour la surveillance à distance ou l'HA avec un système multi-instance ou RDQM. Pour HA, séparez plusieurs hôtes par des virgules. ND
restApiPort Définit le port d' REST API s du serveur ACE. Oui ND
aceUsername Définit le nom d'utilisateur pour le service « REST API » du serveur ACE. Nécessaire uniquement lorsque la sécurité est activée. ND
acePassword Définit le mot de passe du service « REST API » du serveur ACE. Nécessaire uniquement lorsque la sécurité est activée. ND
keystore Définit le chemin d'accès au magasin de clés pour les connexions via le protocole HTTPS. Obligatoire uniquement lorsque l'option « HTTPS » est activée. ND
keystorePassword Définit le mot de passe du keystore pour les connexions via le protocole HTTPS. Obligatoire uniquement lorsque l'option « HTTPS » est activée. ND
excludedServers Définit les noms des serveurs d'intégration à exclure de la surveillance. Nécessaire uniquement lorsque vous souhaitez exclure un serveur d'intégration de la surveillance. Séparez les noms multiples par une virgule. ND
flowNodesExcludedRegex Définit une expression régulière pour filtrer les nœuds de flux exclusifs à partir du nœud d'intégration. Nécessaire uniquement lorsque vous devez filtrer certains types de nœuds de flux. La regex définie dans cette propriété a une priorité plus élevée que la regex globale. ND
limit Limite le nombre de flux de messages surveillés ou faisant l'objet d'un rapport pour ce courtier spécifique (imbriqué sous messageFlow l'objet). Cette configuration remplace le paramètre global. Non Hérite du paramètre global
sortByMetric Spécifie l'indicateur de performance à utiliser pour trier les flux pour ce courtier spécifique (imbriqué sous messageFlow l'objet). Cette configuration remplace le paramètre global. Non Hérite du paramètre global
availabilityZone Définit une zone personnalisée. Nécessaire uniquement lorsque vous avez besoin d'une zone personnalisée. Le nom du courtier est utilisé par défaut. IBM ACE Custom Zone
mqHost Définit l'hôte ou l'adresse IP de l' IBM MQ. Obligatoire uniquement lorsque l'on peut accéder à IBM MQ à l'aide de l'adresse IP externe. ND
mqport Définit le port d'écoute du serveur MQTT ou de l' IBM MQ Oui ND
queuemanagerName Définit le nom du gestionnaire de file d'attente. Obligatoire uniquement pour IBM MQ. ND
channel Définit le canal autorisé avec le type SVRCONN. Obligatoire uniquement pour IBM MQ. ND
mqUsername Définit l'utilisateur autorisé pour le canal IBM MQ. Obligatoire uniquement lorsque les options « chlauth », « connauth » ou les deux sont activées pour l' IBM MQ. ND
mqPassword Définit le mot de passe de l'utilisateur autorisé du canal IBM MQ. Obligatoire uniquement lorsque les options « chlauth », « connauth » ou les deux sont activées pour l' IBM MQ. ND
mqKeystore Définit le chemin d'accès au magasin de clés pour les connexions via TLS. Obligatoire uniquement lorsque l'option « TLS » est activée pour IBM MQ. ND
mqKeystorePassword Définit le mot de passe du keystore pour les connexions via le protocole TLS. Obligatoire uniquement lorsque l'option « TLS » est activée pour IBM MQ. ND
mqCipherSuite Définit la suite de chiffrement pour les connexions TLS. Obligatoire uniquement lorsque l'option « TLS » est activée pour IBM MQ. ND

Le sortByMetric paramètre (imbriqué sous messageFlow) ne prend effet que lorsque limit est supérieur à 0. Si limit est défini sur 0 (surveiller tous les flux), le sortByMetric paramètre est ignoré car aucune limitation de débit n'est appliquée.

Exemples de configuration ACE

  • Configuration pour l'utilisation de la fonction de découverte automatique (disponible uniquement pour ACE 11 et les versions ultérieures) :

    com.instana.plugin.ace:
      enabled: true
      poll_rate: 60
     
  • Configuration pour la surveillance locale avec MQTT :

    com.instana.plugin.ace:
      enabled: true
      poll_rate: 60
      NodesOrServers:
        BK1:
          restApiPort: '4414'
          aceUsername: 'viewer'
          acePassword: 'mypassword'
          mqport: '11883'
     
  • Configuration pour la surveillance locale et à distance avec IBM MQ :

    com.instana.plugin.ace:
      enabled: true
      poll_rate: 60
      NodesOrServers:
        BK1:      # remote monitoring
          host: 'ace.example.com'
          restApiPort: '4414'
          aceUsername: 'viewer'
          acePassword: 'mypassword'
          mqport: '2121'
          queuemanagerName: 'QM1'
          channel: 'INSTANA.SVRCONN'
          mqUsername: 'mquser'
          mqPassword: 'password'
          mqKeystore: '/path/to/mq/keystore.jks'
          mqKeystorePassword: 'securepassword'
        BK1:1:     # local monitoring
          restApiPort: '4414'
          aceUsername: 'viewer'
          acePassword: 'mypassword'
          mqport: '2121'
          queuemanagerName: 'QM1'
          channel: 'INSTANA.SVRCONN'
          mqUsername: 'mquser'
          mqPassword: 'password'
     
  • Configuration pour le support HA avec les serveurs d'intégration et certains nœuds de flux exclus :

    com.instana.plugin.ace:
      enabled: true
      poll_rate: 60
      NodesOrServers:
        BK1:
          host: 'ha-host1.com, ha-host2.com'
          restApiPort: '4414'
          aceUsername: 'viewer'
          acePassword: 'mypassword'
          excludedServers: 'IS1, IS2'              # Integration servers IS1, IS2 will be excluded from monitoring.
          flowNodesExcludedRegex: 'MSLMapping.*'   # Flow nodes that have types beginning with "MSLMapping" will be excluded from monitoring
          mqport: '2121'
          queuemanagerName: 'QM1'
          channel: 'INSTANA.SVRCONN'
          mqUsername: 'mquser'
          mqPassword: 'password'
     
  • Configuration de la limitation globale du flux de messages et du tri basé sur les performances :

    com.instana.plugin.ace:
      enabled: true
      poll_rate: 60
      messageFlow:                                  # Global message flow configuration
        limit: 20                                   # Monitor only top 20 flows globally
        sortByMetric: 'MaximumElapsedTime'          # Sort by maximum elapsed time
      NodesOrServers:
        BROKER1:
          restApiPort: '4414'
          aceUsername: 'viewer'
          acePassword: 'mypassword'
          mqport: '1414'
          queuemanagerName: 'QM1'
          channel: 'INSTANA.SVRCONN'
          mqUsername: 'mquser'
          mqPassword: 'password'
     
  • Configuration des règles de limitation du flux de messages par courtier :

    com.instana.plugin.ace:
      enabled: true
      poll_rate: 60
      messageFlow:                                  # Global defaults
        limit: 10                                   # Monitor top 10 flows globally
        sortByMetric: 'MaximumElapsedTime'          # Sort by maximum elapsed time
      NodesOrServers:
        BROKER1:
          restApiPort: '4414'
          aceUsername: 'viewer'
          acePassword: 'mypassword'
          messageFlow:                              # Override global settings for this broker
            limit: 5                               # Monitor only top 5 flows for this broker
            sortByMetric: 'ThreadUtilization'      # Sort by thread utilization for this broker
          mqport: '1414'
          queuemanagerName: 'QM1'
          channel: 'INSTANA.SVRCONN'
          mqUsername: 'mquser'
          mqPassword: 'password'
        BROKER2:
          restApiPort: '4415'
          aceUsername: 'viewer'
          acePassword: 'mypassword'
          # This broker inherits global settings: limit=10, sortByMetric='MaximumElapsedTime'
          mqport: '1415'
          queuemanagerName: 'QM2'
          channel: 'INSTANA.SVRCONN'
          mqUsername: 'mquser'
          mqPassword: 'password'
     
  • Configuration de la limitation des nœuds de flux :

    com.instana.plugin.ace:
      enabled: true
      poll_rate: 60
      flowNodeLimit: 10                                 # Monitor only top 10 slowest flow nodes per message flow
      NodesOrServers:
        BROKER1:
          restApiPort: '4414'
          aceUsername: 'viewer'
          acePassword: 'mypassword'
          flowNodeLimit: 5                             # Override: monitor only top 5 flow nodes for this broker
          mqport: '1414'
          queuemanagerName: 'QM1'
          channel: 'INSTANA.SVRCONN'
          mqUsername: 'mquser'
          mqPassword: 'password'

Environnement ACE natif du cloud

La configuration du capteur « IBM ACE » dans l'environnement cloud natif est détectée automatiquement.