AWS IoT 로깅 구성 - AWS IoT Core

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

AWS IoT 로깅 구성

AWS IoT 활동을 모니터링하고 로깅API하려면 AWS IoT 콘솔, CLI또는 를 사용하여 로깅을 활성화해야 합니다.

모든 사물 그룹에 대해 로깅을 활성화 AWS IoT 하거나 특정 사물 그룹에 대해서만 로깅을 활성화할 수 있습니다. AWS IoT 콘솔, CLI또는 를 사용하여 AWS IoT 로깅을 구성할 수 API있지만 또는 를 사용하여 특정 사물 그룹에 대한 로깅CLIAPI을 구성해야 합니다.

AWS IoT 로깅을 구성하는 방법을 고려할 때 달리 지정하지 않는 한 기본 로깅 구성에 따라 AWS IoT 활동이 로깅되는 방법이 결정됩니다. 시작할 때 기본 로그 수준INFO 또는 DEBUG인 자세한 로그를 얻고 싶을 수 있습니다. 초기 로그를 검토한 후 기본 로그 수준을 WARN 또는 ERROR처럼 덜 자세한 수준으로 변경하고 더 많은 주의가 필요할 수 있는 리소스에 대해 좀 더 자세한 리소스별 로그 수준을 설정할 수 있습니다. 로그 수준은 언제든 변경할 수 있습니다.

이 주제에서는 의 클라우드 측 로깅을 다룹니다 AWS IoT. 디바이스 측 로깅 및 모니터링에 대한 자세한 내용은 에 디바이스 측 로그 업로드를 참조하세요 CloudWatch.

로깅 및 모니터링에 대한 자세한 내용은 의 로깅 및 모니터링을 AWS IoT Greengrass AWS IoT Greengrass참조하세요. 2023년 6월 30일부터 AWS IoT Greengrass Core 소프트웨어가 로 마이그레이션되었습니다 AWS IoT Greengrass Version 2.

로깅 역할 및 정책 구성

에 로그인을 활성화하려면 먼저 사용자를 대신하여 AWS IoT 활동을 모니터링할 수 있는 AWS 권한을 부여하는 IAM 역할 및 정책을 생성 AWS IoT해야 합니다. 콘솔의 로그 섹션에서 필요한 정책으로 IAM 역할을 생성할 수도 있습니다. AWS IoT

참고

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

로드 테스트 AWS IoT Core 로 인해 에서 트래픽 패턴이 많을 것으로 예상되는 경우 제한 방지를 위해 IoT 로깅을 끄는 것이 좋습니다. 트래픽이 많이 감지되면 서비스에서 계정 로그인을 비활성화할 수 있습니다.

다음은 AWS IoT Core 리소스에 대한 로깅 역할 및 정책을 생성하는 방법을 보여줍니다.

로깅 역할 생성

로깅 역할을 생성하려면 IAM 콘솔의 역할 허브를 열고 역할 생성을 선택합니다.

  1. Select trusted entity(신뢰할 수 있는 엔터티 선택)에서 AWS Service를 선택합니다. 그런 다음 Use case(사용 사례)에서 IoT를 선택합니다. IoT가 표시되지 않는 경우 Use cases for other AWS services: 드롭다운 메뉴에서 IoT를 입력하고 검색합니다. 다음을 선택합니다.

  2. Add permissions(권한 추가) 페이지에서 서비스 역할에 자동으로 연결되는 정책이 표시됩니다. Next(다음)를 선택합니다.

  3. Name, review, and create(이름 지정, 검토 및 생성) 페이지에서 해당 역할의 Role name(역할 이름) 및 Role description(역할 설명)을 입력하고 Create role(역할 생성)을 선택합니다.

  4. 역할 목록에서 생성한 역할을 찾아 열고 역할ARN(logging-role-arn)를 사용하여 를 사용할 수 있습니다AWS IoT (콘솔)에 기본 로깅 구성.

로깅 역할 정책

다음 정책 문서는 가 CloudWatch 사용자를 대신하여 AWS IoT 에 로그 항목을 제출할 수 있도록 허용하는 역할 정책 및 신뢰 정책을 제공합니다. 또한 AWS IoT Core 가 LoRaWAN 로그 항목을 제출하도록 허용한 경우 두 활동을 모두 로그하는 정책 문서가 생성됩니다.

참고

정책 문서는 로깅 역할을 생성할 때 사용자를 위해 작성됩니다. 문서에는 변수가 있고 ${partition}, ${region}, 및 ${accountId}를 값으로 바꿔야 합니다.

역할 정책:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:PutMetricFilter", "logs:PutRetentionPolicy", "iot:GetLoggingOptions", "iot:SetLoggingOptions", "iot:SetV2LoggingOptions", "iot:GetV2LoggingOptions", "iot:SetV2LoggingLevel", "iot:ListV2LoggingLevels", "iot:DeleteV2LoggingLevel" ], "Resource": [ "arn:${partition}:logs:${region}:${accountId}:log-group:AWSIotLogsV2:*" ] } ] }

AWS IoT Core 활동만 로깅하는 신뢰 정책:

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

