MariaDB gloval variable OS CLI 로 설정 할 수 있는 방법이 있을 까요? 0

by CloudNine [MySQL] [2022.10.04 11:26:39]



 

안녕하세요

MariaDB 10.4.18 로 서비스를 운영 중입니다.

보안 정책상 감사로그가 필요 해서 server_audit.so 플러그인을 설치 해서 로그를 수집하고자 합니다.

기본 설정에서는 로그가 잘 남겨지는데, 관리 목적으로 log-rotate 를 설정해서 일단위로 압축해서 보관하고자 

아래와 같은 설정 스크립트를 crontab 에 등록해서 매일 새벽에 실행하고 있습니다.

/data/********/logs/mysql_audit.log {
        create 0600 mysql mysql
        daily
        rotate 3
        notifempty
        missingok
        compress
        dateext
        postrotate
                if test -x /usr/bin/mysqladmin && \
                        /usr/bin/mysqladmin -uroot -p********* ping & > /dev/null
                then
                       /usr/bin/mysqladmin -uroot -p******** flush-logs
                fi
        endscript
}

문제는 위 스크립트를 실행되고 나면 mysql_audit.log에  아무 내용도 찍히지 않아서 MariaDB 접속해서

set global server_audit_logging=OFF;
set global server_audit_logging=ON;

명령을 실행하고 나면 mysql_audit.log 파일에 다시 로그가 찍히고 있습니다.

궁여지책 끝에 로그 rorate 실행후 MariaDB gloval variable 변경하는 스크립트를 넣으면 어떨까 하고 있는데

크론텝에서 작동 하도록 OS 커맨드 라인에서 실행 하는 방법을 찾고 있습니다.

조언 주시는 분 감사드립니다.

by CloudNine [2022.10.05 18:27:18]

자답

/data/mysql-logs/logs/mysql_audit.log {
        create 600 mysql mysql
        daily
        rotate 5
        missingok
        compress
        dateext
        postrotate
                if test -x /usr/bin/mysqladmin && \
                        /usr/bin/mysqladmin -uroot -p******** ping & > /dev/null
                then
                        /usr/bin/mysqladmin -uroot -p******** flush-logs
                        /usr/bin/mysql -uroot -p******** -e 'set global server_audit_logging=OFF;set global server_audit_logging=ON;'
                fi
        endscript
}

 

이렇게 해결 했습니다.

무식한 방법인지 모르겠지만 하루 지켜본 결과로는 원하는 대로 동작하긴 합니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입