본 문서는 분석노드 단일 구성 환경에서 MariaDB를 대상으로 JDBC 수집을 설정하기 위한 절차를 접속 프로파일 등록부터 수집 검증, 포트 변경까지 단계별로 정리한 가이드입니다.
JDBC 수집을 처음 구성하시는 분들께 실질적인 도움이 되기를 바랍니다.
내용 중 수정이 필요한 부분이나 추가 의견이 있으시면 언제든 피드백 부탁드립니다.
유의사항
-
본 가이드는 분석노드 단일 구성 기준으로 작성되었습니다.
-
대상 데이터베이스는 MariaDB이며, 분석노드와 동일 호스트(127.0.0.1:3306)에 설치된 환경으로 문서 제작하였습니다.
-
MariaDB JDBC 드라이버는 기본 포함되어 별도 앱 설치 없이 사용 가능합니다.
-
JDBC 수집기는 지정된 주기마다 SQL 쿼리를 수행하며, 마지막으로 수집한 시점 이후의 레코드만 가져오는 방식이 일반적입니다.
-
연동 이전, 증분 수집이 가능한 컬럼에 대한 사전 협의가 필요합니다.
1. 사전 준비(MariaDB)
-
MariaDB 측에 수집 전용 계정과 권한이 사전에 준비되어 있어야 합니다.
-
사전 확인 필요 정보(예시)
-
호스트/포트: 127.0.0.1:3306
-
데이터베이스: testdb
-
계정: logpresso / 암호: logpresso
-
대상 테이블: audit_log(컬럼:
id,event_time,user_id,action,detail)
-
-
audit_log 샘플 데이터 생성 쿼리(연동 테스트 목적으로 테이블 생성 및 로그 적재)
-
DB 및 계정 생성
CREATE DATABASE testdb; CREATE USER 'logpresso'@'%' IDENTIFIED BY 'logpresso'; -
테이블 생성 (audit_log)
USE testdb; CREATE TABLE audit_log ( id INT AUTO_INCREMENT PRIMARY KEY, event_time DATETIME DEFAULT NOW(), user_id VARCHAR(50), action VARCHAR(100), detail TEXT ); -
데이터 삽입 및 확인
INSERT INTO audit_log (user_id, action, detail) VALUES ('admin', 'LOGIN', '접속 성공'); SELECT * FROM audit_log; -
권한 부여
-- 1. 127.0.0.1(로컬) 접속용 권한 부여 GRANT ALL PRIVILEGES ON testdb.* TO 'logpresso'@'127.0.0.1' IDENTIFIED BY 'logpresso'; -- 2. 변경사항 즉시 반영 FLUSH PRIVILEGES;
-
2. 접속 프로파일 등록
-
목적
-
DB 연동 쿼리 명령과 JDBC 수집기에서 공통으로 사용하는 접속 정보 묶음입니다.
-
접속 프로파일은 dbquery, JDBC 수집기 등 여러 명령에서 사용됩니다.
-
-
등록 순서
-
[SNR UI] → [시스템] → [접속 프로파일] → [추가] 클릭
-
다음 항목 입력 후 생성
-
이름: mariadb_local(식별 가능한 이름)
-
식별자 : mariadb_local
-
유형: 데이터베이스
-
데이터베이스 유형 : MariaDB
-
호스트: 127.0.0.1
-
포트: 3306
-
데이터베이스: testdb
-
계정: logpresso
-
암호: logpresso
-
-
3. dbquery로 조회 검증
-
수집기를 만들기 전에
dbquery명령으로 접속 프로파일과 SQL이 의도대로 동작하는지 먼저 검증합니다. -
[SNR UI] → [분석] → [쿼리] 이동 후 하기 쿼리 실행
# 테이블 목록 조회 dbquery mariadb_local show tables # audit_log 테이블 조회 dbquery mariadb_local select * from audit_log
4. JDBC 수집모델 생성
-
[SNR UI] → [수집] → [수집 모델] 추가
-
다음 항목 입력 후 생성
-
이름: JDBC
-
유형: JDBC 수집기
-
5. 테이블 생성
-
[SNR UI] → [시스템] → [테이블] → [추가]를 클릭하여 테이블 생성
-
이름 : JDBC_TABLE
-
암호화 : 사용
-
보관주기 : 0일(무제한)
-
6. JDBC 수집기 생성
JDBC 수집기는 점진적 수집(incremental collection) 방식으로 동작합니다.
마지막으로 수집한 기준 열의 값을 저장한 뒤, 다음 주기에는 해당 값보다 큰 레코드만 조회하여 중복 없이 데이터를 가져옵니다.
이를 위해 SQL문과 조건절에 $where과 ? 파라미터를 사용하여 아래와 같이 설정합니다.
-
[SNR UI] → [수집] → [수집기] 추가
-
다음 항목 입력 후 생성
-
이름 : JDBC
-
실행 방식 : 주기
-
주기 : 60초
-
수집 모델 : JDBC
-
테이블 : JDBC_TABLE
-
JDBC 프로파일 :
mariadb_local -
SQL :
select * from audit_log $where order by id limit 100000 -
조건절 :
where id > ? -
첫번째 기준열 :
id -
첫번째 기준열 초기 값 :
0 -
첫번째 기준열 초기 값 타입 :
integer
-
-
옵션에 대한 자세한 설명이 필요하시면, 수집기 | 로그프레소 소나 사용자 인터페이스 설명서 참고 부탁드립니다.
7. 수집 확인
-
하기 쿼리 실행하여, 수집상태를 확인합니다.
table JDBC_TABLE
8. MariaDB 포트 변경 시 반영 방법
-
MariaDB의 리스닝 포트가 변경되었거나, 운영 정책상 비표준 포트로 옮겨야 하는 경우, 접속 프로파일의 포트 값만 수정하면 됩니다.
-
MariaDB 측 포트 변경 (참고)
- MariaDB 설정 파일(
/etc/my.cnf또는/etc/my.cnf.d/server.cnf)의port항목을 변경 후 재기동 필요
[mysqld] port = 13306 $ sudo systemctl restart mariadb - MariaDB 설정 파일(
-
접속 프로파일 포트 수정
-
[시스템] → [접속 프로파일] →
mariadb_local선택 → [수정] -
포트 항목을
3306→13306으로 변경 후 [연결 테스트]로 재 확인 후 저장
-