AWS IoT (콘솔)에 기본 로깅 구성

이 섹션에서는 AWS IoT 콘솔을 사용하여 모든 에 대한 로깅을 구성하는 방법을 설명합니다 AWS IoT. 특정 사물 그룹에 대해서만 로깅을 구성하려면 CLI 또는 를 사용해야 합니다API. 특정 사물 그룹에 대한 로깅 구성에 대한 자세한 내용은 단원을 참조하세요리소스별 로그인 AWS IoT 구성(CLI)

AWS IoT 콘솔을 사용하여 모든 AWS IoT
  1. AWS IoT 콘솔에 로그인합니다. 자세한 내용은 AWS IoT 콘솔 열기 단원을 참조하십시오.

  2. 왼쪽 탐색 창에서 설정을 선택합니다. Settings(설정) 페이지의 Logs(로그) 섹션에서 Manage logs(로그 관리)를 선택합니다.

    Logs(로그) 페이지에는 모든 AWS IoT에서 사용하는 로깅 역할 및 세부 사항 수준이 표시됩니다.

    로그 역할과 세부 수준을 표시하는 로그 페이지입니다.
  3. Logs(로그) 페이지에서 Select role(역할 선택)을 선택하여 로깅 역할 생성에서 생성한 역할을 지정하거나 Create Role(역할 생성)을 선택하여 로깅에 사용할 새 역할을 생성합니다.

    로그 역할 및 로그 수준을 표시하는 로그 페이지입니다.
  4. 로그에 표시할 로그 항목의 세부 수준을 설명하는 CloudWatch 로그 수준을 선택합니다.

  5. 업데이트를 선택하여 변경 사항을 저장합니다.

로깅을 활성화한 후 CloudWatch 콘솔에서 AWS IoT 로그 보기로 이동하여 로그 항목을 보는 방법에 대해 자세히 알아보세요.

기본 로그인 구성 AWS IoT (CLI)

이 섹션에서는 를 AWS IoT 사용하여 에 대한 글로벌 로깅을 구성하는 방법을 설명합니다CLI.

참고

사용하려는 역할의 Amazon 리소스 이름(ARN)이 필요합니다. 로깅에 사용할 역할을 만들어야 하는 경우 계속하기 전에 로깅 역할 생성 단원을 참조하세요.

를 호출하는 데 사용되는 보안 주체는 로깅 역할에 역할 권한 전달 대한 가 API 있어야 합니다.

여기에 표시된 CLI 명령에 해당하는 의 메 AWS API서드를 사용하여 를 API 사용하여 이 절차를 수행할 수도 있습니다.

CLI 를 사용하여 에 대한 기본 로깅을 구성하려면 AWS IoT
  1. set-v2-logging-options 명령을 사용하여 계정에 대한 로깅 옵션을 설정합니다.

    aws iot set-v2-logging-options \ --role-arn logging-role-arn \ --default-log-level log-level

    여기서 각 항목은 다음과 같습니다.

    --role-arn

    CloudWatch 로그의 로그에 쓸 수 ARN 있는 AWS IoT 권한을 부여하는 역할입니다.

    --default-log-level

    사용할 로그 수준입니다. 유효한 값은 ERROR, WARN, INFO, DEBUG 또는 DISABLED입니다.

    --no-disable-all-logs

    모든 AWS IoT 로깅을 활성화하는 선택적 파라미터입니다. 이 파라미터를 사용하여 현재 비활성화되어 있는 로깅을 활성화합니다.

    --disable-all-logs

    모든 AWS IoT 로깅을 비활성화하는 선택적 파라미터입니다. 현재 활성화된 로깅을 비활성화하려면 이 파라미터를 사용합니다.

  2. get-v2-logging-options 명령을 사용하여 현재 로깅 옵션을 가져옵니다.

    aws iot get-v2-logging-options

로깅을 활성화한 후 CloudWatch 콘솔에서 AWS IoT 로그 보기로 이동하여 로그 항목을 보는 방법에 대해 자세히 알아보세요.

참고

AWS IoT 는 계정에 대한 전역 로깅을 설정하고 가져오기 위해 이전 명령(set-logging-optionsget-logging-options)을 계속 지원합니다. 이러한 명령을 사용할 때 결과 로그에는 JSON페이로드가 아닌 일반 텍스트가 포함되어 있으며 로깅 지연 시간이 일반적으로 더 높다는 점에 유의하세요. 이러한 이전 명령의 구현은 더 이상 개선되지 않을 것입니다. "v2" 버전을 사용하여 로깅 옵션을 구성하고, 가능하다면 이전 버전을 사용하는 레거시 애플리케이션을 변경할 것을 권장합니다.

리소스별 로그인 AWS IoT 구성(CLI)

이 섹션에서는 를 AWS IoT 사용하여 에 대한 리소스별 로깅을 구성하는 방법을 설명합니다CLI. 리소스별 로깅에서는 특정 사물 그룹의 로깅 수준을 지정할 수도 있습니다.

