로깅을 구성합니다 AWS IoT . - AWS IoT Core

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

로깅을 구성합니다 AWS IoT .

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

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

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마이그레이션되었습니다.

로깅 역할 및 정책 구성

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

참고

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(권한 추가) 페이지에서 서비스 역할에 자동으로 연결되는 정책이 표시됩니다. 다음을 선택합니다.

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

  4. 역할 목록에서 생성한 역할을 찾아 열고 나중에 사용할 역할 ARN (logging-role-arn) 을 복사합니다. AWS IoT (콘솔)에 기본 로깅 구성

로깅 역할 정책

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

참고

정책 문서는 로깅 역할을 생성할 때 사용자를 위해 작성됩니다. 문서에 있는 변수 ${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)

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

참고

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

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

여기에 표시된 CLI 명령에 해당하는 API의 메서드를 사용하여 AWS 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

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

    --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)

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

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

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

참고

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

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

여기에 표시된 CLI 명령에 해당하는 API의 메서드를 사용하여 AWS 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

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

    --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, INFO, ERROR 및 WARN 정보가 포함됩니다.

DISABLED

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