Connecteur d'intégration Splunk Enterprise - AWS IoT Greengrass

AWS IoT Greengrass Version 1 est entré dans la phase de durée de vie prolongée le 30 juin 2023. Pour plus d'informations, consultez la politique de AWS IoT Greengrass V1 maintenance. Après cette date, AWS IoT Greengrass V1 ne publiera pas de mises à jour fournissant des fonctionnalités, des améliorations, des corrections de bogues ou des correctifs de sécurité. Les appareils qui fonctionnent AWS IoT Greengrass V1 sous tension ne seront pas perturbés et continueront à fonctionner et à se connecter au cloud. Nous vous recommandons vivement de migrer vers AWS IoT Greengrass Version 2, qui ajoute de nouvelles fonctionnalités importantes et prend en charge des plateformes supplémentaires.

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Connecteur d'intégration Splunk Enterprise

Avertissement

Ce connecteur a été déplacé dans lePhase de durée, etAWS IoT Greengrassne publiera pas de mises à jour fournissant des fonctionnalités, des améliorations à des fonctionnalités existantes, des correctifs de sécurité ou des corrections de bogues. Pour plus d'informations, consultez AWS IoT Greengrass Version 1politique de maintenance.

L'intégration Splunk Enterpriseconnecteurpublie des données à partir d'appareils Greengrass dans Splunk. Cela vous permet d'utiliser Splunk pour surveiller et analyser l'environnement Greengrass Core et d'agir sur les événements locaux. Le connecteur s'intègre avec HTTP Event Collector (HEC). Pour plus d'informations, consultez la section Introduction to HTTP Event Collector dans la documentation Splunk.

Ce connecteur reçoit la journalisation et les données d'événement dans une rubrique MQTT et publie les données en l'état dans l'API Splunk.

Vous pouvez utiliser ce connecteur pour prendre en charge des scénarios professionnels, par exemple :

  • les opérateurs peuvent utiliser des données périodiques provenant de capteurs et d'actionneurs (par exemple, la lecture des températures, de la pression et de l'eau) pour déclencher des alarmes lorsque les valeurs dépassent un certain seuil.

  • les développeurs utilisent des données collectées à partir de machines industrielles pour créer des modèles de ML qui peuvent surveiller l'équipement pour les problèmes potentiels.

Ce connecteur a les versions suivantes.

Version

ARN

4

arn:aws:greengrass:region::/connectors/SplunkIntegration/versions/4

3

arn:aws:greengrass:region::/connectors/SplunkIntegration/versions/3

2

arn:aws:greengrass:region::/connectors/SplunkIntegration/versions/2

1

arn:aws:greengrass:region::/connectors/SplunkIntegration/versions/1

Pour obtenir des informations sur les changements apportés aux versions, veuillez consulter le Journal des modifications.

Prérequis

Ce connecteur possède les critères suivants :

Version 3 - 4
  • AWS IoT GreengrassLogiciel Core 1.9.3 ou version ultérieure.AWS IoT Greengrassdoit être configuré pour prendre en charge les secrets locaux, comme décrit dansExigences relatives aux secrets.

    Note

    Cette exigence inclut l'autorisation d'accès à vos secrets Secrets Manager. Si vous utilisez le rôle de service Greengrass par défaut, Greengrass a l'autorisation d'obtenir les valeurs des secrets dont les noms commencent pargreengrass.

  • Pythonversion 3.7 ou 3.8 installée sur l'appareil principal et ajoutée à la variable d'environnement PATH.

    Note

    Pour utiliser Python 3.8, exécutez la commande suivante pour créer un lien symbolique entre le dossier d'installation de Python 3.7 par défaut et les binaires Python 3.8 installés.

    sudo ln -s path-to-python-3.8/python3.8 /usr/bin/python3.7

    Ceci configure votre appareil de sorte qu'il réponde aux exigence de Python pour AWS IoT Greengrass.

  • La fonctionnalité HTTP Event Collector doit être activée dans Splunk. Pour de plus amples informations, veuillez consulter Set up and use HTTP eEvent Collector in Splunk Web dans la documentation Splunk.

  • Un secret de type texte dans AWS Secrets Manager qui stocke votre jeton Splunk HTTP Event Collector. Pour de plus amples informations, veuillez consulterÀ propos des jetons Event Collectordans la documentation Splunk etCréation d'un secret basiquedans leAWS Secrets ManagerGuide de l'utilisateur.

    Note

    Pour créer le secret dans la console Secrets Manager, entrez votre token sur letexte brutOnglet. N'incluez pas de guillemets ni d'autres mises en forme Dans l'API, spécifiez le jeton comme valeur pour leSecretStringpropriété.

  • Une ressource du secret dans le groupe Greengrass qui référence le secret Secrets Manager. Pour plus d'informations, consultez Déployer des secrets sur AWS IoT Greengrass Core.

