ADT캡스

다운로드 1
업데이트 2026. 5. 12.

설치 매뉴얼

개요

ADT캡스 앱은 캡스 출입통제시스템의 출입 이벤트 뷰 테이블을 JDBC 폴링 방식으로 정기 수집하여 출입보안 로그를 로그프레소 소나에 정규화·저장합니다.

Note
본 매뉴얼의 수집 SQL 및 컬럼명은 특정 구축 환경을 기준으로 작성되었습니다. 실제 환경에 따라 뷰 테이블명·컬럼명이 다를 수 있으므로, 적용 전 DB 관리자와 스키마를 확인하세요.

적용 범위

Note
소나 4.0 이상, Microsoft SQL Server 2016 이상에서 동작합니다. 본 매뉴얼의 수집 SQL 및 설정은 Microsoft SQL Server(MSSQL) 기준으로 작성되었습니다.

요구 사항

항목요구사항비고
선행 앱Microsoft SQL Server 앱 설치 필요MSSQL JDBC 접속 프로파일 사용을 위해 필요
DB 계정/권한출입 이벤트 뷰 테이블에 대한 SELECT 권한을 가진 읽기 전용 계정 (DB 관리자에게 요청)권한 부족 시 수집 실패
네트워크 허용TCP/{MSSQL 포트} (소나 수집 노드 → ADT캡스 DB 서버, Outbound)기본 포트 1433, 방화벽 정책 반영 필요
소나 계정 권한접속 프로파일·수집기 등록을 위한 관리자 권한-

ADT캡스 DB 설정

단계 1: DB 계정·권한 준비

출입 이벤트 뷰 테이블에 SELECT 권한을 가진 읽기 전용 계정을 준비합니다.

Caution
시간 컬럼에 인덱스가 없으면 폴링 쿼리가 풀스캔으로 동작해 DB에 성능 저하를 일으킬 수 있습니다. 운영 DB에 적용하기 전 인덱스 유무를 반드시 확인하세요.

단계 2: 수집 대상 확인

수집 대상 뷰 테이블과 증분 폴링 기준 컬럼을 확인합니다.

항목비고
대상 뷰출입 이벤트 뷰 테이블캡스 출입통제시스템 이벤트 뷰
시간 컬럼e_datetimevarchar 형식 (yyyy-MM-dd HH:mm:ss)
증분 기준 컬럼event_datetimee_datetime의 정규화 필드

로그프레소 수집 설정

단계 1: DB 접속 프로파일 추가

Note
접속 프로파일에서 "SQL Server" 접속 문자열을 사용하려면 Microsoft SQL Server 앱이 먼저 설치되어 있어야 합니다.

시스템 > 접속 프로파일 > 추가:

구분항목설정
필수이름접속 프로파일을 식별할 고유한 이름
필수식별자로그프레소 쿼리 등에서 사용할 고유 식별자 (예: adtcaps_mssql)
필수유형데이터베이스 선택
필수데이터베이스 유형사용자 정의 선택
필수접속 문자열JDBC 문자열 템플릿내의 SQL Server 문자열 클릭 후, 접속할 DB정보에 맞게 수정
필수계정사전 준비한 읽기 전용 계정 (예: sonar_read)
필수암호계정 암호
선택읽기 전용체크 권장

항목을 모두 입력한 뒤, 접속 테스트 버튼을 통해 정상적으로 접속되는지 확인합니다.

ADT캡스 DB 접속 프로파일 설정 화면 (Microsoft SQL Server)

단계 2: 수집기 추가

수집 > 수집기 > 추가에서 아래 값을 입력합니다.

구분항목설정
필수이름수집기를 식별할 고유한 이름 (예: adtcaps)
필수주기60 초 (권장)
필수적재 위치/수집 위치로그프레소 플랫폼 구성에 따라 적합한 노드 선택
필수수집 모델ADT캡스 출입보안
필수테이블ADTCAPS로 시작하는 테이블명

ADT캡스 수집기 기본 정보 설정 화면

수집기의 상세 설정에서 아래 값을 입력합니다.

구분항목설정
필수JDBC 프로파일단계 1에서 등록한 접속 프로파일의 식별자 입력
필수SQL수집 시 실행할 쿼리. 예: 아래 SQL 참조
필수조건절SQL 에 적용할 조건절 쿼리. 예: e_datetime > ?
필수첫번째 기준 열증분 수집 기준이 되는 컬럼의 정규화 필드명. 예: event_datetime
필수첫번째 기준 열 초기 값 타입첫번째 기준 열의 필드타입. 예: date

SQL:

Caution
아래 SQL은 참고용 예시입니다. 뷰 테이블명·컬럼명은 사이트별 DB 구성에 따라 다를 수 있으므로, 적용 전 반드시 실제 환경의 스키마를 확인하세요.
SELECT
    CONVERT(DATETIME, e_datetime, 120) AS event_datetime,
    e_mode_name AS category,
    CASE e_result WHEN 1 THEN '성공' WHEN 0 THEN '실패' END AS result,
    e_doorname AS door_name,
    e_idno AS emp_key,
    e_name AS emp_name,
    e_Card AS card_id,
    e_doorid AS door_id,
    e_mode AS category_code
FROM {출입 이벤트 뷰 테이블}
$where
ORDER BY event_datetime
Note
`$where`는 증분 폴링 조건이 자동으로 삽입되는 자리 표시자입니다. 조건절에 입력한 `WHERE e_datetime > ?`에서 `?`에는 직전 수집 시점이 자동으로 바인딩됩니다.
Tip
최근 실시간이 아닌 일정 시간 이전 데이터만 수집하려면 상한 조건을 조건절에 입력합니다.
- 1시간 지연: WHERE e_datetime > ? AND e_datetime <= CONVERT(VARCHAR(19), DATEADD(HOUR, -1, GETDATE()), 120)
- 24시간 지연: WHERE e_datetime> ? AND e_datetime <= CONVERT(VARCHAR(19), DATEADD(HOUR, -24, GETDATE()), 120)

ADT캡스 수집기 SQL 및 증분 설정 화면

수집 검증

수집기를 활성화하면 첫 번째 폴링은 조건절을 무시하고 설정한 SQL로 조회된 전체 데이터를 수집합니다. 이후 폴링부터는 직전 수집 시점 이후에 추가된 행만 가져오므로 중복 없이 신규 이벤트를 수집합니다.

Note
첫 번째 폴링에서 특정 시점 이후 데이터만 수집하려면, 수집기의 `첫번째 기준 열 초기 값` 옵션에 시작 시점을 입력하세요. (예: `2026-04-01 00:00:00`)

수집기 활성화 후 수집 > 수집기에서 해당 수집기의 수집 건수를 확인하거나 테이블을 조회하여 수집을 확인합니다.

  • 정상: 수집 건수가 1 이상.
  • 비정상: 수집 건수가 0이거나 오류 상태이면 DB 접속 프로파일 테스트, WHERE 조건·시간 컬럼 설정, 폴링 주기, JDBC 디버그 로그를 재확인합니다.

참고 자료