db에서 로그를 보관하는것은 매우 중요하나, 기본적인 AWS 설정에서는 주요 로그를 따로 보관하고 있지 않다보니 RDB 관리자는 꼭 관련 내용을 설정해줘야한다. 간혹 잊어버릴뻔 해서 관련 내용을 정리해두려는 목적으로 작성한다.
로그 설정은 모두 파라미터 그룹에서 수정을 할 수 있는데, 처음 데이터베이스를 구성할때 default으로 구성해버리면 파라미터 그룹을 수정할 수 없다.
- 사용하고 있는 데이터베이스 설정 창에서도 확인할 수 있다.
- 파라미터 그룹 > 기본값으로 들어가면 하단처럼 DB에서 사용하고 있는 파라미터 그룹을 찾을 수 있다.
여기서 본인이 사용하고 있는 db default를 확인하고 사용자 지정 파라미터 그룹을 생성한다. 이때 설정하는 패밀리 버전은 RDB에서 사용하는 패밀리와 동일하게 맞춰준다.
RDS > 파라미터 그룹을 생성한 뒤, 파라미터를 바꾸려고 하는 데이터베이스 > 설정으로 들어가서 생성한 파라미터 그룹으로 교체해준다.
boolean 으로 설정하는 경우 0 - false , 1 - true
https://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/USER_LogAccess.Concepts.PostgreSQL.html
생성한 파라미터로 들어가서 하단 파라미터를 조회하여 변경해준다.
파라미터 명 | 권고 설정 | 설명 |
---|---|---|
log_connections | 1 | 커넥션 연결 기록을 확인한다. 접속 기록을 파악해야하기 때문에 필수 설정해둘것 |
log_statement | ddl | 에러를 남기는 범위로 all을 하는 경우 부하의 문제가 발생할 수 있으니 디버깅을 제외해서는 추천하지 않음, 다른 타입들은 4가지 옵션중에 선택할 수 있다. (add, ddl, mod, none) 문서를 꼭 읽어보고 세팅하는것을 추천 |
log_min_duration_statement | 500 | 지정된 시간 이상 실행되는 모든 SQL 문을 추척한다. (ms) |
log_temp_files | 1024 | 설정된 값 (KB) 이상의 임시파일을 사용하는 SQL 쿼리 검색으로, 풀스캔을 하는 쿼리를 파악할 수 있음 |
log_lock_waits | 1 | 1초 보다 긴 기간동안 잠긴 교착상태를 파악할 수 있다 |
추가적으로 세팅하는 과정에서 아래 블로그도 참조
https://jojoldu.tistory.com/708
RDB에 있는 Log들이 모두 cloudWatch 로 이동하는지 확인하고, 만약 설정되어 있지 않다면 설정에서 CloudWatch Logs를 개시할 수 있도록 구성해야한다.
로그 확인은 cloudWatch로 이동해서 로그 그룹 > /aws/rds/instance/{rdb명}/postgresql 으로 찾을 수 있다 .
https://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.CloudWatch.html