기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
소스
쿼리SOURCE에를 포함시키는 것은 AWS CLI 또는 API를 사용하여 쿼리를 생성할 때 쿼리에 포함할 로그 그룹 및/또는 데이터 소스를 지정하는 유용한 방법입니다. SOURCE 명령은 CloudWatch 콘솔이 아닌 AWS CLI 및 API에서만 지원됩니다. CloudWatch 콘솔을 사용하여 쿼리를 시작할 때는 콘솔 인터페이스를 사용하여 로그 그룹을 지정합니다.
쿼리 로그 그룹
SOURCE를 사용하여 쿼리할 로그 그룹을 지정하려면 다음 키워드를 사용할 수 있습니다.
-
namePrefix는 지정한 문자열로 시작하는 이름이 있는 로그 그룹에 대해 쿼리를 실행합니다. 이를 생략하면 모든 로그 그룹이 쿼리됩니다.목록에 최대 5개의 접두사를 포함할 수 있습니다.
-
accountIdentifier는 지정된 AWS 계정의 로그 그룹에 대해 쿼리를 실행합니다. 이는 모니터링 계정에서 쿼리를 실행하는 경우에만 작동합니다. 이를 생략하면 연결된 모든 소스 계정과 현재 모니터링 계정을 쿼리하는 것이 기본값입니다. 교차 계정 관찰성에 대한 자세한 내용은 CloudWatch 크로스 계정 관측성을 참조하세요.목록에 최대 20개의 계정 식별자를 포함할 수 있습니다.
-
logGroupClass는 지정된 로그 클래스인 Standard 또는 Infrequent Access에 있는 로그 그룹에 대해 쿼리를 실행합니다. 이를 생략하면 기본적으로 Standard 로그 클래스가 사용됩니다. 로그 클래스에 대한 자세한 내용은 로그 클래스을 참조하세요.
이러한 방식으로 쿼리할 많은 수의 로그 그룹을 지정할 수 있으므로 생성한 필드 인덱스를 활용하는 쿼리에만 SOURCE를 사용하는 것이 좋습니다. 로그 그룹에서의 필드 인덱싱에 대한 자세한 내용은 쿼리 성능을 개선하고 스캔 볼륨을 줄이기 위한 필드 인덱스 생성 섹션을 참조하세요.
다음 예제에서는 계정의 모든 로그 그룹을 선택합니다. 모니터링 계정인 경우 모니터링 및 모든 소스 계정의 로그 그룹이 선택됩니다. 총 로그 그룹의 수가 10,000개를 초과하면 다른 로그 그룹 선택 방법을 사용하여 로그 그룹의 수를 줄이라는 오류가 표시됩니다.
SOURCE logGroups()
다음 예제에서는 111122223333 소스 계정의 로그 그룹을 선택합니다. CloudWatch 크로스 계정 관측성에서 모니터링 계정에서 쿼리를 시작하면 모든 소스 계정과 모니터링 계정의 로그 그룹이 기본적으로 선택됩니다.
SOURCE logGroups(accountIdentifier:['111122223333'])
다음 예제에서는 이름 접두사를 기반으로 로그 그룹을 선택합니다.
SOURCE logGroups(namePrefix: ['namePrefix1', 'namePrefix2'])
다음 예제에서는 Infrequent Access 로그 클래스의 모든 로그 그룹을 선택합니다. class 식별자를 포함하지 않으면 쿼리는 기본값인 Standard 로그 클래스의 로그 그룹에만 적용됩니다.
SOURCE logGroups(class: ['INFREQUENT_ACCESS'])
다음 예제에서는 특정 이름 접두사로 시작하고 Standard 로그 클래스에 있는 111122223333 계정의 로그 그룹을 선택합니다. Standard가 기본 로그 클래스 값이므로 명령에 클래스가 언급되지 않습니다.
SOURCE logGroups(accountIdentifier:['111122223333'], namePrefix: ['namePrefix1', 'namePrefix2'])
마지막 예제에서는 SOURCE 명령과 함께 start-query AWS CLI 명령을 사용하는 방법을 보여줍니다.
aws logs start-query --region us-east-1 --start-time 1729728200 --end-time 1729728215 --query-string "SOURCE logGroups(namePrefix: ['Query']) | fields @message | limit 5"
데이터 소스 쿼리
SOURCE를 사용하여 쿼리할 데이터 소스를 지정하려면 dataSource 키워드를 사용할 수 있습니다. 목록에 최대 10개의 데이터 소스를 포함할 수 있습니다.
다음 예제에서는 amazon_vpc.flow 데이터 소스를 선택합니다.
SOURCE dataSource(['amazon_vpc.flow'])
다음 예제에서는 amazon_vpc.flow 데이터 소스를 선택하고 로그 그룹 이름 접두사를 기반으로 로그 그룹을 제한합니다.
SOURCE dataSource(['amazon_vpc.flow']) logGroups(namePrefix: ['namePrefix1'])
태그별 쿼리 로그 그룹
SOURCE를 사용하여 태그별로 로그 그룹을 필터링하려면 logGroupTags 함수를 사용합니다. 각각 key 및 선택적 values 배열이 있는 태그 필터 목록으로 태그를 지정합니다.
키가 다른 여러 태그 필터가 AND 로직과 결합됩니다.
동일한 태그 필터 내의 여러 값이 OR 로직과 결합됩니다.
와일드카드 일치
*에를 사용합니다. 예를 들어는 로 시작하는 값과payment*일치합니다payment.를 부정의 접두사
!로 사용합니다. 예를 들어는가 아닌 값과!production일치합니다production.각각 최대 5개의 값을 가진 최대 5개의 태그 필터를 포함할 수 있습니다.
다음 예제에서는 태그가 지정된 모든 로그 그룹을 선택합니다team=team1 OR team=team2.
SOURCE logGroupTags([{"key":"team", "values":["team1", "team2"]}]) | fields @message, @timestamp
다음 예제에서는 service 태그가 로 시작하고 payment environment 태그가가 아닌 로그 그룹을 선택합니다production.
SOURCE logGroupTags([{"key":"service", "values":["payment*"]}, {"key":"environment", "values":["!production"]}]) | fields @message, @timestamp
다음 예제에서는 태그 필터링을 이름 접두사 필터와 결합합니다.
SOURCE logGroups(namePrefix: ['/aws/lambda']) logGroupTags([{"key":"environment", "values":["production"]}]) | fields @message, @timestamp