Conector de integración de Splunk - AWS IoT Greengrass

AWS IoT Greengrass Version 1 entró en la fase de vida útil prolongada el 30 de junio de 2023. Para obtener más información, consulte la política de mantenimiento de AWS IoT Greengrass V1 Después de esta fecha, AWS IoT Greengrass V1 no se publicarán actualizaciones que proporcionen funciones, mejoras, correcciones de errores o parches de seguridad. Los dispositivos que se ejecuten AWS IoT Greengrass V1 no se verán afectados y seguirán funcionando y conectándose a la nube. Le recomendamos encarecidamente que migre a AWS IoT Greengrass Version 2, ya que añade importantes funciones nuevas y es compatible con plataformas adicionales.

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Conector de integración de Splunk

aviso

Este conector ha pasado a la fase de vida útil prolongada y AWS IoT Greengrass no lanzará actualizaciones que proporcionen funciones, mejoras de las funciones existentes, parches de seguridad o correcciones de errores. Para obtener más información, consulte AWS IoT Greengrass Version 1política de mantenimiento.

El conector de integración de Splunk publica los datos de los dispositivos Greengrass en Splunk. Esto permite usar Splunk para monitorizar y analizar el entorno del núcleo de Greengrass y actuar en eventos locales. El conector se integra con el recopilador de eventos HTTP (HEC). Para obtener más información, consulte Introduction to Splunk HTTP Event Collector en la documentación de Splunk.

Este conector recibe datos de eventos y registro en un tema de MQTT y publica los datos como están en la API de Splunk.

Puede utilizar este conector para admitir escenarios industriales como estos:

  • Los operadores pueden utilizar datos periódicos de actuadores y sensores (por ejemplo, lecturas de temperatura, presión y agua) para desencadenar alarmas cuando se superen determinados umbrales.

  • Los desarrolladores utilizar los datos recopilados de maquinaria industrial para crear modelos de machine learning que pueden monitorizar el equipamiento para buscar posibles problemas.

Este conector tiene las siguientes versiones.

Versión

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

Para obtener información sobre los cambios de versión, consulte el Registro de cambios.

Requisitos

Este conector exige los siguientes requisitos:

Version 3 - 4
  • El Software de AWS IoT Greengrass Core versión 1.9.3 o posterior AWS IoT Greengrass debe configurarse para admitir secretos locales, tal y como se describe en los requisitos de secretos

    nota

    Este requisito incluye permitir el acceso a sus secretos de Secret Manager. Si utiliza el rol de servicio predeterminado de Greengrass, Greengrass tiene permiso para obtener los valores de los secretos cuyos nombres empiecen por greengrass-.

  • Python versión 3.7 o 3.8 instalado en el dispositivo principal y añadido a la variable de entorno PATH.

    nota

    Para usar Python 3.8, ejecute el siguiente comando para crear un enlace simbólico desde la carpeta de instalación predeterminada de Python 3.7 a los binarios de Python 3.8 instalados.

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

    Esto configura su dispositivo para que cumpla con el requisito de Python para AWS IoT Greengrass.

  • La funcionalidad del recopilador de eventos HTTP debe estar habilitado en Splunk. Para obtener más información, consulte Set up and use HTTP Event Collector in Splunk Web en la documentación de Splunk.

  • Un secreto de tipo de texto en AWS Secrets Manager que almacena el token del recopilador de eventos HTTP. Para obtener más información, consulte Acerca de los tokens del recopilador de eventos en la documentación de Splunk y Creación de un secreto básico en la Guía del usuario de AWS Secrets Manager .

    nota

    Para crear el secreto en la consola de Secrets Manager, introduzca su token en la pestaña Plaintext. No incluya comillas ni ningún otro formato. En la API, especifique el token como valor de la propiedad SecretString.

  • Se crea un recurso de secretos en el grupo de Greengrass que hace referencia al secreto de Secrets Manager. Para obtener más información, consulte Implementación de secretos en el núcleo de AWS IoT Greengrass.