사물 그룹에는 계층적 관계를 만들기 위해 다른 사물 그룹이 포함될 수 있습니다. 이 절차에서는 단일 사물 그룹의 로깅을 구성하는 방법에 대해 설명합니다. 계층 구조의 상위 사물 그룹에 이 절차를 적용하여 해당 계층 구조의 모든 사물 그룹에 대한 로깅을 구성할 수 있습니다. 하위 사물 그룹에 이 절차를 적용하여 상위 그룹의 로깅 구성을 재정의할 수도 있습니다.

사물 그룹 외에도 디바이스의 클라이언트 ID, 소스 IP 및 보안 주체 ID와 같은 대상을 로깅할 수 있습니다.

참고

사용하려는 역할의 Amazon 리소스 이름(ARN)이 필요합니다. 로깅에 사용할 역할을 만들어야 하는 경우 계속하기 전에 로깅 역할 생성 단원을 참조하세요.

를 호출하는 데 사용되는 보안 주체는 로깅 역할에 역할 권한 전달 대한 가 API 있어야 합니다.

여기에 표시된 CLI 명령에 해당하는 의 메 AWS API서드를 사용하여 를 API 사용하여 이 절차를 수행할 수도 있습니다.

CLI 를 사용하여 에 대한 리소스별 로깅을 구성하려면 AWS IoT
  1. set-v2-logging-options 명령을 사용하여 계정에 대한 로깅 옵션을 설정합니다.

    aws iot set-v2-logging-options \ --role-arn logging-role-arn \ --default-log-level log-level

    여기서 각 항목은 다음과 같습니다.

    --role-arn

    CloudWatch 로그의 로그에 쓸 수 ARN 있는 AWS IoT 권한을 부여하는 역할입니다.

    --default-log-level

    사용할 로그 수준입니다. 유효한 값은 ERROR, WARN, INFO, DEBUG 또는 DISABLED입니다.

    --no-disable-all-logs

    모든 AWS IoT 로깅을 활성화하는 선택적 파라미터입니다. 이 파라미터를 사용하여 현재 비활성화되어 있는 로깅을 활성화합니다.

    --disable-all-logs

    모든 AWS IoT 로깅을 비활성화하는 선택적 파라미터입니다. 현재 활성화된 로깅을 비활성화하려면 이 파라미터를 사용합니다.

  2. set-v2-logging-level 명령을 사용하여 사물 그룹에 대한 리소스별 로깅을 구성합니다.

    aws iot set-v2-logging-level \ --log-target targetType=THING_GROUP,targetName=thing_group_name \ --log-level log_level
    --log-target

    로깅을 구성하는 리소스의 유형과 이름입니다. target_type 값은 THING_GROUP | CLIENT_ID | SOURCE_IP | PRINCIPAL_ID 중 하나여야 합니다. 로그 대상 파라미터 값은 이전 명령 예제와 같이 텍스트이거나 다음 예제와 같은 JSON 문자열일 수 있습니다.

    aws iot set-v2-logging-level \ --log-target '{"targetType": "THING_GROUP","targetName": "thing_group_name"}' \ --log-level log_level
    --log-level

    특정 리소스에 대한 로그를 작성할 때 사용하는 로깅 수준입니다. 유효한 값은 DEBUG, INFO, ERROR, WARN, DISABLED입니다.

    aws iot set-v2-logging-level \ --log-target targetType=CLIENT_ID,targetName=ClientId1 \ --log-level DEBUG
  3. list-v2-logging-levels 명령을 사용하여 현재 구성된 로깅 수준을 나열합니다.

    aws iot list-v2-logging-levels
  4. delete-v2-logging-level 명령을 사용하여 다음 예와 같이 리소스별 로깅 수준을 삭제합니다.

    aws iot delete-v2-logging-level \ --target-type "THING_GROUP" \ --target-name "thing_group_name"
    aws iot delete-v2-logging-level \ --target-type=CLIENT_ID --target-name=ClientId1
    --targetType

    target_type 값은 THING_GROUP | CLIENT_ID | SOURCE_IP | PRINCIPAL_ID 중 하나여야 합니다.

    --targetName

    로깅 수준을 제거할 사물 그룹의 이름입니다.

로깅을 활성화한 후 CloudWatch 콘솔에서 AWS IoT 로그 보기로 이동하여 로그 항목을 보는 방법에 대해 자세히 알아보세요.

로그 수준

이러한 로그 수준은 기록되는 이벤트를 결정하고, 기본 및 리소스별 로그 수준에 적용됩니다.

ERROR

작업을 실패하게 만든 오류입니다.

로그에는 ERROR 정보만 포함됩니다.

WARN

시스템에서 불일치를 초래할 수는 있지만 반드시 작업이 실패하지는 않는 모든 것입니다.

로그에는 ERROR 및 WARN 정보가 포함됩니다.

INFO

사물 흐름에 대한 상위 수준 정보입니다.

로그에는 INFO, ERROR및 WARN 정보가 포함됩니다.

DEBUG

문제 디버깅에 도움이 될 수 있는 정보입니다.

로그에는 DEBUG, INFOERROR, 및 WARN 정보가 포함됩니다.

DISABLED

모든 로깅이 비활성화됩니다.