728x90
MariaDB (Mysql도 포함)는 다양한 종류의 로그 파일을 관리하여 서버 운영에 필수적인 정보를 제공합니다.
로그파일로 DB 상태 모니터링, 문제진단, 보안 감사를 수행할 수 있습니다.
1. 기본 로그 파일 종류
- 에러 로그 (Error Log)
- MariaDB의 에러 로그는 서버에서 발생하는 문제들을 기록합니다. 이 로그에는 서버 시작 및 중지에 관한 정보, 서버 실행 중 발생하는 문제점들이 포함됩니다.
- 기본 경로: /var/log/mysql/error.log (시스템에 따라 다를 수 있음)
- 일반 쿼리 로그 (General Query Log)
- 모든 클라이언트와 서버 간의 통신을 기록합니다. 이 로그는 시스템에 대한 진단 정보, 오류 검사, 성능 분석 등에 유용합니다.
- 기본적으로 비활성화되어 있으며, 성능 저하의 원인이 될 수 있습니다.
- 이진 로그 (Binary Log)
- 데이터 변경(INSERT, UPDATE, DELETE 등)에 대한 정보를 기록합니다. 주로 복제(Replication) 및 데이터 복구에 사용됩니다.
- 로그는 'mysql-bin.xxxxxx' 형식의 파일에 순차적으로 저장됩니다.
- 슬로우 쿼리 로그 (Slow Query Log)
- 설정된 임계값보다 오래 걸리는 쿼리를 기록합니다. 성능 최적화 시 유용하게 사용할 수 있습니다.
- 일반적으로 10초 이상 걸리는 쿼리를 기록합니다.
- 감사 로그 (Audit Log)
- 보안 감사를 위해 특정 데이터베이스 활동을 기록합니다. 플러그인을 통해 활성화될 수 있습니다.
2. 로그 파일 경로 변경 방법 (설정 파일 변경 - 영구)
MariaDB의 로그 파일 위치는 설정 파일(my.cnf 또는 my.ini)을 통해 변경할 수 있습니다. 일반적으로 설정 파일은 /etc/mysql/ 디렉토리에 위치합니다. 각 로그 파일의 경로를 변경하려면 해당 옵션을 수정하면 됩니다.
- 에러 로그 변경 예시
[mysqld]
log_error = 변경할 경로/error.log
- 일반 쿼리 로그 활성화 및 경로 변경 예시
[mysqld]
general_log = 1
general_log_file = 변경할 경로/general.log
- 이진 로그 경로 변경 예시
[mysqld]
log_bin = 변경할 경로/mysql-bin
- 슬로우 쿼리 로그 활성화 및 경로 변경 예시
[mysqld]
slow_query_log = 1
slow_query_log_file = 변경할 경로/slow.log
- 감사 로그 활성화 및 설정 예시 (플러그인 사용)
[mysqld]
plugin_load_add = server_audit
server_audit_logging = ON
server_audit_events = QUERY,TABLE
server_audit_output_type = FILE
server_audit_file_path = 변경할 경로/audit.log
설정 파일에서 값을 변경한 후, MariaDB 서버를 재시작해야 설정이 적용됩니다.
3. 로그 파일 활성화/비활성화 방법
MariaDB에서 로그를 임시로 활성화하는 방법은 운영 중에 서버를 재시작하지 않고 빠른 진단이 필요할 때 사용합니다.
- 일반 쿼리 로그 활성화/비활성화 방법
set global general_log='on'; // 활성화
set global general_log='off'; // 비활성화
set global general_log_file = '변경할 경로/general.log'; // 저장 경로 변경
- 슬로우 쿼리 로그 활성화/비활성화 방법
set global slow_query_log='on'; // 활성화
set global slow_query_log='off'; // 비활성화
set global slow_query_log_file = '변경할 경로/slow.log'; // 저장 경로 변경
set global long_query_time=2; // 임계값 변경
- 감사 로그 활성화/비활성화 방법 (플러그인이 활성화되어 있어야 함)
set global server_audit_logging = ON; // 활성화
set global server_audit_events = 'QUERY,TABLE,LOGIN'; // 로깅 할 이벤트 설정
set global server_audit_output_type = 'FILE'; // 로그 저장 형식 설정
set global server_audit_file_path = '저장할 경로/audit.log'; // 로그 저장 경로 설정
- 로그 활성화 상태 확인
SHOW VARIABLES LIKE 'general_log'; // 일반 쿼리 로그 상태 확인
SHOW VARIABLES LIKE 'slow_query_log'; // 슬로우 쿼리 로그 상태 확인
SHOW VARIABLES LIKE 'server_audit%'; // 감사 로그 상태 확인
반응형
4. 감사 로그 플러그인 설치 및 활성화
MariaDB에서 일반적으로 사용되는 것은 server_audit 플러그인입니다. 이 플러그인을 사용하면 사용자, 테이블, 쿼리 유형 등을 기준으로 상세한 감사 로그를 생성할 수 있습니다.
1. 플러그인 활성화
- MariaDB 서버에서 플러그인을 활성화하려면 my.cnf (Linux) 나 my.ini (Windows) 파일에 설정을 추가합니다.
[mysqld]
plugin_load_add = server_audit
2. 감사 로그 옵션 설정
- 로깅할 이벤트 유형, 로그 파일 경로 등을 설정합니다.
[mysqld]
server_audit_logging = ON
server_audit_events = QUERY,TABLE,LOGIN
server_audit_output_type = FILE
server_audit_file_path = 로그경로/audit.log
3. 서버 재시작
- 플러그인을 활성화 시키려면 재시작이 필요합니다.
systemctl restart mariadb
5. 감사 로그 이벤트 유형
1. CONNECT
- 사용자가 MariaDB 서버에 연결할 때마다 로깅합니다. (사용자 로그인 시도 및 성공 체크)
2. QUERY
- MariaDB 데이터베이스의 SQL 쿼리 실행을 로깅합니다. (성능 분석이나 보안 감사에 유용)
3. TABLE
- 특정 테이블에 대한 쿼리 실행을 로깅합니다. (특정 테이블 데이터 변경 사항 체크)
[mysqld]
server_audit_incl_tables = 'samsodb.table1,samsodb.table2' // 특정 테이블만 로깅
server_audit_excl_tables = 'samsodb.table555,samsodb.table666' // 특정 테이블 로깅 제외
4. QUERY_DDL
- 데이터 정의 언어(DDL)에 대한 쿼리 실행을 로깅합니다. (스키마 변경 사항 체크)
5. QUERY_DML
- 데이터 조작 언어(DML)에 대한 쿼리 실행을 로깅합니다. (데이터 변경 사항 체크)
6. QUERY_DCL
- 데이터 제어 언어(DCL)에 대한 쿼리 실행을 로깅합니다. (사용자 권한 변경 사항 체크)
7. FAILED_LOGIN
- 로그인 시도 실패를 로깅합니다. (비인가 접근 시도 등 보안 감사에 유용)
728x90
반응형
'DB > Mysql(MariaDB)' 카테고리의 다른 글
MariaDB - 컬럼 내 문자 변경(Replcae) (0) | 2024.05.17 |
---|---|
MariaDB - max_connections 변경하기 (0) | 2024.05.08 |
MariaDB - DB 백업 및 복구하기 (0) | 2023.05.25 |
MariaDB - 기본 사용법 (0) | 2023.05.12 |
Linux - MariaDB 설치 (컴파일 / yum) (0) | 2023.05.12 |