Splunk 통합 커넥터 - AWS IoT Greengrass

다음에 대한 설명서를 보고 있습니다.AWS IoT Greengrass Version 1.AWS IoT Greengrass Version 2의 최신 주요 버전입니다AWS IoT Greengrass. 사용에 관한 자세한 내용은 단원을 참조하십시오.AWS IoT Greengrass V2에 대한 자세한 내용은AWS IoT Greengrass Version 2개발자 안내서.

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Splunk 통합 커넥터

Splunk Integration커넥터은 Greengrass 디바이스의 데이터를 Splunk에 게시합니다. 이렇게 하면 Greengrass 코어 환경을 Splunk로 모니터링 및 분석하고 로컬 이벤트를 처리할 수 있습니다. 이 커넥터는 HEC(HTTP Event Collector)와 통합됩니다. 자세한 내용은 Splunk 설명서의 Introduction to Splunk HTTP Event Collector를 참조하십시오.

이 커넥터는 MQTT 주제에 대한 로깅 및 이벤트 데이터를 수신하고 이 데이터를 있는 그대로 Splunk API에 게시합니다.

이 커넥터를 사용하여 다음과 같은 산업 시나리오를 지원할 수 있습니다.

  • 작업자는 액추에이터와 센서에서 주기적으로 전송하는 데이터 (예: 온도, 압력, 물 판독값) 를 사용하여 값이 특정 임계값을 초과하면 경보를 시작할 수 있습니다.

  • 개발자는 산업 장비에서 수집한 데이터로 ML 모델을 빌드하고, 이것으로 장비를 모니터링하여 잠재적 문제를 파악할 수 있습니다.

이 커넥터에는 다음과 같은 버전이 있습니다.

버전

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

버전 변경 사항에 대한 자세한 내용은 Changelog를 참조하십시오.

Requirements

이 커넥터에는 다음과 같은 요구 사항이 있습니다.

Version 3 - 4
  • AWS IoT Greengrass코어 소프트웨어 v1.9.3 이상.AWS IoT Greengrass에 설명된 대로 로컬 암호를 지원하도록 를 구성해야 합니다.Secrets 암호.

    참고

    이 요구 사항에는 보안 Secrets Manager 에 대한 액세스 허용이 포함됩니다. 기본 Greengrass 서비스 역할을 사용 중인 경우 Greengrass 는 로 시작하는 이름을 가진 암호의 값을 가져올 수 있는 권한을 갖습니다.Greengrass—.

  • Python코어 디바이스에 설치되고 PATH 환경 변수에 추가된 Python 버전 3.7입니다.

    참고

    파이썬 3.8을 사용하려면 설치된 파이썬 3.8 바이너리에 기본 파이썬 3.7 설치 폴더에서 심볼릭 링크를 만들려면 다음 명령을 실행합니다.

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

    이렇게 하면 AWS IoT Greengrass에 대한 Python 요구 사항을 충족하도록 디바이스가 구성됩니다.

  • Splunk에서 HTTP Event Collector 기능이 활성화되어 있어야 합니다. 자세한 내용은 Splunk 설명서의 Set up and use HTTP Event Collector in Splunk Web을 참조하십시오.

  • Splunk HTTP Event Collector 토큰을 저장하는 AWS Secrets Manager의 텍스트 유형 암호입니다. 자세한 내용은 단원을 참조하십시오.이벤트 수집기 토큰를 Splunk 설명서와기본 보안 암호 생성AWS Secrets Manager사용 설명서.

    참고

    Secrets Manager 콘솔에서 암호를 만들려면일반 텍스트탭을 클릭합니다. 따옴표나 다른 서식은 포함하지 마십시오. API에서 토큰의 값으로 지정SecretString속성입니다.

  • 암호 Secrets Manager 암호를 참조하는 Greengrass 그룹의 암호 리소스입니다. 자세한 정보는 AWS IoT Greengrass 코어에 암호 배포을 참조하십시오.

