Splunk Integration Connector - AWS IoT Greengrass

AWS IoT Greengrass Version 1 trat am 30. Juni 2023 in die erweiterte Lebensphase ein. Weitere Informationen finden Sie in der AWS IoT Greengrass V1 Wartungsrichtlinie. Nach diesem Datum AWS IoT Greengrass V1 werden keine Updates mehr veröffentlicht, die Funktionen, Verbesserungen, Bugfixes oder Sicherheitspatches bieten. Geräte, die auf laufen, werden AWS IoT Greengrass V1 nicht gestört und funktionieren weiterhin und stellen eine Verbindung zur Cloud her. Wir empfehlen Ihnen dringend, zu migrieren AWS IoT Greengrass Version 2, da dies wichtige neue Funktionen und Unterstützung für zusätzliche Plattformen bietet.

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Splunk Integration Connector

Warnung

Dieser Konnektor wurde in dieverlängerte, undAWS IoT Greengrassveröffentlicht keine Updates, die Funktionen, Verbesserungen vorhandener Funktionen, Sicherheitspatches oder Fehlerbehebungen bieten. Weitere Informationen finden Sie unter AWS IoT Greengrass Version 1Wartungspolitik.

Die Splunk-IntegrationAnschlussveröffentlicht Daten von Greengrass-Geräten für Splunk. Dies ermöglicht es Ihnen, Splunk zur Überwachung und Analyse der Greengrass Core-Umgebung zu verwenden und auf lokale Ereignisse zu reagieren. Der Konnektor ist in den HTTP Event Collector (HEC) integriert. Weitere Informationen finden Sie unter Einführung in den Splunk HTTP Event Collector in der Splunk-Dokumentation.

Dieser Konnektor empfängt Protokoll- und Ereignisdaten zu einem MQTT-Thema und veröffentlicht die Daten an die Splunk-API.

Sie können diesen Konnektor zur Unterstützung von industriellen Szenarien verwenden, darunter z. B.:

  • Die Betreiber können periodische Daten von Stellgliedern und Sensoren (z. B. Temperatur-, Druck- und Wasserwerte) verwenden, um Alarme zu initiieren, wenn Werte bestimmte Schwellenwerte bestimmte Schwellenwerte bestimmte Schwellenwerte

  • Developer können Daten verwenden, die von Industriemaschinen gesammelt wurden, um ML-Modelle zu entwerfen, die die Anlagen auf mögliche Probleme überwachen.

Dieser Konnektor hat die folgenden Versionen.

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

Informationen über Versionsänderungen finden Sie im Änderungsprotokoll.

Voraussetzungen

Dieser Konnektor hat die folgenden Anforderungen:

Version 3 - 4
  • AWS IoT GreengrassCore-Software v1.9.3 oder höher.AWS IoT Greengrassmuss für die Unterstützung lokaler Secrets konfiguriert sein, wie inSecrets Anforderungen.

    Anmerkung

    Diese Anforderung umfasst den Zugriff auf Ihre Secrets Manager Manager-Schlüssel. Wenn Sie die standardmäßige Greengrass-Servicerolle verwenden, hat Greengrass die Berechtigung, die Werte von Secrets mit Namen zu erhalten, die mitgreengrass.

  • PythonVersion 3.7 oder 3.8 auf dem Core-Gerät installiert und der Umgebungsvariablen PATH hinzugefügt.

    Anmerkung

    Um Python 3.8 zu verwenden, führen Sie den folgenden Befehl aus, um einen symbolischen Link vom standardmäßigen Python 3.7-Installationsordner zu den installierten Python 3.8-Binärdateien zu erstellen.

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

    Dadurch wird Ihr Gerät so konfiguriert, dass es die Python-Anforderung für AWS IoT Greengrass erfüllt.

  • Die Funktionalität des HTTP Event Collectors muss im Splunk aktiviert sein. Weitere Informationen finden Sie unter Set up and use HTTP Event Collector in Splunk Web in der Splunk-Dokumentation.

  • Ein Texttyp Secret in AWS Secrets Manager, der Ihr Splunk HTTP Event Collector Token speichert. Weitere Informationen finden Sie unterInformationen zu Event-Collectorin der Splunk-Dokumentation undErstellen eines Basis-SecretsimAWS Secrets ManagerBenutzerhandbuch.

    Anmerkung

    Um das Secret in der Secrets Manager Manager-Konsole zu erstellen, geben Sie Ihr Token auf derNur-TextTabulator. Verwenden Sie keine Anführungszeichen oder andere Formatierungen. Geben Sie in der API das Token als Wert für dasSecretStringEigentum.

  • Eine geheime Ressource in der Greengrass-Gruppe, die auf das Secrets Manager Manager-Secret verweist. Weitere Informationen finden Sie unter Bereitstellen von Secrets für den AWS IoT Greengrass Core.