Versions 1 - 2
  • AWS IoT Greengrass Software Core versión 1.7 o posterior. AWS IoT Greengrass debe configurarse para admitir secretos locales, como se describe en los Requisitos de secretos.

    nota

    Este requisito incluye permitir el acceso a sus secretos de Secret Manager. Si utiliza el rol de servicio predeterminado de Greengrass, Greengrass tiene permiso para obtener los valores de los secretos cuyos nombres empiecen por greengrass-.

  • Versión 2.7 de Python instalada en el dispositivo principal y añadida a la variable de entorno PATH.

  • La funcionalidad del recopilador de eventos HTTP debe estar habilitado en Splunk. Para obtener más información, consulte Set up and use HTTP Event Collector in Splunk Web en la documentación de Splunk.

  • Un secreto de tipo de texto en AWS Secrets Manager que almacena el token del recopilador de eventos HTTP. Para obtener más información, consulte Acerca de los tokens del recopilador de eventos en la documentación de Splunk y Creación de un secreto básico en la Guía del usuario de AWS Secrets Manager .

    nota

    Para crear el secreto en la consola de Secrets Manager, introduzca su token en la pestaña Plaintext. No incluya comillas ni ningún otro formato. En la API, especifique el token como valor de la propiedad SecretString.

  • Se crea un recurso de secretos en el grupo de Greengrass que hace referencia al secreto de Secrets Manager. Para obtener más información, consulte Implementación de secretos en el núcleo de AWS IoT Greengrass.

Parámetros de conector

Este conector proporciona los siguientes parámetros:

Version 4
SplunkEndpoint

El punto de enlace de la instancia de Splunk. Este valor debe contener el protocolo, el nombre de host y el puerto.

Nombre para mostrar en la consola AWS IoT: Punto de conexión de Splunk

Obligatorio: true

Escriba: string

Patrón válido: ^(http:\/\/|https:\/\/)?[a-z0-9]+([-.]{1}[a-z0-9]+)*.[a-z]{2,5}(:[0-9]{1,5})?(\/.*)?$

MemorySize

La cantidad de memoria (en KB) para asignar al conector.

Nombre que mostrar en la consola AWS IoT: Tamaño de memoria

Obligatorio: true

Escriba: string

Patrón válido: ^[0-9]+$

SplunkQueueSize

Número máximo de elementos que se van a guardar en la memoria antes de que los elementos se envíen o descarten. Cuando se alcanza este límite, se elementos más antiguos en la cola se reemplazan por los más recientes. Este límite normalmente se aplica cuando no existe conexión a Internet.

Nombre para mostrar en la consola AWS IoT: Número máximo de elementos que se deben retener

Obligatorio: true

Escriba: string

Patrón válido: ^[0-9]+$

SplunkFlushIntervalSeconds

El intervalo (en segundos) para publicar datos recibidos en HEC de Splunk. El valor máximo es 900. Para configurar el conector con el fin de publicar elementos a medida que se reciben (sin hacerlo por lotes), especifique 0.

Nombre para mostrar en la consola AWS IoT: Intervalo de publicación de Splunk

Obligatorio: true

Escriba: string

Patrón válido: [0-9]|[1-9]\d|[1-9]\d\d|900

SplunkTokenSecretArn

El secreto en AWS Secrets Manager que almacena el token de Splunk. Esto debe ser un secreto de tipo de texto.

Nombre para mostrar en la consola AWS IoT: ARN del secreto del token de autenticación de Splunk

Obligatorio: true

Escriba: string

Patrón válido: arn:aws:secretsmanager:[a-z]{2}-[a-z]+-\d{1}:\d{12}?:secret:[a-zA-Z0-9-_]+-[a-zA-Z0-9-_]+

SplunkTokenSecretArn-ResourceId

Se crea un recurso de secretos en el grupo de Greengrass que hace referencia al secreto de Splunk.

Nombre para mostrar en la consola AWS IoT: Recurso de token de autenticación de Splunk

Obligatorio: true

Escriba: string

Patrón válido: .+

SplunkCustomCALocation

La ruta del archivo de la autoridad de certificación personalizada (CA) de Splunk (por ejemplo, /etc/ssl/certs/splunk.crt).

Nombre para mostrar en la consola AWS IoT: Ubicación de la autoridad de certificación personalizada de Splunk

Obligatorio: false

Escriba: string

Patrón válido: ^$|/.*

IsolationMode

