[Tips] 일본 시간으로 클라우드워치 로그의 로그 그룹을 지정하고 축소하는 방법
개시하다
CloudWatch Logs의 로그를 콘솔로 보면 키워드를 검색할 수 있지만 JSON의 내용을 짜서 배열할 수는 없고, 그 결과 CLI를 통해 jq를 사용해 확인하려고 한다.
따라서 CLI로 빠르게 검색할 수 있는 방법을 미리 적어 둡니다.
→(9/22 추기) 클라우드워치 로그 인사이트를 정상적으로 사용하면 하고 싶은 일을 할 수 있기 때문에 덧붙인다.앞부분filter-log-events
방법은 어떻게든 CLI를 사용하려는 경우에만 사용하는...
줄다
방법①: 시간대
그렇다면 AWS에서 CLI를 사용한다면 EC2를 사용해야 한다고 생각합니다. EC2의 기본 시간대는 UTC와 일치하기 때문에 일본 시간 내에 범위를 지정하려면 시간이 좀 걸릴 것 같습니다.
CloudWatch Logs의 검색은요.$ aws logs filter-log-events --log-group-name [ロググループ]
를 참고하십시오.
따라서 시작 날짜를 지정할 때--start-time `TZ=Asia/Tokyo date --date='2020-09-19 19:30:00.000' +%s%3N`
따라서 일본 시간에서 UTC의 타임 초로 전환할 수 있다.
%3N은 CloudWatch Logs의 정밀도를 밀리초로 설정합니다.
방법 ② "~분 전"
이게 더 쉬워.다음과 같이 지정할 수 있습니다.--start-time `date -d '60 minutes ago' +%s%3N`
jq에서 편집
CLI에서 JSON 출력의 경우 다음과 같이 출력됩니다.{
"searchedLogStreams": [
{
"searchedCompletely": true,
"logStreamName": "ログストリーム名"
},
…
],
"events": [
{
"ingestionTime": 1600511663343,
"timestamp": 1600511656660,
"message": "ログ出力内容",
"eventId": "イベントID",
"logStreamName": "ログストリーム名"
},
…
]
}
그래서 jq 명령으로jq -r '.events[].message'
이런 느낌으로 파이프를 줄게.
그리고 파이썬 같은 json.dumps () 로 출력 dict형을 기록하면{
"ingestionTime": 1600515840844,
"timestamp": 1600515834171,
"message": "{\"messageId\": \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\", \"sendDatetime\": \"2020/09/19 11:42:21.746000\", \"receiveDateTime\": \"2020/09/19 11:43:54.171187\"}\n",
"eventId": "イベントID",
"logStreamName": "ログストリーム名"
}
라는 느낌에서 벗어나 때로는 예쁘게 입지 못할 때도 있다.
이럴 때jq -r '.events[].message | fromjson'
이렇게 하면 예쁜 JSON이 될 수 있어요.
정형화된 메시지 내용을 더 좋아하기 위해 jq로 편집하세요!
CloudWatch Logs Insight를 사용하는 경우
관리 콘솔에서 찾기
원래 관리 콘솔 화면이라면 일본 시간으로 나오기 때문에 너무 많이 고려할 필요가 없다.
Cloud Watch Logs Insights는 검색된 문서를 이해하기 어렵습니다. 예를 들어{
"request_id": "9f60b4a7be765ba5542bdf3c110c4743",
"id": "00000002",
"writeDateTime": "2020-09-22 03:50:55.205087",
"relayDateTime": "2020-09-22 03:50:56.350505",
"processedDateTime": "2020-09-22 03:50:58.388614"
}
이 형식으로 로그를 쓰는 줄을 조회하려면 선택하십시오fields request_id, id, writeDateTime, relayDateTime, processedDateTime
| filter request_id == '9f60b4a7be765ba5542bdf3c110c4743'
| sort id
그러면
이런 느낌으로 좋은 출력을 얻을 수 있고 오른쪽 상단의'결과 내보내기'단추도 CSV 형식으로 얻을 수 있기 때문에 데이터 편집을 아주 간단하게 할 수 있습니다!
CLI에서 찾기
CLI 에서는 다음 명령을 사용하여 검색합니다.
Filter-log-events와의 차이점은 --filter-pattern
와--start-time
가 필수 매개 변수라는 점이다.그나저나 이 순간은 에포크초로 전달해야 하는 미묘한 방식이기 때문에 ↑의 축소 방법을 사용할 수 있다.$ aws logs start-query \
--log-group-name '/aws/lambda/dynamodb-streams-test-receive-function' \
--start-time `date -d '60 minutes ago' +%s%3N` \
--end-time `date +%s%3N` \
--query-string 'fields request_id, id, writeDateTime, relayDateTime, processedDateTime
| filter request_id == "9f60b4a7be765ba5542bdf3c110c4743"
| sort id'
이렇게 내보냅니다.{
"queryId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
질의 ID로$ aws logs get-query-results --query-id 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'
이렇게 하면 검색 결과를 얻을 수 있다.
그러나 이렇게 출력된 결과는 jq 명령을 독자적으로 편집하지 않으면 사용할 수 없기 때문에 CLI로 검색하는 것은 의미가 크지 않습니다.
Reference
이 문제에 관하여([Tips] 일본 시간으로 클라우드워치 로그의 로그 그룹을 지정하고 축소하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/neruneruo/items/eac2ab18686aba0fe483
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
방법①: 시간대
그렇다면 AWS에서 CLI를 사용한다면 EC2를 사용해야 한다고 생각합니다. EC2의 기본 시간대는 UTC와 일치하기 때문에 일본 시간 내에 범위를 지정하려면 시간이 좀 걸릴 것 같습니다.
CloudWatch Logs의 검색은요.
$ aws logs filter-log-events --log-group-name [ロググループ]
를 참고하십시오.따라서 시작 날짜를 지정할 때
--start-time `TZ=Asia/Tokyo date --date='2020-09-19 19:30:00.000' +%s%3N`
따라서 일본 시간에서 UTC의 타임 초로 전환할 수 있다.%3N은 CloudWatch Logs의 정밀도를 밀리초로 설정합니다.
방법 ② "~분 전"
이게 더 쉬워.다음과 같이 지정할 수 있습니다.
--start-time `date -d '60 minutes ago' +%s%3N`
jq에서 편집
CLI에서 JSON 출력의 경우 다음과 같이 출력됩니다.{
"searchedLogStreams": [
{
"searchedCompletely": true,
"logStreamName": "ログストリーム名"
},
…
],
"events": [
{
"ingestionTime": 1600511663343,
"timestamp": 1600511656660,
"message": "ログ出力内容",
"eventId": "イベントID",
"logStreamName": "ログストリーム名"
},
…
]
}
그래서 jq 명령으로jq -r '.events[].message'
이런 느낌으로 파이프를 줄게.
그리고 파이썬 같은 json.dumps () 로 출력 dict형을 기록하면{
"ingestionTime": 1600515840844,
"timestamp": 1600515834171,
"message": "{\"messageId\": \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\", \"sendDatetime\": \"2020/09/19 11:42:21.746000\", \"receiveDateTime\": \"2020/09/19 11:43:54.171187\"}\n",
"eventId": "イベントID",
"logStreamName": "ログストリーム名"
}
라는 느낌에서 벗어나 때로는 예쁘게 입지 못할 때도 있다.
이럴 때jq -r '.events[].message | fromjson'
이렇게 하면 예쁜 JSON이 될 수 있어요.
정형화된 메시지 내용을 더 좋아하기 위해 jq로 편집하세요!
CloudWatch Logs Insight를 사용하는 경우
관리 콘솔에서 찾기
원래 관리 콘솔 화면이라면 일본 시간으로 나오기 때문에 너무 많이 고려할 필요가 없다.
Cloud Watch Logs Insights는 검색된 문서를 이해하기 어렵습니다. 예를 들어{
"request_id": "9f60b4a7be765ba5542bdf3c110c4743",
"id": "00000002",
"writeDateTime": "2020-09-22 03:50:55.205087",
"relayDateTime": "2020-09-22 03:50:56.350505",
"processedDateTime": "2020-09-22 03:50:58.388614"
}
이 형식으로 로그를 쓰는 줄을 조회하려면 선택하십시오fields request_id, id, writeDateTime, relayDateTime, processedDateTime
| filter request_id == '9f60b4a7be765ba5542bdf3c110c4743'
| sort id
그러면
이런 느낌으로 좋은 출력을 얻을 수 있고 오른쪽 상단의'결과 내보내기'단추도 CSV 형식으로 얻을 수 있기 때문에 데이터 편집을 아주 간단하게 할 수 있습니다!
CLI에서 찾기
CLI 에서는 다음 명령을 사용하여 검색합니다.
Filter-log-events와의 차이점은 --filter-pattern
와--start-time
가 필수 매개 변수라는 점이다.그나저나 이 순간은 에포크초로 전달해야 하는 미묘한 방식이기 때문에 ↑의 축소 방법을 사용할 수 있다.$ aws logs start-query \
--log-group-name '/aws/lambda/dynamodb-streams-test-receive-function' \
--start-time `date -d '60 minutes ago' +%s%3N` \
--end-time `date +%s%3N` \
--query-string 'fields request_id, id, writeDateTime, relayDateTime, processedDateTime
| filter request_id == "9f60b4a7be765ba5542bdf3c110c4743"
| sort id'
이렇게 내보냅니다.{
"queryId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
질의 ID로$ aws logs get-query-results --query-id 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'
이렇게 하면 검색 결과를 얻을 수 있다.
그러나 이렇게 출력된 결과는 jq 명령을 독자적으로 편집하지 않으면 사용할 수 없기 때문에 CLI로 검색하는 것은 의미가 크지 않습니다.
Reference
이 문제에 관하여([Tips] 일본 시간으로 클라우드워치 로그의 로그 그룹을 지정하고 축소하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/neruneruo/items/eac2ab18686aba0fe483
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
{
"searchedLogStreams": [
{
"searchedCompletely": true,
"logStreamName": "ログストリーム名"
},
…
],
"events": [
{
"ingestionTime": 1600511663343,
"timestamp": 1600511656660,
"message": "ログ出力内容",
"eventId": "イベントID",
"logStreamName": "ログストリーム名"
},
…
]
}
jq -r '.events[].message'
{
"ingestionTime": 1600515840844,
"timestamp": 1600515834171,
"message": "{\"messageId\": \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\", \"sendDatetime\": \"2020/09/19 11:42:21.746000\", \"receiveDateTime\": \"2020/09/19 11:43:54.171187\"}\n",
"eventId": "イベントID",
"logStreamName": "ログストリーム名"
}
jq -r '.events[].message | fromjson'
관리 콘솔에서 찾기
원래 관리 콘솔 화면이라면 일본 시간으로 나오기 때문에 너무 많이 고려할 필요가 없다.
Cloud Watch Logs Insights는 검색된 문서를 이해하기 어렵습니다. 예를 들어
{
"request_id": "9f60b4a7be765ba5542bdf3c110c4743",
"id": "00000002",
"writeDateTime": "2020-09-22 03:50:55.205087",
"relayDateTime": "2020-09-22 03:50:56.350505",
"processedDateTime": "2020-09-22 03:50:58.388614"
}
이 형식으로 로그를 쓰는 줄을 조회하려면 선택하십시오fields request_id, id, writeDateTime, relayDateTime, processedDateTime
| filter request_id == '9f60b4a7be765ba5542bdf3c110c4743'
| sort id
그러면이런 느낌으로 좋은 출력을 얻을 수 있고 오른쪽 상단의'결과 내보내기'단추도 CSV 형식으로 얻을 수 있기 때문에 데이터 편집을 아주 간단하게 할 수 있습니다!
CLI에서 찾기
CLI 에서는 다음 명령을 사용하여 검색합니다.
Filter-log-events와의 차이점은
--filter-pattern
와--start-time
가 필수 매개 변수라는 점이다.그나저나 이 순간은 에포크초로 전달해야 하는 미묘한 방식이기 때문에 ↑의 축소 방법을 사용할 수 있다.$ aws logs start-query \
--log-group-name '/aws/lambda/dynamodb-streams-test-receive-function' \
--start-time `date -d '60 minutes ago' +%s%3N` \
--end-time `date +%s%3N` \
--query-string 'fields request_id, id, writeDateTime, relayDateTime, processedDateTime
| filter request_id == "9f60b4a7be765ba5542bdf3c110c4743"
| sort id'
이렇게 내보냅니다.{
"queryId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
질의 ID로$ aws logs get-query-results --query-id 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'
이렇게 하면 검색 결과를 얻을 수 있다.그러나 이렇게 출력된 결과는 jq 명령을 독자적으로 편집하지 않으면 사용할 수 없기 때문에 CLI로 검색하는 것은 의미가 크지 않습니다.
Reference
이 문제에 관하여([Tips] 일본 시간으로 클라우드워치 로그의 로그 그룹을 지정하고 축소하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/neruneruo/items/eac2ab18686aba0fe483텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)