Versions 1 - 2
  • AWS IoT GreengrassLogiciel Core 1.7 ou version ultérieure.AWS IoT Greengrassdoit être configuré pour prendre en charge les secrets locaux, comme décrit dansExigences relatives aux secrets.

    Note

    Cette exigence inclut l'autorisation d'accès à vos secrets Secrets Manager. Si vous utilisez le rôle de service Greengrass par défaut, Greengrass a l'autorisation d'obtenir les valeurs des secrets dont les noms commencent pargreengrass.

  • Pythonversion 2.7 installée sur l'appareil principal et ajoutée à la variable d'environnement PATH.

  • La fonctionnalité HTTP Event Collector doit être activée dans Splunk. Pour de plus amples informations, veuillez consulter Set up and use HTTP eEvent Collector in Splunk Web dans la documentation Splunk.

  • Un secret de type texte dans AWS Secrets Manager qui stocke votre jeton Splunk HTTP Event Collector. Pour de plus amples informations, veuillez consulterÀ propos des jetons Event Collectordans la documentation Splunk etCréation d'un secret basiquedans leAWS Secrets ManagerGuide de l'utilisateur.

    Note

    Pour créer le secret dans la console Secrets Manager, entrez votre token sur letexte brutOnglet. N'incluez pas de guillemets ni d'autres mises en forme Dans l'API, spécifiez le jeton comme valeur pour leSecretStringpropriété.

  • Une ressource du secret dans le groupe Greengrass qui référence le secret Secrets Manager. Pour plus d'informations, consultez Déployer des secrets sur AWS IoT Greengrass Core.

Paramètres du connecteur

Ce connecteur fournit les paramètres suivants :

Version 4
SplunkEndpoint

Point de terminaison de votre instance Splunk. Cette valeur doit contenir le protocole, le nom d'hôte et le port.

Nom d'affichage dans leAWS IoTConsole  : Point de Point de terminaison

Obligatoire :true

Type: string

Modèle :^(http:\/\/|https:\/\/)?[a-z0-9]+([-.]{1}[a-z0-9]+)*.[a-z]{2,5}(:[0-9]{1,5})?(\/.*)?$

MemorySize

Quantité de mémoire (en Ko) allouée au connecteur.

Nom d'affichage dans leAWS IoTConsole  : Taille de la mémoire

Obligatoire :true

Type: string

Modèle :^[0-9]+$

SplunkQueueSize

Nombre maximal d'éléments à enregistrer dans la mémoire avant que les éléments ne soient envoyés ou supprimés. Lorsque cette limite est atteinte, les éléments les plus anciens de la file d'attente sont remplacés par des éléments plus récents. Cette limite s'applique généralement lorsqu'il n'y a pas de connexion à Internet.

Nom d'affichage dans leAWS IoTConsole  : Nombre maximum d'éléments à conserver

Obligatoire :true

Type: string

Modèle :^[0-9]+$

SplunkFlushIntervalSeconds

