<@U0A71G31CDV> Starrocks로 유입된 모든 쿼리를 알고싶어 적어도 24시간...
# questions-and-troubleshooting
s
@Rocky Starrocks로 유입된 모든 쿼리를 알고싶어 적어도 24시간동안 쿼리를 알고싶은데, 확인할 방법이 있을까?>
r
StarRocks에서 발생한 모든 쿼리 이력을 확인하고, 특히 최근 24시간 이상의 데이터를 분석하기 위해서는 다음 세 가지 방법을 사용할 수 있습니다. 1. FE Audit Log 파일 확인 (가장 기본적인 방법) 모든 FE(Frontend) 노드는 수행된 쿼리 이력을
fe.audit.log
파일에 기록합니다. * 위치: StarRocks 설치 경로 내
fe/log/fe.audit.log
* 보관 기간: 기본적으로 7일 동안 보관됩니다. (
audit_log_delete_age = 7d
) * 내용: 쿼리 시작 시간, 사용자, 클라이언트 IP, 실행 시간(ms), 스캔 데이터 양, 그리고 수행된 SQL 문(
stmt
)
등이 기록됩니다. * 24시간 확인: 파일이 날짜별로 로테이션되므로(
fe.audit.log.YYYYMMDD.0
), 해당 파일들을 grep이나 awk로 분석하여 24시간치 데이터를 추출할 수 있습니다. 2. AuditLoader 플러그인 사용 (권장 방법) 로그 파일을 직접 분석하는 것이 번거롭다면, AuditLoader 플러그인을 설치하여 로그 데이터를 StarRocks 내부 테이블로 자동 로드할 수 있습니다. SQL로 24시간 동안의 쿼리를 조회하기에 가장 편리한 방법입니다. * 작동 방식: `fe.audit.log`를 읽어 StarRocks 테이블에 자동으로 삽입합니다. * 설정 후 조회 예시:
Copy code
sql
    -- 최근 24시간 동안의 모든 쿼리 조회
    SELECT * FROM starrocks_audit_db*.starrocks_audit_tbl*
    WHERE timestamp >= NOW() - INTERVAL 1 DAY;
* 장점: SQL의
WHERE
절을 사용하여 특정 시간대, 특정 사용자, 실행 시간이 긴 쿼리 등을 손쉽게 필터링할 수 있습니다. 3. Query Detail API 사용 HTTP API를 통해 현재 FE 메모리에 캐싱된 최근 쿼리 상세 정보를 조회할 수 있습니다. 다만, 메모리 제한으로 인해 아주 많은 쿼리가 발생하는 환경에서는 24시간 전체 이력을 보장하지 못할 수 있습니다. * API 호출 예시:
Copy code
bash
    curl -u root: "http://<FE_IP>:<FE_HTTP_PORT>/api/v2/query_detail?event_time=0&is_request_all_frontend=true"
* 이 API는 JSON 형태로 최근 쿼리들을 반환합니다. 요약 및 설정 확인 현재 시스템에서 24시간 이상의 로그가 잘 남고 있는지 확인하려면 `fe.conf`에서 다음 설정을 체크하세요. * `audit_log_delete_age`: 로그 삭제 주기 (기본 7일) * `audit_log_modules`: 기록 대상 (기본
slow_query, query
) 추천: 지속적인 모니터링이 필요하다면 *AuditLoader*를 설치하여 내부 테이블로 관리하는 것이 가장 효율적입니다. 상세 분석이 가능합니다. References • faq/operation_maintenance_faq.md • administration/management/logs.md • administration/management/audit_loader.md • administration/sql_digest.md • administration/management/FE_configuration.md