Python에서 boto3를 사용하여 Cloudwatch 로그를 쿼리하는 방법

심란 카 우르

Cloudwatch에 메트릭을 쓰는 람다 함수가 있습니다. 메트릭을 작성하는 동안 로그 그룹에 일부 로그를 생성합니다.

INFO:: username: [email protected] ClinicID: 7667 nodename: MacBook-Pro-2.local

INFO:: username: [email protected] ClinicID: 7667 nodename: MacBook-Pro-2.local

INFO:: username: [email protected] ClinicID: 7668 nodename: MacBook-Pro-2.local

INFO:: username: [email protected] ClinicID: 7667 nodename: MacBook-Pro-2.local

지난 x몇 시간 동안의 AWS 로그를 쿼리하고 싶습니다. 여기서 x는 임의의 매개 변수를 기반으로 12 ~ 24 시간 사이에있을 수 있습니다.

예 :

  1. 지난 5 시간 동안 Cloudwatch 로그 쿼리 ClinicID=7667

또는

  1. 쿼리 CloudWatch를가 최근 5 시간 기록 곳 ClinicID=7667username='[email protected]'

또는

  1. 지난 5 시간 동안 Cloudwatch 로그 쿼리 username='[email protected]'

boto3파이썬에서 사용 하고 있습니다. 방향을 알려주 시겠어요?

데잔 페레 틴

CloudWatch Logs Insights를 사용하여 원하는 것을 얻을 수 있습니다.

다음을 사용 start_query하고 get_query_results: API를 https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/logs.html

쿼리를 시작하려면 다음을 사용합니다 (질문의 사용 사례 2의 경우 1과 3은 유사 함).

import boto3
from datetime import datetime, timedelta
import time

client = boto3.client('logs')

query = "fields @timestamp, @message | parse @message \"username: * ClinicID: * nodename: *\" as username, ClinicID, nodename | filter ClinicID = 7667 and username='[email protected]'"  

log_group = '/aws/lambda/NAME_OF_YOUR_LAMBDA_FUNCTION'

start_query_response = client.start_query(
    logGroupName=log_group,
    startTime=int((datetime.today() - timedelta(hours=5)).timestamp()),
    endTime=int(datetime.now().timestamp()),
    queryString=query,
)

query_id = start_query_response['queryId']

response = None

while response == None or response['status'] == 'Running':
    print('Waiting for query to complete ...')
    time.sleep(1)
    response = client.get_query_results(
        queryId=query_id
    )

응답에는 다음 형식의 데이터 (및 일부 메타 데이터)가 포함됩니다.

{
  'results': [
    [
      {
        'field': '@timestamp',
        'value': '2019-12-09 17:07:24.428'
      },
      {
        'field': '@message',
        'value': 'username: [email protected] ClinicID: 7667 nodename: MacBook-Pro-2.local\n'
      },
      {
        'field': 'username',
        'value': '[email protected]'
      },
      {
        'field': 'ClinicID',
        'value': '7667'
      },
      {
        'field': 'nodename',
        'value': 'MacBook-Pro-2.local\n'
      }
    ]
  ]
}

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Python에서 boto3를 사용하여 Cloudwatch 로그를 필터링하는 방법

분류에서Dev

boto3를 사용하여 Cloudwatch 로그 그룹에 태그를 추가하는 방법은 무엇입니까?

분류에서Dev

Python에서 boto3을 사용하여 고유 값에 대한 Cloudwatch 로그 쿼리

분류에서Dev

cloudsearch boto3에서 filterQuery 및 queryOptions를 사용하는 방법

분류에서Dev

boto3 RDS 클라이언트 Python을 사용하여 AWS Lambda에서 RDS SQL Server 선택 쿼리를 실행하는 방법은 무엇입니까?

분류에서Dev

boto3를 사용하여 공개 IP를 얻는 방법

분류에서Dev

boto3를 사용하여 mturk에서 HIT를 확장 할 때 datetime 오류를 수정하는 방법

분류에서Dev

boto3에서 http 메소드를 변경하는 방법

분류에서Dev

boto3를 사용하여 Amazon Glacier Deep Archive에 파일을 업로드하는 방법

분류에서Dev

boto3를 사용하여 DynamoDB에서 모든 항목을 검색하는 방법은 무엇입니까?

분류에서Dev

Amazon Cloudwatch Insights에서 하위 쿼리를 필터링하는 방법

분류에서Dev

C # .net Core를 사용하여 Cloudwatch 로그 이벤트에 액세스하는 방법

분류에서Dev

AWS Fargate-Python boto3를 사용하여 작업의 퍼블릭 IP 주소를 가져 오는 방법

분류에서Dev

Python (boto3)을 사용하여 CloudWatch 에이전트가있는 EC2 인스턴스를 확인하려면 어떻게해야합니까?

분류에서Dev

선택에서 하위 쿼리를 사용하여 SQL 쿼리를 .NET Core 쿼리로 변환하는 방법

분류에서Dev

Cloudwatch를 사용하여 AWS Step Function에 상수 값을 전달하는 방법

분류에서Dev

