RDS MySQL에서 일반/느린 쿼리 로그 찍기
RDS MySQL을 이용하면, 아래와 같이 CloudWatch에 일반/감사/느린 쿼리 로그를 찍도록 설정할 수 있다.
그리고 RDS 콘솔에 들어가면 로그 파일을 볼 수 있는데, 일반 로그나 느린 쿼리 로그를 찾을 수 없었다. 그래서 CloudWatch Logs를 찾아봤지만, 역시 로그가 없었다.
그 이유를 찾아 보니, 파라미터 그룹에 로그 관련 설정을 하지 않은 것이 원인이었다.
다음과 같이 설정하면 된다.
먼저, RDS 콘솔에서 파라미터 그룹
메뉴를 클릭한다. 쓰던 파라미터 그룹이 있다면, 그 파라미터 그룹을 클릭하고, 새로 생성해야 한다면 파라미터 그룹 생성
을 클릭해서 파라미터 그룹을 만든다. (RDS에서 기본으로 제공하는 파라미터 그룹은 편집이 불가능하니 파라미터 그룹을 만들어야 한다.)
필요에 따라 다음 설정을 수정 후 저장한다.
- 일반 로그:
general_log
를 1로 변경 (로그를 테이블 대신에 파일에 쓰는 설정을 추가로 해야 할 수도 있다.) - 느린 쿼리 로그:
slow_query_log
를 1로 변경
참고로, 감사 로그는 파라미터 그룹에서 따로 설정하는 부분이 없다. 대신 Aurora RDS에서는 고급 감사 기능을 이용할 수 있다고 한다. (링크 참조)
파라미터 그룹을 저장했다면, 인스턴스에 변경된 파라미터 그룹을 지정하고 저장한다. 파라미터 그룹 상태에 (재시작 보류중)
이라고 뜨면 인스턴스를 재부팅한다. 파라미터 그룹 상태가 (동기화)
가 될 때까지 기다리면, 아래와 같이 로그 파일이 생성됨을 확인할 수 있다.
참고자료
https://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/USER_LogAccess.Concepts.MySQL.html