CloudWatch 로그 설정 - AWS IoT Analytics

CloudWatch 로그 설정

Amazon CloudWatch로 AWS IoT Analytics 지원 로깅. PutLoggingOptions 명령을 사용하여 AWS IoT Analytics에 대한 Amazon CloudWatch 로깅을 활성화 및 구성할 수 있습니다. 이 섹션에서는 AWS Identiy and Access Management(IAM) 및 Amazon CloudWatch를 사용하여 설정해야 하는 명령 및 권한에 대해 설명합니다.

CloudWatch Logs에 대한 자세한 내용은 Amazon CloudWatch Logs 사용 설명서를 참조하십시오. AWS IAM에 대한 자세한 내용은 AWS Identity and Access Management 사용 설명서를 참조하십시오.

참고

AWS IoT Analytics 로깅을 활성화하기 전에 CloudWatch 로그 액세스 권한을 이해해야 합니다. CloudWatch 로그 액세스 권한이 있는 사용자는 디버깅 정보를 볼 수 있습니다. Amazon CloudWatch Logs에 대한 인증 및 액세스 제어를 참조하십시오.

로깅 역할 생성

먼저 로깅을 수행할 수 있는 권한을 가진 AWS IAM 역할을 생성해야 합니다. AWS IAM 콘솔이나 다음과 같은 AWS IAM 명령을 사용합니다.

나중에 AWS IoT Analytics PutLoggingOptions 명령을 호출할 때 이 역할의 ARN을 사용합니다. 다음은 이 AWS IAM 역할에 연결해야 하는 신뢰 정책(CreateRole에 사용) 및 역할 정책(PutRolePolicy에 사용)입니다.

trust policy:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": [ "Service": "iotanalytics.amazonaws.com" ], "Action": "sts:AssumeRole" } ] }

role policy:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream" ], "Resource": [ "arn:aws:logs:*:*:*" ] } ] }

또한 AWS IoT Analytics에 다음 Amazon CloudWatch 명령을 사용하여 Amazon CloudWatch에 로그 이벤트를 집어넣는 권한을 부여해야 합니다.

다음 리소스 정책을 사용합니다.

resource policy:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "iotanalytics.amazonaws.com" }, "Action": "logs:PutLogEvents", "Resource": "*" } ] }

로깅 구성 및 활성화

PutLoggingOptions 명령을 사용하여 AWS IoT Analytics에 대한 Amazon CloudWatch 로깅을 구성 및 활성화합니다. loggingOptions 필드의 roleArn은 이전 섹션에서 생성이 완료된 역할의 ARN이어야 합니다. 또한 DescribeLoggingOptions 명령을 사용하여 로깅 옵션 설정을 점검할 수 있습니다.

PutLoggingOptions

AWS IoT Analytics 로깅 옵션을 설정하거나 업데이트합니다.

loggingOptions 필드 값을 업데이트한 경우 변경 사항이 적용되기까지 최대 1분이 소요될 수 있습니다. 또한 roleArn 필드에서 지정한 역할에 연결된 정책을 변경하는 경우(예: 잘못된 정책 수정), 변경 사항이 적용되기까지 최대 5분이 소요될 수 있습니다.

CLI 시놉시스:

aws iotanalytics put-logging-options --logging-options <value> [--cli-input-json <value>] [--generate-cli-skeleton]

cli-input-json 형식:

{ "loggingOptions": { "roleArn": "string", "level": "string", "enabled": "boolean" } }

fields:

  • loggingOptions

    유형: LoggingOptions

    AWS IoT Analytics 로깅 옵션의 새 값입니다.

  • roleArn

    유형: 문자열; (길이 - 최대:2048 최소:20)

    AWS IoT Analytics에 로깅 수행 권한을 부여하는 역할의 ARN입니다.

  • 수준

    유형: 문자열

    로깅 수준입니다. 현재는 "오류"만 지원됩니다. 열거형: 오류

  • enabled

    유형: 부울

    True인 경우 AWS IoT Analytics에 대한 로깅이 활성화됩니다.

결과:

없음

오류:

  • InvalidRequestException

    요청이 유효하지 않습니다.

    HTTP 응답 코드: 400

  • InternalFailureException

    내부적으로 실패가 발생했습니다.

    HTTP 응답 코드: 500

  • ServiceUnavailableException

    서비스를 일시적으로 사용할 수 없습니다.

    HTTP 응답 코드: 503

  • ThrottlingException

    요청 제한 때문에 요청이 거부되었습니다.

    HTTP 응답 코드: 429

DescribeLoggingOptions

AWS IoT Analytics 로깅 옵션의 현재 설정을 가져옵니다.

CLI 시놉시스:

aws iotanalytics describe-logging-options [--cli-input-json <value>] [--generate-cli-skeleton]

cli-input-json 형식:

{ }

fields:

결과:

{ "loggingOptions": { "roleArn": "string", "level": "string", "enabled": "boolean" } }

fields:

  • loggingOptions

    유형: LoggingOptions

    AWS IoT Analytics 로깅 옵션의 현재 설정입니다.

  • roleArn

    유형: 문자열; (길이 - 최대:2048 최소:20)

    AWS IoT Analytics에 로깅 수행 권한을 부여하는 역할의 ARN입니다.

  • 수준

    유형: 문자열

    로깅 수준입니다. 현재는 "오류"만 지원됩니다. 열거형: 오류

  • enabled

    유형: 부울

    True인 경우 AWS IoT Analytics에 대한 로깅이 활성화됩니다.

오류:

  • InvalidRequestException

    요청이 유효하지 않습니다.

    HTTP 응답 코드: 400

  • ResourceNotFoundException

    지정한 이름을 가진 리소스를 찾을 수 없습니다.

    HTTP 응답 코드: 404

  • InternalFailureException

    내부적으로 실패가 발생했습니다.

    HTTP 응답 코드: 500

  • ServiceUnavailableException

    서비스를 일시적으로 사용할 수 없습니다.

    HTTP 응답 코드: 503

  • ThrottlingException

    요청 제한 때문에 요청이 거부되었습니다.

    HTTP 응답 코드: 429

네임스페이스, 지표 및 차원

AWS IoT Analytics는 다음 지표들을 Amazon CloudWatch 리포지토리에 제공합니다.

네임스페이스

AWS/IoTAnalytics

지표 설명

ActionExecution

실행된 작업의 수입니다.

ActivityExecutionError

파이프라인 활동을 실행하는 동안 생성된 오류의 수입니다.

IncomingMessages

채널로 들어오는 메시지의 수입니다.

차원 설명

ActionType

모니터링하는 작업의 유형입니다.

ChannelName

모니터링하는 채널의 이름입니다.

DatasetName

모니터링하는 데이터 세트의 이름입니다.

DatastoreName

모니터링하는 데이터 스토어의 이름입니다.

PipelineActivityName

모니터링하는 파이프라인 활동의 이름입니다.

PipelineActivityType

모니터링하는 파이프라인 활동의 유형입니다.

PipelineName

모니터링하는 파이프라인의 이름입니다.