boto3를 사용하여 Glacier Deep Archive에서 아카이브를 로컬로 다운로드하는 방법은 무엇입니까?

분류에서Dev

boto3 python을 사용하여 s3의 두 객체에 태그를 지정하는 방법입니다.

분류에서Dev

Airflow S3 Hook 또는 boto3를 사용하는 csv.gzip 인 디렉터리에서 여러 파일을 읽는 방법은 무엇입니까?

분류에서Dev

boto3 라이브러리가있는 버전을 사용하여 s3에서 객체를 가져 오는 방법은 무엇입니까?

분류에서Dev

LDAP에서 여러 사용자를 쿼리하는 방법

분류에서Dev

일시 중지를 위해 boto3에서 AWS Polly를 사용하는 방법

분류에서Dev

boto3를 사용하여 S3에서 항목에 액세스하고 해당 내용을 읽는 방법 ()

분류에서Dev

boto3를 사용하여 공용 버킷에서 다운로드

분류에서Dev

파일이 localstorage에있는 동안 boto3를 사용하여 s3에 파일을 업로드하는 방법

분류에서Dev

R에서 sqldf를 사용하여 하위 쿼리를 수행하는 방법

분류에서Dev

boto3를 사용하는 IAM 사용자에게 S3 버킷에 대한 전체 권한을 부여하는 방법은 무엇입니까?

분류에서Dev

Boto3를 사용하여 프로그래밍 방식으로 IAM 사용자의 UserID 가져 오기

분류에서Dev

ElasticSearch에서 불용어를 사용하여 구문을 쿼리하는 방법

Related 관련 기사

  1. 1

    Python에서 boto3를 사용하여 Cloudwatch 로그를 필터링하는 방법

  2. 2

    boto3를 사용하여 Cloudwatch 로그 그룹에 태그를 추가하는 방법은 무엇입니까?

  3. 3

    Python에서 boto3을 사용하여 고유 값에 대한 Cloudwatch 로그 쿼리

  4. 4

    cloudsearch boto3에서 filterQuery 및 queryOptions를 사용하는 방법

  5. 5

    boto3 RDS 클라이언트 Python을 사용하여 AWS Lambda에서 RDS SQL Server 선택 쿼리를 실행하는 방법은 무엇입니까?

  6. 6

    boto3를 사용하여 공개 IP를 얻는 방법

  7. 7

    boto3를 사용하여 mturk에서 HIT를 확장 할 때 datetime 오류를 수정하는 방법

  8. 8

    boto3에서 http 메소드를 변경하는 방법

  9. 9

    boto3를 사용하여 Amazon Glacier Deep Archive에 파일을 업로드하는 방법

  10. 10

    boto3를 사용하여 DynamoDB에서 모든 항목을 검색하는 방법은 무엇입니까?

  11. 11

    Amazon Cloudwatch Insights에서 하위 쿼리를 필터링하는 방법

  12. 12

    C # .net Core를 사용하여 Cloudwatch 로그 이벤트에 액세스하는 방법

  13. 13

    AWS Fargate-Python boto3를 사용하여 작업의 퍼블릭 IP 주소를 가져 오는 방법

  14. 14

    Python (boto3)을 사용하여 CloudWatch 에이전트가있는 EC2 인스턴스를 확인하려면 어떻게해야합니까?

  15. 15

    선택에서 하위 쿼리를 사용하여 SQL 쿼리를 .NET Core 쿼리로 변환하는 방법

  16. 16

    Cloudwatch를 사용하여 AWS Step Function에 상수 값을 전달하는 방법

  17. 17

    boto3를 사용하여 Glacier Deep Archive에서 아카이브를 로컬로 다운로드하는 방법은 무엇입니까?

  18. 18

    boto3 python을 사용하여 s3의 두 객체에 태그를 지정하는 방법입니다.

  19. 19

    Airflow S3 Hook 또는 boto3를 사용하는 csv.gzip 인 디렉터리에서 여러 파일을 읽는 방법은 무엇입니까?

  20. 20

    boto3 라이브러리가있는 버전을 사용하여 s3에서 객체를 가져 오는 방법은 무엇입니까?

  21. 21

    LDAP에서 여러 사용자를 쿼리하는 방법

  22. 22

    일시 중지를 위해 boto3에서 AWS Polly를 사용하는 방법

  23. 23

    boto3를 사용하여 S3에서 항목에 액세스하고 해당 내용을 읽는 방법 ()

  24. 24

    boto3를 사용하여 공용 버킷에서 다운로드

  25. 25

    파일이 localstorage에있는 동안 boto3를 사용하여 s3에 파일을 업로드하는 방법

  26. 26

    R에서 sqldf를 사용하여 하위 쿼리를 수행하는 방법

  27. 27

    boto3를 사용하는 IAM 사용자에게 S3 버킷에 대한 전체 권한을 부여하는 방법은 무엇입니까?

  28. 28

    Boto3를 사용하여 프로그래밍 방식으로 IAM 사용자의 UserID 가져 오기

  29. 29

    ElasticSearch에서 불용어를 사용하여 구문을 쿼리하는 방법

뜨겁다태그

보관