El modo de creación de contenedores para este conector. El valor predeterminado es GreengrassContainer, lo que significa que el conector se ejecuta en un entorno de tiempo de ejecución aislado dentro del contenedor de AWS IoT Greengrass.

nota

La configuración de creación de contenedores predeterminada para el grupo no se aplica a los conectores.

Nombre para mostrar en la consola AWS IoT: Modo de aislamiento de contenedores

Obligatorio: false

Escriba: string

Valores válidos: GreengrassContainer o NoContainer

Patrón válido: ^NoContainer$|^GreengrassContainer$

Version 1 - 3
SplunkEndpoint

El punto de enlace de la instancia de Splunk. Este valor debe contener el protocolo, el nombre de host y el puerto.

Nombre para mostrar en la consola AWS IoT: Punto de conexión de Splunk

Obligatorio: true

Escriba: string

Patrón válido: ^(http:\/\/|https:\/\/)?[a-z0-9]+([-.]{1}[a-z0-9]+)*.[a-z]{2,5}(:[0-9]{1,5})?(\/.*)?$

MemorySize

La cantidad de memoria (en KB) para asignar al conector.

Nombre que mostrar en la consola AWS IoT: Tamaño de memoria

Obligatorio: true

Escriba: string

Patrón válido: ^[0-9]+$

SplunkQueueSize

Número máximo de elementos que se van a guardar en la memoria antes de que los elementos se envíen o descarten. Cuando se alcanza este límite, se elementos más antiguos en la cola se reemplazan por los más recientes. Este límite normalmente se aplica cuando no existe conexión a Internet.

Nombre para mostrar en la consola AWS IoT: Número máximo de elementos que se deben retener

Obligatorio: true

Escriba: string

Patrón válido: ^[0-9]+$

SplunkFlushIntervalSeconds

El intervalo (en segundos) para publicar datos recibidos en HEC de Splunk. El valor máximo es 900. Para configurar el conector con el fin de publicar elementos a medida que se reciben (sin hacerlo por lotes), especifique 0.

Nombre para mostrar en la consola AWS IoT: Intervalo de publicación de Splunk

Obligatorio: true

Escriba: string

Patrón válido: [0-9]|[1-9]\d|[1-9]\d\d|900

SplunkTokenSecretArn

El secreto en AWS Secrets Manager que almacena el token de Splunk. Esto debe ser un secreto de tipo de texto.

Nombre para mostrar en la consola AWS IoT: ARN del secreto del token de autenticación de Splunk

Obligatorio: true

Escriba: string

Patrón válido: arn:aws:secretsmanager:[a-z]{2}-[a-z]+-\d{1}:\d{12}?:secret:[a-zA-Z0-9-_]+-[a-zA-Z0-9-_]+

SplunkTokenSecretArn-ResourceId

Se crea un recurso de secretos en el grupo de Greengrass que hace referencia al secreto de Splunk.

Nombre para mostrar en la consola AWS IoT: Recurso de token de autenticación de Splunk

Obligatorio: true

Escriba: string

Patrón válido: .+

SplunkCustomCALocation

La ruta del archivo de la autoridad de certificación personalizada (CA) de Splunk (por ejemplo, /etc/ssl/certs/splunk.crt).

Nombre para mostrar en la consola AWS IoT: Ubicación de la autoridad de certificación personalizada de Splunk

Obligatorio: false

Escriba: string

Patrón válido: ^$|/.*

Ejemplo de creación de conector (AWS CLI)

El siguiente comando de la CLI crea una ConnectorDefinition con una versión inicial que contiene el conector de integración de 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" } } ] }'
nota

La función de Lambda de este conector tiene un ciclo de vida prolongado.

En la consola AWS IoT Greengrass, puede añadir un conector desde la página de conectores del grupo. Para obtener más información, consulte Introducción a los conectores de Greengrass (consola).

Datos de entrada

Este conector acepta datos de eventos y registro en un tema de MQTT y publica los datos recibidos como están en la API de Splunk. Los mensajes de entrada deben tener un formato JSON válido.

Filtro de temas en la suscripción

splunk/logs/put

Propiedades de mensajes
request

Los datos de eventos que se van a enviar a la API de Splunk. Los eventos debe cumplir las especificaciones de la API services/collector.

Obligatorio: true

