

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 데이터베이스 로그
<a name="database-logs"></a>

MySQL 및 MariaDB 데이터베이스는 감사 및 문제 해결을 위해 액세스할 수 있는 로그를 생성합니다. 이러한 로그는 다음과 같습니다.
+ [감사](https://mariadb.com/kb/en/mariadb-audit-plugin-log-format/) - 감사 추적은 서버 활동을 로깅하는 레코드 세트입니다. 각 클라이언트 세션에서 서버에 연결된 사용자(사용자 이름 및 호스트), 실행된 쿼리, 액세스된 테이블, 변경된 서버 변수를 기록합니다.
+ [오류](https://dev.mysql.com/doc/refman/8.0/en/error-log.html) - 이 로그에는 서버의 (`mysqld`) 시작 및 종료 시간과 서버 시작 및 종료 도중 그리고 서버가 실행되는 동안 발생하는 오류, 경고, 참고 사항과 같은 진단 메시지가 포함됩니다.
+ [일반](https://dev.mysql.com/doc/refman/8.0/en/query-log.html) - 이 로그에는 각 클라이언트의 연결 및 연결 해제 활동과 클라이언트로부터 수신된 SQL 쿼리를 포함하여 `mysqld`의 활동을 기록합니다. 일반 쿼리 로그는 오류가 의심되고 클라이언트가 `mysqld`로 전송한 내용을 정확히 알고 싶을 때 매우 유용할 수 있습니다.
+ [느린 쿼리](https://dev.mysql.com/doc/refman/8.0/en/slow-query-log.html) - 이 로그는 수행하는 데 시간이 오래 걸린 SQL 쿼리의 레코드를 제공합니다.

모범 사례는 [Amazon RDS에서 Amazon CloudWatch Logs로 데이터베이스 로그를 게시](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_LogAccess.Procedural.UploadtoCloudWatch.html)하는 것입니다. CloudWatch Logs를 통해 로그 데이터에 대한 실시간 분석을 수행하고, 내구성이 뛰어난 스토리지에 데이터를 저장하며, CloudWatch Logs 에이전트로 데이터를 관리할 수 있습니다. Amazon RDS 콘솔에서 [데이터베이스 로그에 액세스하고 해당 로그를 볼 수 있습니다](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_LogAccess.Procedural.Watching.html). 또한 CloudWatch Logs Insights를 사용하여 CloudWatch Logs에서 로그 데이터를 대화식으로 검색하고 분석할 수 있습니다. 다음 예제에서는 로그에 `CONNECT` 이벤트가 표시되는 횟수, 연결된 사용자, 연결된 클라이언트(IP 주소)를 확인하는 감사 로그의 쿼리를 보여줍니다. 감사 로그에서 발췌한 내용은 다음과 같을 수 있습니다.

```
20221201 14:07:05,ip-10-22-1-51,rdsadmin,localhost,821,0,CONNECT,,,0,SOCKET
20221201 14:07:05,ip-10-22-1-51,rdsadmin,localhost,821,0,DISCONNECT,,,0,SOCKET
20221201 14:12:20,ip-10-22-1-51,rdsadmin,localhost,822,0,CONNECT,,,0,SOCKET
20221201 14:12:20,ip-10-22-1-51,rdsadmin,localhost,822,0,DISCONNECT,,,0,SOCKET
20221201 14:17:35,ip-10-22-1-51,rdsadmin,localhost,823,0,CONNECT,,,0,SOCKET
20221201 14:17:35,ip-10-22-1-51,rdsadmin,localhost,823,0,DISCONNECT,,,0,SOCKET
20221201 14:22:50,ip-10-22-1-51,rdsadmin,localhost,824,0,CONNECT,,,0,SOCKET
20221201 14:22:50,ip-10-22-1-51,rdsadmin,localhost,824,0,DISCONNECT,,,0,SOCKET
```

Log Insights 쿼리 예제에서는 다음 그림과 같이 `rdsadmin`이 `localhost`에서 5분마다 데이터베이스에 연결되었음(총 22회)을 보여줍니다. 이러한 결과는 활동이 모니터링 시스템 자체와 같은 내부 Amazon RDS 프로세스에서 시작되었음을 나타냅니다.

![\[Log Insights 보고서\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/amazon-rds-monitoring-alerting/images/log-insights.png)


로그 이벤트에는 MySQL 및 MariaDB DB 인스턴스와 관련된 작업에 대한 경고 또는 오류와 같이 계산하려는 중요한 메시지가 자주 포함됩니다. 예를 들어 작업이 실패하면 오류가 발생하고 다음과 같이 오류 로그 파일에 기록될 수 있습니다. `ERROR 1114 (HY000): The table zip_codes is full`. 이러한 항목을 모니터링하여 오류의 추세를 파악하려고 할 수 있습니다. Amazon RDS 데이터베이스 로그의 자동 모니터링을 활성화하여 특정 로그에서 특정 패턴을 모니터링하고 예상되는 동작 위반이 발생한 경우 경보를 생성하도록 [필터를 사용하여 Amazon RDS 로그에서 사용자 지정 CloudWatch 지표를 생성](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CreateMetricFilterProcedure.html)할 수 있습니다. [예를 들어](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CountOccurrencesExample.html) 오류 로그를 모니터링하고 [특정 패턴](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html)(예: `ERROR`)을 검색하는 로그 그룹 `/aws/rds/instance/database-1/error`에 대한 지표 필터를 생성합니다. **필터 패턴**을 `ERROR`로 설정하고 **지표 값**을 `1`로 설정합니다. 필터는 `ERROR` 키워드가 있는 모든 로그 레코드를 감지하고 'ERROR'가 포함된 모든 로그 이벤트에 대해 개수를 1씩 늘립니다. 필터를 생성한 후 MySQL 또는 MariaDB 오류 로그에서 오류가 감지되면 이를 알리도록 경보를 설정할 수 있습니다.

CloudWatch 대시보드를 생성하고 CloudWatch Logs Insights를 사용하여 느린 쿼리 로그 및 오류 로그를 모니터링하는 방법에 대한 자세한 내용은 블로그 게시물 [Creating an Amazon CloudWatch dashboard to monitor Amazon RDS and Amazon Aurora MySQL](https://aws.amazon.com/blogs/database/creating-an-amazon-cloudwatch-dashboard-to-monitor-amazon-rds-and-amazon-aurora-mysql/)을 참조하세요.