Versions 1 - 2
  • AWS IoT Greengrass코어 소프트웨어 v1.7 이상.AWS IoT Greengrass에 설명된 대로 로컬 암호를 지원하도록 를 구성해야 합니다.Secrets 암호.

    참고

    이 요구 사항에는 보안 Secrets Manager 에 대한 액세스 허용이 포함됩니다. 기본 Greengrass 서비스 역할을 사용 중인 경우 Greengrass 는 로 시작하는 이름을 가진 암호의 값을 가져올 수 있는 권한을 갖습니다.Greengrass—.

  • Python코어 디바이스에 설치되고 PATH 환경 변수에 추가된 버전 2.7입니다.

  • Splunk에서 HTTP Event Collector 기능이 활성화되어 있어야 합니다. 자세한 내용은 Splunk 설명서의 Set up and use HTTP Event Collector in Splunk Web을 참조하십시오.

  • Splunk HTTP Event Collector 토큰을 저장하는 AWS Secrets Manager의 텍스트 유형 암호입니다. 자세한 내용은 단원을 참조하십시오.이벤트 수집기 토큰를 Splunk 설명서와기본 보안 암호 생성AWS Secrets Manager사용 설명서.

    참고

    Secrets Manager 콘솔에서 암호를 만들려면일반 텍스트탭을 클릭합니다. 따옴표나 다른 서식은 포함하지 마십시오. API에서 토큰의 값으로 지정SecretString속성입니다.

  • 암호 Secrets Manager 암호를 참조하는 Greengrass 그룹의 암호 리소스입니다. 자세한 정보는 AWS IoT Greengrass 코어에 암호 배포을 참조하십시오.

커넥터 매개변수

이 커넥터는 다음 파라미터를 제공합니다.

Version 4
SplunkEndpoint

Splunk 인스턴스의 엔드포인트입니다. 이 값은 프로토콜, 호스트 이름 및 포트를 포함해야 합니다.

의 표시 이름AWS IoT콘솔: Splunk 엔드포인트

: 필수true

형식: string

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

MemorySize

커넥터에 할당할 메모리 양(KB)입니다.

의 표시 이름AWS IoT콘솔: 메모리 크기

: 필수true

형식: string

Pattern:^[0-9]+$

SplunkQueueSize

메모리에 저장할 수 있는 최대 항목 수로, 이 수를 넘어서면 항목을 제출하거나 폐기합니다. 이 한도에 도달하면 대기열에서 가장 오래된 항목부터 새 항목으로 바꿉니다. 이러한 제한은 흔히 인터넷에 연결되어 있지 않을 때 적용됩니다.

의 표시 이름AWS IoT콘솔: 보존할 최대 항목

: 필수true

형식: string

Pattern:^[0-9]+$

SplunkFlushIntervalSeconds

수신된 데이터를 Splunk HEC에 게시하는 간격(초)입니다. 최대값은 900입니다. 항목이 수신될 때 항목을 게시하도록 커넥터를 구성하려면 0을 지정합니다.

의 표시 이름AWS IoT콘솔: Splunk 게시 간격

: 필수true

형식: string

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

SplunkTokenSecretArn

보안 암호AWS Secrets ManagerSplunk 토큰을 저장하는 것입니다. 텍스트 유형의 암호여야 합니다.

의 표시 이름AWS IoT콘솔: ARN of Splunk 토큰 암호의 ARN

: 필수true

형식: string

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

SplunkTokenSecretArn-ResourceId

Splunk 암호를 참조하는 Greengrass 그룹의 암호 리소스입니다.

의 표시 이름AWS IoT콘솔: Splunk 인증 토큰 리소스

: 필수true

형식: string

Pattern:.+

SplunkCustomCALocation

Splunk에 대한 사용자 지정 CA(인증 기관)의 파일 경로입니다(예: /etc/ssl/certs/splunk.crt).

의 표시 이름AWS IoT콘솔: Splunk 사용자 지정 인증 기관 위치

: 필수false

형식: string

Pattern:^$|/.*

IsolationMode

이 커넥터의 컨테이너화 모드입니다. 기본값은 GreengrassContainer이며 이는 커넥터가 AWS IoT Greengrass 컨테이너 내부의 격리된 런타임 환경에서 실행됨을 의미합니다.

참고

그룹의 기본 컨테이너화 설정은 커넥터에는 적용되지 않습니다.

의 표시 이름AWS IoT콘솔: 컨테이너 격리 모드

: 필수false

형식: string

유효한 값: GreengrassContainer 또는 NoContainer

Pattern:^NoContainer$|^GreengrassContainer$