Versions 1 - 2
  • AWS IoT GreengrassCore-Software v1.7 oder höher.AWS IoT Greengrassmuss für die Unterstützung lokaler Secrets konfiguriert sein, wie inSecrets Anforderungen.

    Anmerkung

    Diese Anforderung umfasst den Zugriff auf Ihre Secrets Manager Manager-Schlüssel. Wenn Sie die standardmäßige Greengrass-Servicerolle verwenden, hat Greengrass die Berechtigung, die Werte von Secrets mit Namen zu erhalten, die mitgreengrass.

  • PythonVersion 2.7 auf dem Core-Gerät installiert und der Umgebungsvariablen PATH hinzugefügt.

  • Die Funktionalität des HTTP Event Collectors muss im Splunk aktiviert sein. Weitere Informationen finden Sie unter Set up and use HTTP Event Collector in Splunk Web in der Splunk-Dokumentation.

  • Ein Texttyp Secret in AWS Secrets Manager, der Ihr Splunk HTTP Event Collector Token speichert. Weitere Informationen finden Sie unterInformationen zu Event-Collectorin der Splunk-Dokumentation undErstellen eines Basis-SecretsimAWS Secrets ManagerBenutzerhandbuch.

    Anmerkung

    Um das Secret in der Secrets Manager Manager-Konsole zu erstellen, geben Sie Ihr Token auf derNur-TextTabulator. Verwenden Sie keine Anführungszeichen oder andere Formatierungen. Geben Sie in der API das Token als Wert für dasSecretStringEigentum.

  • Eine geheime Ressource in der Greengrass-Gruppe, die auf das Secrets Manager Manager-Secret verweist. Weitere Informationen finden Sie unter Bereitstellen von Secrets für den AWS IoT Greengrass Core.

Connector-Parameter

Dieser Konnektor stellt die folgenden Parameter bereit:

Version 4
SplunkEndpoint

Der Endpunkt Ihrer Splunk-Instance. Dieser Wert muss das Protokoll, den Hostnamen und den Port enthalten.

Anzeigename imAWS IoT-Konsole Splunk-Endpunkt)

Erforderlichtrue

Typ: string

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

MemorySize

Die Speichergröße (in KB), die dem Konnektor zugewiesen werden soll.

Anzeigename imAWS IoT-Konsole Arbeitsspeichergröße

Erforderlichtrue

Typ: string

Gültiges Pattern:^[0-9]+$

SplunkQueueSize

Die maximale Anzahl von Elementen, die im Speicher gespeichert werden können, bevor die Elemente übertragen oder verworfen werden. Wenn dieses Limit erreicht wird, werden die ältesten Elemente in der Warteschlange durch neuere Elemente ersetzt. Diese Begrenzung kommt typischerweise zum tragen, wenn keine Verbindung zum Internet besteht.

Anzeigename imAWS IoT-Konsole Maximale Anzahl zu erhaltender Elemente

Erforderlichtrue

Typ: string

Gültiges Pattern:^[0-9]+$

SplunkFlushIntervalSeconds

