오류를 표시하거나 예상 결과를 반환하지 않는 Amazon CloudWatch Logs Insights 쿼리 문제를 해결하려고 합니다.
해결 방법
다음과 같은 이유로 CloudWatch Logs Insights 쿼리가 오류를 반환하거나 예상 결과를 반환하지 않을 수 있습니다. 문제를 해결하려면 적절한 해결 방법을 사용하십시오.
쿼리 시간 범위의 로그 그룹에 로그가 없음
CloudWatch 콘솔에서 쿼리 결과에 나타날 것으로 예상되는 로그가 쿼리 시간 범위의 로그 그룹에 있는지 확인합니다.
로그가 쿼리 시간 범위의 로그 그룹에 있지만 쿼리 결과에는 표시되지 않음
CloudWatch Logs가 로그를 수신하면 로그를 쿼리할 수 있을 때까지 몇 분 정도 걸립니다. CloudWatch 로그의 시간 범위 및 표준 시간대가 쿼리의 시간 범위 및 표준 시간대와 동일한지 확인합니다.
CloudWatch Logs Insights 쿼리에서 filter 명령을 사용하는 경우 로그가 필터 조건과 일치해야 합니다. 또한 쿼리 시간 범위의 로그 그룹에 로그가 있어야 합니다. filter 명령 없이 CloudWatch Logs Insights 쿼리를 실행하려면 다음 명령을 실행하십시오.
fields @timestamp, @message, @logStream, @log | sort @timestamp desc | limit 20
CloudWatch Logs는 최대 14일 전의 타임스탬프가 있는 로그 이벤트를 수신할 수 있습니다. 자세한 내용은 PutLogEvents를 참조하십시오. 타임스탬프가 로그 그룹 생성 타임스탬프보다 이전인 로그 이벤트는 CloudWatch Logs Insights에서 쿼리할 수 없습니다.
WebSocket 연결 오류 발생
쿼리를 실행하려면 CloudWatch 콘솔이 네트워크에서 WebSocket에 연결되어야 합니다. 네트워크 보안 팀에서 WebSocket 사용을 허용하지 않는 경우 CloudWatch 콘솔에서 CloudWatch Logs Insights에 액세스할 수 없습니다. 대신 API 명령을 사용하여 CloudWatch Logs Insights에 액세스할 수 있습니다. 자세한 내용은 StartQuery 및 GetQueryResults를 참조하십시오.
행 제한 초과 오류 발생
쿼리에서 반환할 로그 이벤트 수를 지정하려면 limit 명령을 사용합니다. 10,000보다 큰 숫자를 지정하면 다음과 같은 오류 메시지가 나타납니다. "Row limit exceeded. Specified: 100000. Maximum: 10000 ([X,Y]) (Service: AWSLogs; Status Code: 400; Error Code: MalformedQueryException; Request ID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx; Proxy: null)."
기본적으로 최대 1,000행의 쿼리 결과가 콘솔에 표시됩니다. limit 명령을 사용하면 쿼리 결과 행을 최대 10,000개까지 늘릴 수 있습니다. 이 할당량은 변경할 수 없습니다.
CloudWatch Logs Insights 쿼리의 경우 limit에 10,000개 레코드를 사용하는 것이 가장 좋습니다. 쿼리에서 10,000개 이상의 레코드를 반환하는 경우에는 더 짧은 기간 동안 쿼리를 실행하여 더 적은 수의 레코드를 반환하십시오.
CloudWatch Logs Insights 시각화에 선형 차트가 표시되지 않고 오류가 표시됨
CloudWatch Logs Insights 시각화에 선형 차트가 표시되지 않는 경우 다음과 같은 오류 메시지가 표시될 수 있습니다. "The data is not suitable for a line chart. Try a bar chart, or group your result by bin function."
이 문제를 해결하려면 CloudWatch Logs Insights 쿼리에서 stats, aggregation 또는 bin() 함수를 사용하여 데이터를 그룹화하는지 확인하십시오. bin() 함수는 CloudWatch Logs Insights 쿼리에서 유일한 그룹화 필드여야 합니다.
"error occurred during query execution"
대량의 데이터에 대해 쿼리를 실행하려고 하는데 쿼리를 완료하는 데 더 많은 시간이 필요한 경우 이 오류가 발생합니다. 다음과 같은 CloudWatch Logs Insights 할당량을 검토하십시오.
- CloudWatch Logs Insights는 로그 그룹에서 최대 1,000개의 로그 이벤트 필드를 검색합니다.
- CloudWatch Logs Insights는 JSON 로그에서 최대 200개의 로그 이벤트 필드를 추출합니다.
- 단일 CloudWatch Logs Insights 쿼리에서 최대 50개의 로그 그룹을 쿼리할 수 있습니다.
- 표준 클래스 로그 그룹의 경우 최대 30개의 CloudWatch Logs Insights 쿼리를 동시에 실행할 수 있습니다. 여기에는 대시보드에 추가된 쿼리가 포함됩니다.
- 사용 빈도가 낮은 클래스 로그 그룹의 경우 최대 5개의 CloudWatch Logs Insights 쿼리를 동시에 실행할 수 있습니다. 여기에는 대시보드에 추가된 쿼리가 포함됩니다.
- 60분 후 CloudWatch Logs Insights의 쿼리 제한 시간이 초과됩니다.
관련 정보
CloudWatch Logs Insights로 로그 데이터 분석
CloudWatch Logs Insights 쿼리 구문
샘플 쿼리