Amazon CloudWatch Logs에 MySQL 로그 게시 - Amazon Relational Database Service

Amazon CloudWatch Logs에 MySQL 로그 게시

Amazon CloudWatch Logs의 로그 그룹에 로그 데이터를 게시하도록 MySQL DB 인스턴스를 구성할 수 있습니다. CloudWatch Logs를 통해 로그 데이터에 대한 실시간 분석을 수행할 수 있고, CloudWatch를 사용하여 경보를 만들고 지표를 볼 수 있습니다. CloudWatch Logs를 사용하여 내구성이 뛰어난 스토리지에 로그 레코드를 저장할 수 있습니다.

Amazon RDS는 각 MySQL 데이터베이스 로그를 로그 그룹에 개별적인 데이터베이스 스트림으로 게시합니다. 예를 들어 느린 쿼리 로그를 포함하도록 내보내기 함수를 구성하면 느린 쿼리 데이터가 /aws/rds/instance/my_instance/slowquery 로그 그룹의 느린 쿼리 로그 스트림에 저장됩니다.

오류 로그는 기본적으로 활성화됩니다. 다음 표에는 기타 MySQL 로그의 요구 사항이 요약되어 있습니다.

로그 요구 사항

감사 로그

DB 인스턴스는 MARIADB_AUDIT_PLUGIN 옵션과 함께 사용자 지정 옵션 그룹을 사용해야 합니다.

일반 로그

DB 인스턴스는 파라미터 설정 general_log = 1과 함께 사용자 지정 파라미터 그룹을 사용하여 일반 로그를 활성화해야 합니다.

느린 쿼리 로그

DB 인스턴스는 파라미터 설정 slow_query_log = 1과 함께 사용자 지정 파라미터 그룹을 사용하여 느린 쿼리 로그를 활성화해야 합니다.

로그 출력

DB 인스턴스는 파라미터 설정 log_output = FILE과 함께 사용자 지정 파라미터 그룹을 사용하여 로그를 파일 시스템에 쓰고 CloudWatch Logs에 게시해야 합니다.

콘솔을 사용하여 MySQL 로그를 CloudWatch Logs에 게시하려면
  1. https://console.aws.amazon.com/rds/에서 Amazon RDS 콘솔을 엽니다.

  2. 탐색 창에서 데이터베이스를 선택한 다음 변경하려는 DB 인스턴스를 선택합니다.

  3. 수정을 선택합니다.

  4. 로그 내보내기 섹션에서 CloudWatch Logs에 게시하기 시작할 로그를 선택합니다.

  5. [Continue]를 선택한 후, 요약 페이지에서 [Modify DB Instance]를 선택합니다.

AWS CLI를 사용하여 MySQL 로그를 게시할 수 있습니다. 다음 파라미터로 modify-db-instance 명령을 호출할 수 있습니다.

  • --db-instance-identifier

  • --cloudwatch-logs-export-configuration

참고

--cloudwatch-logs-export-configuration 옵션에 대한 변경 사항은 항상 DB 인스턴스에 즉시 적용됩니다. 따라서 --apply-immediately--no-apply-immediately 옵션은 지정해도 아무런 효과가 없습니다.

또 다음 AWS CLI 명령을 호출해 MySQL 로그를 게시할 수 있습니다.

다음 옵션으로 AWS CLI 명령 중 하나를 실행합니다.

  • --db-instance-identifier

  • --enable-cloudwatch-logs-exports

  • --db-instance-class

  • --engine

실행하는 AWS CLI 명령에 따라 다른 옵션이 필요할 수 있습니다.

다음 예에서는 CloudWatch Logs에 로그 파일을 게시하도록 기존 MySQL DB 인스턴스를 수정합니다. --cloudwatch-logs-export-configuration 값은 JSON 객체입니다. 이 객체에 대한 키는 EnableLogTypes이며, 해당 값은 audit, error, generalslowquery의 조합을 사용하는 문자열의 배열입니다.

Linux, macOS 또는 Unix 대상:

aws rds modify-db-instance \ --db-instance-identifier mydbinstance \ --cloudwatch-logs-export-configuration '{"EnableLogTypes":["audit","error","general","slowquery"]}'

Windows의 경우:

aws rds modify-db-instance ^ --db-instance-identifier mydbinstance ^ --cloudwatch-logs-export-configuration '{"EnableLogTypes":["audit","error","general","slowquery"]}'

다음 예에서는 CloudWatch Logs에 로그 파일을 게시하도록 MySQL DB 인스턴스를 생성합니다. --enable-cloudwatch-logs-exports 값은 문자열의 JSON 배열입니다. 문자열은 audit, error, generalslowquery의 조합일 수 있습니다.

Linux, macOS 또는 Unix 대상:

aws rds create-db-instance \ --db-instance-identifier mydbinstance \ --enable-cloudwatch-logs-exports '["audit","error","general","slowquery"]' \ --db-instance-class db.m4.large \ --engine MySQL

Windows의 경우:

aws rds create-db-instance ^ --db-instance-identifier mydbinstance ^ --enable-cloudwatch-logs-exports '["audit","error","general","slowquery"]' ^ --db-instance-class db.m4.large ^ --engine MySQL

RDS API를 사용하여 MySQL 로그를 게시할 수 있습니다. 다음 파라미터로 ModifyDBInstance 작업을 호출할 수 있습니다.

  • DBInstanceIdentifier

  • CloudwatchLogsExportConfiguration

참고

CloudwatchLogsExportConfiguration 파라미터에 대한 변경 사항은 항상 DB 인스턴스에 즉시 적용됩니다. 따라서 ApplyImmediately 파라미터는 지정해도 아무런 효과가 없습니다.

또한 다음 RDS API 작업을 호출해 MySQL 로그를 게시할 수 있습니다.

다음 파라미터로 RDS API 작업 중 하나를 실행합니다.

  • DBInstanceIdentifier

  • EnableCloudwatchLogsExports

  • Engine

  • DBInstanceClass

실행하는 AWS CLI 명령에 따라 다른 파라미터가 필요할 수 있습니다.