Tipo:object Solo es obligatoria la propiedad event.

id

Un ID arbitrario para la solicitud. Esta propiedad se usa para asignar una solicitud de entrada a un estado de salida.

Obligatorio: false

Escriba: string

Límites

Todos los límites que son impuestos por la API de Splunk se aplican a las métricas cuando se utiliza este conector. Para obtener más información, consulte services/collector.

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

Datos de salida

Este conector publica los datos de salida en dos temas:

  • Información de estado en el tema splunk/logs/put/status.

  • Los errores en el tema splunk/logs/put/error.

Filtro de temas: splunk/logs/put/status

Use este tema para escuchar el estado de las solicitudes. Cada vez que el conector envía un lote de los datos recibidos a la API de Splunk, publica una lista de los ID de las solicitudes que se han realizado correctamente y las solicitudes con errores.

Ejemplo de salida
{ "response": { "succeeded": [ "request123", ... ], "failed": [ "request789", ... ] } }
Filtro de temas: splunk/logs/put/error

Use este tema para escuchar errores del conector. La propiedad error_message que describe el error o el tiempo de espera que se producen cuando se espera al procesar la solicitud.

Ejemplo de salida
{ "response": { "error": "UnauthorizedException", "error_message": "invalid splunk token", "status": "fail" } }
nota

Si el conector detecta un error que se puede volver a intentar (por ejemplo, errores de conexión), volverá a intentar la publicación en el siguiente lote.

Ejemplo de uso

Utilice los siguientes pasos de alto nivel para configurar una función de Lambda de Python 3.7 de ejemplo que puede utilizar para probar el conector.

nota
  1. Asegúrese de cumplir los requisitos para el conector.

  2. Cree y publique una función de Lambda que envíe datos de entrada al conector.

    Guarde el código de ejemplo como un archivo PY. Descargue y descomprima el SDK de Core AWS IoT Greengrass para Python. A continuación, cree un paquete zip que contenga el archivo PY y la carpeta greengrasssdk en el nivel raíz. Este paquete zip es el paquete de implementación que se carga en AWS Lambda.

    Después de crear la función de Lambda de Python 3.7, publique una versión de característica y cree un alias.

  3. Configuración del grupo de Greengrass.

    1. Agregue la función de Lambda por su alias (recomendado). Configure el ciclo de vida de Lambda como de larga duración (o "Pinned": true en la CLI).

    2. Agregue el recurso secreto requerido y conceda acceso de lectura a la función de Lambda.

    3. Agregue el conector y configure sus parámetros.

    4. Agregue suscripciones que permitan al conector recibir datos de entrada y enviar datos de salida en filtros de tema compatibles.

      • Establezca la función de Lambda como fuente, el conector como destino y utilice un filtro de tema de entrada compatible.

      • Establezca el conector como origen, AWS IoT Core como destino y utilice un filtro de tema de salida compatible. Utilice esta suscripción para ver los mensajes de estado en la consola de AWS IoT.

  4. Implemente el grupo.

  5. En la consola de AWS IoT, en la página Prueba suscríbase al tema de datos de salida para ver los mensajes de estado del conector. La función de Lambda de ejemplo es de larga duración y comienza a enviar mensajes inmediatamente después de implementar el grupo.

    Cuando haya terminado de probar, puede establecer el ciclo de vida de Lambda en Bajo demanda (o "Pinned": false en la CLI) e implementar el grupo. Esto impide que la característica envíe mensajes.

Ejemplo

El siguiente ejemplo de función de Lambda envía un mensaje de entrada al conector.

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

Licencias

Este conector se publica bajo el contrato de licencia de software de Greengrass Core.

Registro de cambios

La siguiente tabla describe los cambios en cada versión del conector.

Versión

Cambios

4

Se ha agregado el parámetro IsolationMode para configurar el modo de creación de contenedores del conector.

3

Se actualizó el tiempo de ejecución de Lambda a Python 3.7, lo que cambia el requisito de tiempo de ejecución.

2

Se ha introducido una corrección para reducir el registro excesivo.

1

Versión inicial.

Un grupo de Greengrass solo puede contener una versión del conector a la vez. Para obtener información sobre cómo actualizar una versión de conector, consulte Actualización de versiones de los conectores.

Véase también