Créer un connecteur pull personnalisé

  • Rversion finale: Xanadu
  • Mis à jour 1 août 2024
  • 4 minutes de lecture
  • Vous pouvez créer un connecteur pull personnalisé qui nécessite un script, une définition de connecteur et une instance de connecteur pour récupérer des événements pour le compte d'une source d'événement.

    Avant de commencer

    Rôle requis : evt_mgmt_admin

    Pourquoi et quand exécuter cette tâche

    Un script de connecteur personnalisé peut effectuer des appels d'API distants pour une nouvelle source d'événement afin d'envoyer des événements à l'instance ServiceNow. Vous pouvez créer un script, puis l'ajouter dans le cadre d'une nouvelle définition de connecteur et d'une nouvelle instance de connecteur Gestion des événements. Cette procédure crée automatiquement un fichier de code JavaScript en utilisant le nom que vous entrez dans le champ Nom comme nom de fichier. Le code personnalisé JavaScript qui accomplit ces actions doit :
    • Connexion à un outil de surveillance d'événement.
    • Récupération des événements à partir d'un outil de surveillance d'événement.
    • envoyer des événements à la table Événement [em_event] à l'aide de l'API de service Web. Voir API REST.
    Chaque définition de connecteur est propre à un fournisseur de sources d'événements. La définition de connecteur spécifie le script Include du MID Server qui extrait les événements de la source d'événement externe. En outre, la définition de connecteur détermine les paramètres de valeur d'instance de connecteur qui sont nécessaires pour se connecter à l'hôte de la source d'événement externe.

    Procédure

    1. Créez un script include MID Server personnalisé.
      Cet exemple utilise Groovy (déconseillé). Plutôt qu'un script include dans Groovy, il est recommandé d'utiliser JavaScript.
      1. Implémentez ces méthodes :
        • @Override OperationStatus testConnection()
        • @Override OperationStatus execute()
      2. Créez la classe pour étendre ThirdPartyConnector.
        
         public class HypericConnector extends ThirdPartyConnector
        
      3. Importez des classes de plateforme pour la création, l'envoi et la journalisation d'événements, et les classes de base de connecteur tiers.
        
        package com.service_now.mid.probe.tpcon.test
        
        import com.glide.util.Log
        import com.service_now.mid.MIDServer
        import com.service_now.mid.probe.event.IEventSender
        import com.service_now.mid.probe.event.SNEventSender
        import com.service_now.mid.probe.tpcon.OperationStatus
        import com.service_now.mid.probe.tpcon.OperationStatusType
        import com.service_now.mid.probe.tpcon.ThirdPartyConnector
        import com.snc.commons.eventmgmt.Event
         
      4. Connectez-vous au collecteur de données, tel que SCOM ou VMware vRealize Hyperic (Hyperic), avec l'API fournie par le collecteur.
      5. Utilisez les paramètres context pour définir les valeurs de champ d'événement provenant d'une instance de connecteur.
        
        def authString = (context.username + ':'+ context.password).getBytes().encodeBase64().toString()
        def urlStr = 'http://'+context.host + ':' + context.parameters.port + '/' + apiFunction
        
      6. Implémentez la fonction execute dans le script.
        Elle lit les événements du connecteur à l'aide de son API pour créer des objets d'événement et les envoyer à l'instance ServiceNow. Par exemple :
        
        GPathResult alertsResponse1 = readAlerts('hqu/hqapi1/alert/find.hqu?begin=' + lastSignatureStr +
        '&end='+ tillStr +'&count=1000000&severity=1&inEscalation=false&notFixed=false');
        Event event = new Event()
        event.emsSystem = context.name
        event.source = "Hyperic"
        event.description = it.@reason
        event.type = it.@name
        ...
        IEventSender eventSender = MIDServer.getSingleton(SNEventSender.class)
            for (Event event  : list) {
                eventSender.sendEvent(event)
             }
        
    2. Accédez à la Serveur MID > Fichiers de script Serveur MID et créez un script.
    3. Définissez le champ Parent sur Groovy, remplissez le formulaire comme il convient, puis cliquez sur Envoyer.
    4. Accédez à la Gestion des événements > Intégrations > Définitions des connecteurs et créez une définition de connecteur.
    5. Dans le champ Script Groovy à exécuter, sélectionnez le fichier de script MID Server et remplissez le formulaire comme il convient.
      Outre le nom d'utilisateur ou l'hôte, vous pouvez ajouter n'importe quel autre paramètre, par exemple, port, puis cliquer sur Envoyer.
    6. Accédez à la Gestion des événements > Intégrations > Instances des connecteurs et créez une instance de connecteur.
    7. Dans le champ Définition du connecteur, sélectionnez la définition du connecteur, remplissez le formulaire comme il convient, puis cliquez sur Envoyer.
    8. Pour confirmer ou déboguer le script, utilisez les impressions de débogage de Groovy dans le journal du MID Server.
    9. Pour surveiller les événements entrants à l’aide de l’instance de connecteur personnalisée, naviguez vers ECC > File d'attente et filtrez sur ConnectorProbe.
    10. Créez une définition de connecteur personnalisée.
      1. Accédez à la Tout > Gestion des événements > Intégrations > Définitions des connecteurs.
      2. Cliquez sur Nouveau.
      3. Dans le champ Nom, saisissez un nom descriptif pour la définition de connecteur.
      4. Dans le champ Type de script, sélectionnez JavaScript.
      5. Cliquez avec le bouton droit sur l'en-tête du formulaire, puis sélectionnez Enregistrer.
      Le champ JavaScript à exécuter est automatiquement renseigné avec le nom du fichier de modèle JavaScript.
    11. Pour modifier le fichier JavaScript par défaut, cliquez sur l’icône d’information ( icône d’information) à droite du nom du fichier JavaScript et procédez comme suit :
      1. Spécifiez les informations requises pour la fonction testConnection.
        Cette fonction teste la définition de connecteur pour vérifier si la connexion à la cible est valide.
      2. Spécifiez les informations requises pour la fonction execute.
        Cette fonction récupère les informations à partir de la source externe.
      3. Spécifiez les informations requises pour la fonction retrieveKpi.
        Cette fonction récupère les données de mesure à partir de la source externe.
    12. Facultatif : Vous pouvez remplacer le JavaScript par défaut par votre code JavaScript.
    13. Renseignez les champs comme il convient.
      Tableau 1. Formulaire Définition de connecteur
      Champ Description
      Calendrier par défaut Nombre de secondes entre chaque tentative de réception d'événements.
      Bidirectionnel Sélectionnez ce champ pour activer la mise à jour du système de surveillance externe si l'alerte est modifiée. Il existe une implémentation par défaut pour SCOM.
      Identificateur du champ d'alerte Spécifiez le champ d'alerte qui, s'il est modifié manuellement, entraîne la mise à jour du système de surveillance externe.
      Remarque :
      ce champ s'affiche uniquement si l'option Bidirectionnel est sélectionnée.
      Collecter les mesures Sélectionnez cette option pour activer la collecte des mesures.
      Remarque :
      les mesures sont collectées uniquement pour les sources d'événements externes SCOM.
      Calendrier par défaut de collecte de mesures (secondes) Spécifiez le nombre de secondes d'informations qui doivent être collectées. La valeur par défaut est 10 secondes.
      Remarque :
      ce champ s'affiche uniquement si l'option Collecter les mesures est sélectionnée.
      Paramètres du connecteur Spécifiez les paramètres pour activer la communication avec un serveur d'événements.
      Définition de connecteur pour les options du Serveur MID Nom du Serveur MID chargé de traiter les événements à partir du serveur d'événements. Si ce nom n'est pas spécifié, un Serveur MID disponible est utilisé.
    14. Cliquez sur Envoyer.