Intervalle (en secondes) pour publier les données reçues dans Splunk HEC. La valeur maximale est 900. Pour configurer le connecteur afin qu'il publie les éléments au fur et à mesure qu'elles sont reçues (sans traitement par lot), spécifiez 0.

Nom d'affichage dans leAWS IoTConsole  : Intervalle de publication Splunk

Obligatoire :true

Type: string

Modèle :[0-9]|[1-9]\d|[1-9]\d\d|900

SplunkTokenSecretArn

Le secret dansAWS Secrets Managerqui stocke le jeton Splunk. Il doit s'agir d'un secret de type texte.

Nom d'affichage dans leAWS IoTConsole  : ARN du secret du jeton d'authentification Splunk

Obligatoire :true

Type: string

Modèle :arn:aws:secretsmanager:[a-z]{2}-[a-z]+-\d{1}:\d{12}?:secret:[a-zA-Z0-9-_]+-[a-zA-Z0-9-_]+

SplunkTokenSecretArn-ResourceId

La ressource de secret dans le groupe Greengrass qui référence le secret Splunk.

Nom d'affichage dans leAWS IoTConsole  : Ressource du jeton d'authentification Splunk Enterprise

Obligatoire :true

Type: string

Modèle :.+

SplunkCustomCALocation

Chemin d'accès au fichier d'autorité de certification (CA) personnalisée pour Splunk (par exemple, /etc/ssl/certs/splunk.crt).

Nom d'affichage dans leAWS IoTConsole  : Emplacement du fichier du fichier d'autorité de certification personnalisée

Obligatoire :false

Type: string

Modèle :^$|/.*

IsolationMode

Mode conteneurisation de ce connecteur. La valeur par défaut est GreengrassContainer, ce qui signifie que le connecteur s'exécute dans un environnement d'exécution isolé à l'intérieur du conteneur AWS IoT Greengrass.

Note

Le paramètre de conteneurisation par défaut pour le groupe ne s'applique pas aux connecteurs.

Nom d'affichage dans leAWS IoTConsole  : Mode d'isolation du conteneur

Obligatoire :false

Type: string

Valeurs valides : GreengrassContainer ou NoContainer

Modèle :^NoContainer$|^GreengrassContainer$

Version 1 - 3
SplunkEndpoint

Point de terminaison de votre instance Splunk. Cette valeur doit contenir le protocole, le nom d'hôte et le port.

Nom d'affichage dans leAWS IoTConsole  : Point de Point de terminaison

Obligatoire :true

Type: string

Modèle :^(http:\/\/|https:\/\/)?[a-z0-9]+([-.]{1}[a-z0-9]+)*.[a-z]{2,5}(:[0-9]{1,5})?(\/.*)?$

MemorySize

Quantité de mémoire (en Ko) allouée au connecteur.

Nom d'affichage dans leAWS IoTConsole  : Taille de la mémoire

Obligatoire :true

Type: string

Modèle :^[0-9]+$

SplunkQueueSize

Nombre maximal d'éléments à enregistrer dans la mémoire avant que les éléments ne soient envoyés ou supprimés. Lorsque cette limite est atteinte, les éléments les plus anciens de la file d'attente sont remplacés par des éléments plus récents. Cette limite s'applique généralement lorsqu'il n'y a pas de connexion à Internet.

Nom d'affichage dans leAWS IoTConsole  : Nombre maximum d'éléments à conserver

Obligatoire :true

Type: string

Modèle :^[0-9]+$

SplunkFlushIntervalSeconds

Intervalle (en secondes) pour publier les données reçues dans Splunk HEC. La valeur maximale est 900. Pour configurer le connecteur afin qu'il publie les éléments au fur et à mesure qu'elles sont reçues (sans traitement par lot), spécifiez 0.

Nom d'affichage dans leAWS IoTConsole  : Intervalle de publication Splunk

Obligatoire :true

Type: string

Modèle :[0-9]|[1-9]\d|[1-9]\d\d|900

SplunkTokenSecretArn

Le secret dansAWS Secrets Managerqui stocke le jeton Splunk. Il doit s'agir d'un secret de type texte.