Version 1 - 3
SplunkEndpoint

Splunk 인스턴스의 엔드포인트입니다. 이 값은 프로토콜, 호스트 이름 및 포트를 포함해야 합니다.

의 표시 이름AWS IoT콘솔: Splunk 엔드포인트

: 필수true

형식: string

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

MemorySize

커넥터에 할당할 메모리 양(KB)입니다.

의 표시 이름AWS IoT콘솔: 메모리 크기

: 필수true

형식: string

Pattern:^[0-9]+$

SplunkQueueSize

메모리에 저장할 수 있는 최대 항목 수로, 이 수를 넘어서면 항목을 제출하거나 폐기합니다. 이 한도에 도달하면 대기열에서 가장 오래된 항목부터 새 항목으로 바꿉니다. 이러한 제한은 흔히 인터넷에 연결되어 있지 않을 때 적용됩니다.

의 표시 이름AWS IoT콘솔: 보존할 최대 항목

: 필수true

형식: string

Pattern:^[0-9]+$

SplunkFlushIntervalSeconds

수신된 데이터를 Splunk HEC에 게시하는 간격(초)입니다. 최대값은 900입니다. 항목이 수신될 때 항목을 게시하도록 커넥터를 구성하려면 0을 지정합니다.

의 표시 이름AWS IoT콘솔: Splunk 게시 간격

: 필수true

형식: string

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

SplunkTokenSecretArn

보안 암호AWS Secrets ManagerSplunk 토큰을 저장하는 것입니다. 텍스트 유형의 암호여야 합니다.

의 표시 이름AWS IoT콘솔: ARN of Splunk 토큰 암호의 ARN

: 필수true

형식: string

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

SplunkTokenSecretArn-ResourceId

Splunk 암호를 참조하는 Greengrass 그룹의 암호 리소스입니다.

의 표시 이름AWS IoT콘솔: Splunk 인증 토큰 리소스

: 필수true

형식: string

Pattern:.+

SplunkCustomCALocation

Splunk에 대한 사용자 지정 CA(인증 기관)의 파일 경로입니다(예: /etc/ssl/certs/splunk.crt).

의 표시 이름AWS IoT콘솔: Splunk 사용자 지정 인증 기관 위치

: 필수false

형식: string

Pattern:^$|/.*

커넥터 만들기 예(AWS CLI)

다음 CLI 명령은ConnectorDefinitionSplunk 통합 커넥터가 포함된 초기 버전을 사용합니다.

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

이 커넥터의 Lambda 함수에는수명이 긴 함수수명 주기

에서AWS IoT Greengrass콘솔에서 커넥터를 추가할 수 있습니다.커넥터페이지로 이동합니다. 자세한 정보는 Greengrass 커넥터 시작하기(콘솔)을 참조하십시오.

입력 데이터

이 커넥터는 MQTT 주제에 대한 로깅 및 이벤트 데이터를 수락하고 수신된 데이터를 있는 그대로 Splunk API에 게시합니다. 입력 메시지는 JSON 형식이어야 합니다.

구독의 주제 필터

splunk/logs/put

메시지 속성
request

Splunk API로 보낼 이벤트 데이터입니다. 이벤트는 services/collector API의 사양을 충족해야 합니다.

: 필수true

Type: object. 만event속성은 필수입니다.

id

요청에 대한 임의의 ID입니다. 이 속성은 입력 요청을 출력 상태에 매핑하는 데 사용됩니다.

: 필수false

형식: string

제한

이 커넥터를 사용할 때는 Splunk API에서 부과하는 제한이 모두 적용됩니다. 자세한 내용은 services/collector를 참조하십시오.

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

출력 데이터

이 커넥터는 다음 두 가지 주제에 대한 출력 데이터를 게시합니다.

  • splunk/logs/put/status 주제에 대한 상태 정보

  • splunk/logs/put/error 주제에 대한 오류.

주제 필터: splunk/logs/put/status

요청의 상태를 수신하려면 이 주제를 사용합니다. 커넥터는 수신된 데이터 배치를 Splunk API에 전송할 때마다 성공한 요청과 실패한 요청의 ID 목록을 게시합니다.

출력 예
{ "response": { "succeeded": [ "request123", ... ], "failed": [ "request789", ... ] } }
주제 필터: splunk/logs/put/error