Das Intervall (in Sekunden) für die Veröffentlichung empfangener Daten an Splunk HEC. Der maximale Wert beträgt 900. Um den Konnektor so zu konfigurieren, dass er Elemente veröffentlicht, sobald sie empfangen werden (ohne Batching), geben Sie 0 an.

Anzeigename imAWS IoT-Konsole Splunk Veröffentlichungsintervall

Erforderlichtrue

Typ: string

Gültiges Pattern:[0-9]|[1-9]\d|[1-9]\d\d|900

SplunkTokenSecretArn

Das Secret inAWS Secrets Managerdas den Splunk-Token speichert. Dies muss ein Texttyp Secret sein.

Anzeigename imAWS IoT-Konsole ARN of Splunk auth token secret (ARN des Splunk

Erforderlichtrue

Typ: string

Gültiges Pattern:arn:aws:secretsmanager:[a-z]{2}-[a-z]+-\d{1}:\d{12}?:secret:[a-zA-Z0-9-_]+-[a-zA-Z0-9-_]+

SplunkTokenSecretArn-ResourceId

Die geheime Ressource in der Greengrass-Gruppe, die auf das Splunk-Secret verweist.

Anzeigename imAWS IoT-Konsole Splunk auth token Ressource

Erforderlichtrue

Typ: string

Gültiges Pattern:.+

SplunkCustomCALocation

Der Dateipfad der benutzerdefinierten Zertifizierungsstelle (CA) für Splunk (z. B. /etc/ssl/certs/splunk.crt).

Anzeigename imAWS IoT-Konsole Ort der Splunk Custom Certificate Authority

Erforderlichfalse

Typ: string

Gültiges Pattern:^$|/.*

IsolationMode

Der Containerisierungsmodus für diesen Konnektor. Der Standardwert ist GreengrassContainer. Hierbei wird der Konnektor in einer isolierten Laufzeitumgebung innerhalb des AWS IoT Greengrass-Containers ausgeführt.

Anmerkung

Die Standardeinstellung für Containerisierung für die Gruppe gilt nicht für Konnektoren.

Anzeigename imAWS IoT-Konsole Containerisolierungsmodus

Erforderlichfalse

Typ: string

Gültige Werte: GreengrassContainer oder NoContainer.

Gültiges Pattern:^NoContainer$|^GreengrassContainer$

Version 1 - 3
SplunkEndpoint

Der Endpunkt Ihrer Splunk-Instance. Dieser Wert muss das Protokoll, den Hostnamen und den Port enthalten.

Anzeigename imAWS IoT-Konsole Splunk-Endpunkt)

Erforderlichtrue

Typ: string

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

MemorySize

Die Speichergröße (in KB), die dem Konnektor zugewiesen werden soll.

Anzeigename imAWS IoT-Konsole Arbeitsspeichergröße

Erforderlichtrue

Typ: string

Gültiges Pattern:^[0-9]+$

SplunkQueueSize

Die maximale Anzahl von Elementen, die im Speicher gespeichert werden können, bevor die Elemente übertragen oder verworfen werden. Wenn dieses Limit erreicht wird, werden die ältesten Elemente in der Warteschlange durch neuere Elemente ersetzt. Diese Begrenzung kommt typischerweise zum tragen, wenn keine Verbindung zum Internet besteht.

Anzeigename imAWS IoT-Konsole Maximale Anzahl zu erhaltender Elemente

Erforderlichtrue

Typ: string

Gültiges Pattern:^[0-9]+$

SplunkFlushIntervalSeconds

Das Intervall (in Sekunden) für die Veröffentlichung empfangener Daten an Splunk HEC. Der maximale Wert beträgt 900. Um den Konnektor so zu konfigurieren, dass er Elemente veröffentlicht, sobald sie empfangen werden (ohne Batching), geben Sie 0 an.

Anzeigename imAWS IoT-Konsole Splunk Veröffentlichungsintervall

Erforderlichtrue

Typ: string

Gültiges Pattern:[0-9]|[1-9]\d|[1-9]\d\d|900

SplunkTokenSecretArn