Nom d'affichage dans leAWS IoTConsole  : ARN du secret du jeton d'authentification Splunk

Obligatoire :true

Type: string

Modèle :arn:aws:secretsmanager:[a-z]{2}-[a-z]+-\d{1}:\d{12}?:secret:[a-zA-Z0-9-_]+-[a-zA-Z0-9-_]+

SplunkTokenSecretArn-ResourceId

La ressource de secret dans le groupe Greengrass qui référence le secret Splunk.

Nom d'affichage dans laAWS IoTConsole  : Ressource du jeton d'authentification Splunk Enterprise

Obligatoire :true

Type: string

Modèle :.+

SplunkCustomCALocation

Chemin d'accès au fichier d'autorité de certification (CA) personnalisée pour Splunk (par exemple, /etc/ssl/certs/splunk.crt).

Nom d'affichage dans laAWS IoTConsole  : Emplacement du fichier du fichier d'autorité de certification personnalisée

Obligatoire :false

Type: string

Modèle :^$|/.*

Exemple de création de connecteur (AWS CLI)

La commande CLI suivante crée unConnectorDefinitionavec une version initiale qui contient le connecteur d'intégration Splunk.

aws greengrass create-connector-definition --name MyGreengrassConnectors --initial-version '{ "Connectors": [ { "Id": "MySplunkIntegrationConnector", "ConnectorArn": "arn:aws:greengrass:region::/connectors/SplunkIntegration/versions/4", "Parameters": { "SplunkEndpoint": "https://myinstance.cloud.splunk.com:8088", "MemorySize": 200000, "SplunkQueueSize": 10000, "SplunkFlushIntervalSeconds": 5, "SplunkTokenSecretArn":"arn:aws:secretsmanager:region:account-id:secret:greengrass-secret-hash", "SplunkTokenSecretArn-ResourceId": "MySplunkResource", "IsolationMode" : "GreengrassContainer" } } ] }'
Note

La fonction Lambda de ce connecteur possède unlongue duréecycle de vie.

DansAWS IoT Greengrass, vous pouvez ajouter un connecteur à partir de la consoleConnecteurs. Pour plus d'informations, consultez Mise en route avec les connecteurs Greengrass (console).

Données d'entrée

Ce connecteur accepte la journalisation et les données d'événement dans une rubrique MQTT et publie les données reçues en l'état dans l'API Splunk. Les messages d'entrée doivent être au format JSON.

Filtre de rubrique dans l'abonnement

splunk/logs/put

Propriétés des messages
request

Données d'événements à envoyer à l'API Splunk. Les événements doivent répondre aux spécifications de l'API services/collector.

Obligatoire :true

Type : object. Seul leeventla propriété est obligatoire.

id

ID arbitraire de la demande. Cette propriété est utilisée pour mapper une demande d'entrée à un statut de sortie.

Obligatoire :false

Type: string

Restrictions

Toutes les limites imposées par l'API Splunk s'appliquent lorsque ce connecteur est utilisé. Pour plus d'informations, consultez services/collector.

Exemple d'entrée
{ "request": { "event": "some event", "fields": { "severity": "INFO", "category": [ "value1", "value2" ] } }, "id": "request123" }

Données de sortie

Ce connecteur publie des données de sortie dans deux rubriques :

  • Informations de statut dans la rubrique splunk/logs/put/status.

  • Erreurs dans la rubrique splunk/logs/put/error.

Filtre de rubriques : splunk/logs/put/status

Utilisez cette rubrique pour écouter le statut des demandes. Chaque fois que le connecteur envoie à l'API Splunk un lot de données reçues, il publie la liste des ID des demandes qui ont réussi et celles qui ont échoué.

Exemple de sortie
{ "response": { "succeeded": [ "request123", ... ], "failed": [ "request789", ... ] } }
Filtre de rubriques : splunk/logs/put/error