커넥터로부터 오류를 수신하려면 이 주제를 사용합니다. 요청을 처리하는 동안 발생한 오류 또는 시간 초과를 설명하는 error_message 속성입니다.

출력 예
{ "response": { "error": "UnauthorizedException", "error_message": "invalid splunk token", "status": "fail" } }
참고

커넥터에서 재시도 가능한 오류 (예: 연결 오류) 를 감지하면 다음 배치에서 게시를 다시 시도합니다.

사용 예

다음 상위 수준 단계를 사용하여 커넥터를 사용해 보는 데 이용할 수 있는 예제 Python 3.7 Lambda 함수를 설정합니다.

참고
  • 다른 Python 런타임을 사용하는 경우 Python 3.7으로 심볼 링크를 만들 수 있습니다.

  • 커넥터 시작하기(콘솔)커넥터 시작하기(CLI) 주제에는 예제 Twilio 알림 커넥터를 구성하고 배포하는 방법을 보여주는 자세한 단계가 포함되어 있습니다.

  1. 커넥터에 대한 요구 사항을 충족하는지 확인합니다.

  2. 입력 데이터를 커넥터로 보내는 함수를 생성하고 게시합니다.

    예제 코드를 PY 파일로 저장합니다. 를 다운로드하고 압축을 해제합니다.AWS IoT GreengrassPython용 SDK. 그런 다음 루트 수준에서 PY 파일과 greengrasssdk 폴더를 포함하는 zip 패키지를 생성합니다. 이 zip 패키지는 에 업로드하는 배포 패키지입니다.AWS Lambda.

    Python 3.7 Lambda 함수를 생성한 후 함수 버전을 게시하고 별칭을 만듭니다.

  3. Greengrass 그룹을 구성합니다.

    1. 별칭으로 Lambda 함수를 추가합니다 (권장). Lambda 수명 주기를 수명이 긴 함수 (또는"Pinned": trueCLI에서).

    2. 필요한 보안 리소스를 추가하고 Lambda 함수에 대한 읽기 액세스 권한을 부여합니다.

    3. 커넥터를 추가하고 해당 파라미터를 구성합니다.

    4. 커넥터가 입력 데이터를 수신하고 지원되는 주제 필터에서 출력 데이터를 전송할 수 있도록 허용하는 구독을 추가합니다.

      • Lambda 함수를 소스로, 커넥터를 대상으로 설정하고 지원되는 입력 주제 필터를 사용합니다.

      • 커넥터를 소스로, AWS IoT Core를 대상으로 설정하고 지원되는 출력 주제 필터를 사용합니다. 이 구독을 사용하여 에서 상태 메시지를 확인합니다.AWS IoT콘솔입니다.

  4. 그룹을 배포합니다.

  5. 에서AWS IoT콘솔의테스트페이지에서 출력 데이터 주제를 구독하여 커넥터의 상태 메시지를 확인합니다. 예제 Lambda 함수는 수명이 긴 함수로 그룹이 배포된 직후 메시지 전송을 시작합니다.

    테스트를 마치면 Lambda 수명 주기를 온디맨드 함수 (또는"Pinned": false그리고 그룹을 배포합니다. 이렇게 하면 함수가 메시지 전송을 중지합니다.

Example

다음 예제 Lambda 함수는 입력 메시지를 커넥터로 보냅니다.

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

Licenses

이 커넥터는 Greengrass 코어 소프트웨어 라이선스 계약에 따라 릴리스됩니다.

Changelog

다음 표에서는 커넥터의 각 커넥터의 버전 변경사항에 대해 설명합니다.

버전

변경

4

커넥터에 대한 컨테이너화 모드를 구성하는 IsolationMode 파라미터가 추가되었습니다.

3

런타임 요구 사항을 변경하는 Python 3.7로 런Lambda 임을 업그레이드했습니다.

2

과도한 로깅을 줄이도록 고정합니다.

1

최초 릴리스.

Greengrass 그룹에는 한 번에 커넥터의 버전 하나만 포함될 수 있습니다. 커넥터 버전 업그레이드에 대한 자세한 내용은 커넥터 버전 업그레이드 단원을 참조하십시오.

다음 사항도 참조하세요.