Das Secret inAWS Secrets Managerdas den Splunk-Token speichert. Dies muss ein Texttyp Secret sein.

Anzeigename imAWS IoT-Konsole ARN of Splunk auth token secret (ARN des Splunk

Erforderlichtrue

Typ: string

Gültiges Pattern:arn:aws:secretsmanager:[a-z]{2}-[a-z]+-\d{1}:\d{12}?:secret:[a-zA-Z0-9-_]+-[a-zA-Z0-9-_]+

SplunkTokenSecretArn-ResourceId

Die geheime Ressource in der Greengrass-Gruppe, die auf das Splunk-Secret verweist.

Anzeigename imAWS IoT-Konsole Splunk auth token Ressource

Erforderlichtrue

Typ: string

Gültiges Pattern:.+

SplunkCustomCALocation

Der Dateipfad der benutzerdefinierten Zertifizierungsstelle (CA) für Splunk (z. B. /etc/ssl/certs/splunk.crt).

Anzeigename imAWS IoT-Konsole Ort der Splunk Custom Certificate Authority

Erforderlichfalse

Typ: string

Gültiges Pattern:^$|/.*

Beispiel für das Erstellen eines Konnektors (AWS CLI)

Der folgende -CLI-Befehl erstellt eineConnectorDefinitionmit einer Initialversion, die den Splunk Integration-Konnektor enthält.

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" } } ] }'
Anmerkung

Die Lambda-Funktion in diesem Konnektor hat einelangdauerndenLebenszyklus.

In derAWS IoT Greengrass-Konsole können Sie einen Connector aus demKonnektorenangezeigten. Weitere Informationen finden Sie unter Erste Schritte mit Greengrass-Konnektoren (Konsole).

Eingabedaten

Dieser Konnektor akzeptiert Protokoll- und Ereignisdaten zu einem MQTT-Thema und veröffentlicht die empfangenen Daten an die Splunk-API. Eingabebotschaften müssen im JSON-Format vorliegen.

Themenfilter im Abonnement

splunk/logs/put

Nachrichten-Eigenschaften
request

Die Ereignisdaten, die an die Splunk-API gesendet werden sollen. Ereignisse müssen den Spezifikationen der Services/Collector-API entsprechen.

Erforderlichtrue

Type: object. Nur derevent-Eigenschaft ist erforderlich.

id

Eine willkürliche ID für die Anforderung. Diese Eigenschaft wird verwendet, um eine Eingangsanforderung auf einen Ausgangsstatus abzubilden.

Erforderlichfalse

Typ: string

Beschränkungen

Alle Beschränkungen, die durch die Splunk-API auferlegt werden, gelten für diesen Konnektor. Weitere Informationen finden Sie unter Services/Collector.

Beispieleingabe
{ "request": { "event": "some event", "fields": { "severity": "INFO", "category": [ "value1", "value2" ] } }, "id": "request123" }

Ausgabedaten

Dieser Konnektor veröffentlicht Ausgabedaten zu zwei Themen:

  • Statusinformationen zum Thema splunk/logs/put/status.

  • Fehler im Thema splunk/logs/put/error.

Themenfilter: splunk/logs/put/status

Verwenden Sie dieses Thema, um den Status der Anforderungen anzuhören. Jedes Mal, wenn der Konnektor einen Stapel empfangener Daten an die Splunk-API sendet, veröffentlicht er eine Liste der IDs der erfolgreichen und der fehlgeschlagenen Anfragen.

Beispielausgabe
{ "response": { "succeeded": [ "request123", ... ], "failed": [ "request789", ... ] } }
Themenfilter: splunk/logs/put/error

Verwenden Sie dieses Thema, um nach Fehlern vom Konnektor zu suchen. Die Eigenschaft error_message, die den Fehler oder das Timeout beschreibt, die beim Verarbeiten der Anforderung aufgetreten sind.

Beispielausgabe
{ "response": { "error": "UnauthorizedException", "error_message": "invalid splunk token", "status": "fail" } }
Anmerkung

Wenn der Konnektor einen wiederholbaren Fehler erkennt (z. B. Verbindungsfehler), versucht er die Veröffentlichung im nächsten Batch erneut.

Verwendungsbeispiele

Führen Sie die folgenden allgemeinen Schritte aus, um eine Python 3.7-Lambda-Beispielfunktion einzurichten, mit der Sie den Konnektor ausprobieren können.

Anmerkung
  1. Stellen Sie sicher, dass Sie die Anforderungen für den Konnektor erfüllen.

  2. Erstellen und veröffentlichen Sie eine Lambda-Funktion, die Eingabedaten an den Konnektor sendet.

    Speichern Sie den Beispielcode als PY-Datei. Downloaden und entpacken Sie esAWS IoT GreengrassCore SDK für Python. Erstellen Sie dann ein ZIP-Paket, das die PY-Datei und den Ordner greengrasssdk auf Stammebene enthält. Dieses ZIP-Paket ist das Bereitstellungspaket, das Sie auf hochladenAWS Lambda.

    Nachdem Sie die Python 3.7-Lambda-Funktion erstellt haben, veröffentlichen Sie eine Funktionsversion und erstellen Sie einen Alias.

  3. Konfigurieren Sie Ihre Greengrass-Gruppe.

    1. Fügen Sie die Lambda-Funktion über ihren Alias hinzu (empfohlen). Konfigurieren Sie den Lambda-Lebenszyklus als langlebig (oder"Pinned": truein der CLI).

    2. Fügen Sie die erforderliche Secret-Ressource hinzu und gewähren Sie Lesezugriff auf die Lambda-Funktion.

    3. Fügen Sie den Konnektor hinzu und konfigurieren Sie seine Parameter.

    4. Fügen Sie Abonnements hinzu, die es dem Konnektor ermöglichen, Eingabedaten zu empfangen und Ausgabedaten zu unterstützten Themenfiltern zu senden.

      • Legen Sie die Lambda-Funktion als Quelle und den Konnektor als Ziel fest und verwenden Sie einen unterstützten Eingabethemenfilter.

      • Legen Sie den Konnektor als Quelle und AWS IoT Core als Ziel fest und verwenden Sie einen unterstützten Ausgabethemenfilter. Sie verwenden dieses Abonnement zum Anzeigen von Statusmeldungen imAWS IoTconsole.

  4. Stellen Sie die Gruppe bereit.

  5. In derAWS IoTder der der der -KonsoleTestdas Thema Ausgabedaten abonnieren, um Statusmeldungen vom Connector anzuzeigen. Die Lambda-Beispielfunktion ist langlebig und beginnt sofort nach der Bereitstellung der Gruppe mit dem Senden von Nachrichten.

    Wenn Sie mit dem Testen fertig sind, können Sie den Lambda-Lebenszyklus auf On-Demand (oder"Pinned": falsein der CLI) und stellen Sie die Gruppe bereit. Dadurch wird verhindert, dass die Funktion Nachrichten sendet.

Beispiel

Die folgende Lambda-Beispielfunktion sendet eine Eingabenachricht an den Konnektor.

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

Lizenzen

Dieser Connector wird unter demLizenzvereinbarung für die Greengrass Core-Software.

Änderungsprotokoll

In der folgenden Tabelle werden die Änderungen in jeder Version des Konnektors für beschrieben.

Version

Änderungen

4

Der Parameter IsolationMode wurde hinzugefügt, um den Containerisierungsmodus für den Konnektor zu konfigurieren.

3

Lambda -Laufzeitumgebung auf Python 3.7 aktualisiert, wodurch sich die Laufzeitanforderung ändert.

2

Beheben, um übermäßige Protokollierung zu reduzieren.

1

Erstversion.

Eine Greengrass-Gruppe kann nur eine Version des Konnektors gleichzeitig enthalten. Weitere Informationen zum Aktualisieren einer Konnektorversion finden Sie unter Aktualisieren von Konnektorversionen.

Weitere Informationen finden Sie auch unter