Utilisez cette rubrique pour écouter les erreurs du connecteur. La propriété error_message qui décrit l'erreur ou l'expiration rencontrée lors du traitement de la demande.

Exemple de sortie
{ "response": { "error": "UnauthorizedException", "error_message": "invalid splunk token", "status": "fail" } }
Note

Si le connecteur détecte une erreur réessayable (par exemple, des erreurs de connexion), il tente à nouveau la publication dans le lot suivant.

Exemple d'utilisation

Suivez les étapes détaillées suivantes pour configurer un exemple de fonction Lambda Python 3.7 que vous pouvez utiliser pour tester le connecteur.

Note
  1. Veillez à répondre aux conditions requises pour le connecteur.

  2. Créez et publiez une fonction Lambda qui envoie des données d'entrée au connecteur.

    Enregistrez l'exemple de code en tant que fichier PY. Téléchargez et décompressez le fichierAWS IoT GreengrassSDK de base pour Python. Ensuite, créez un package zip contenant le fichier PY et le dossier greengrasssdk au niveau racine. Ce package zip correspond au package de déploiement que vous chargez surAWS Lambda.

    Après avoir créé la fonction Lambda Python 3.7, publiez une version de fonction et créez un alias.

  3. Configurez votre groupe Greengrass.

    1. Ajoutez la fonction Lambda par son alias (recommandé). Configurez le cycle de vie Lambda comme long (ou"Pinned": truedans la CLI).

    2. Ajoutez la ressource de secret requise et accordez l'accès en lecture à la fonction Lambda.

    3. Ajoutez le connecteur et configurez ses paramètres.

    4. Ajoutez des abonnements qui permettent au connecteur de recevoir des données d'entrée et d'envoyer des données de sortie sur des filtres de rubrique pris en charge.

      • Définissez la fonction Lambda en tant que source, le connecteur en tant que cible et utilisez un filtre de rubrique d'entrée pris en charge.

      • Définissez le connecteur en tant que source, AWS IoT Core en tant que cible et utilisez un filtre de rubrique de sortie pris en charge. Vous utilisez cet abonnement pour afficher les messages d'état dans laAWS IoTconsole

  4. Déployez le groupe.

  5. DansAWS IoTsur la console, dans leTest, abonnez-vous à la rubrique des données de sortie pour afficher les messages d'état du connecteur. L'exemple de fonction Lambda à longue durée de vie commence à envoyer des messages immédiatement après le déploiement du groupe.

    Lorsque vous avez terminé le test, vous pouvez définir le cycle de vie Lambda sur le type « à la demande » ("Pinned": falsedans l'interface de ligne de commande) et déployez le groupe. Cela empêche la fonction d'envoyer des messages.

Exemple

L'exemple de fonction Lambda suivant envoie un message d'entrée au connecteur.

import greengrasssdk import time import json iot_client = greengrasssdk.client('iot-data') send_topic = 'splunk/logs/put' def create_request_with_all_fields(): return { "request": { "event": "Access log test message." }, "id" : "req_123" } def publish_basic_message(): messageToPublish = create_request_with_all_fields() print("Message To Publish: ", messageToPublish) iot_client.publish(topic=send_topic, payload=json.dumps(messageToPublish)) publish_basic_message() def lambda_handler(event, context): return

Licences

Ce connecteur est libéré sous leContrat de licence du logiciel Greengrass Core.

Journal des modifications

Le tableau suivant décrit les modifications apportées à chaque version du connecteur.

Version

Modifications

4

Ajout du paramètre IsolationMode pour configurer le mode de conteneurisation du connecteur.

3

Mise à niveau du moteur d'exécution Lambda vers Python 3.7, ce qui modifie l'exigence d'environnement d'exécution

2

Correctif pour réduire la journalisation excessive.

1

Première version.

Un groupe Greengrass peut contenir une seule version du connecteur à la fois. Pour de plus amples informations sur la mise à niveau d'une version de connecteur, veuillez consulter Mise à niveau des versions du connecteur.

Consulter aussi