에이전트로부터 TCP 6100 포트로 성능 데이터를 수신하여 내장 DB에 저장하는 핵심 서버이다. XLog, Profile, Counter, Summary 데이터의 수집/저장/삭제(purge)를 관리한다.
1. 개요
| 항목 | 내용 |
|---|
| 배포 위치 | Docker 컨테이너 (collect-server) |
| 프로세스 형태 | 독립 JVM 서버 (Java 8 Corretto) |
| 의존 모듈 | PostgreSQL (XLog Plugin용, optional) |
| 로그 위치 | /app/flowkat/collect.server/logs/ |
2. 필수 설정 (P0)
| 파라미터 | 타입 | 기본값 | conf 키 | 중요도 | 설명 |
|---|
server_id | String | (호스트네임) | server_id | 필수 | 서버 고유 식별자. 여러 수집 서버 운영 시 구분용. |
net_tcp_listen_ip | String | 0.0.0.0 | net_tcp_listen_ip | 필수 | TCP 바인딩 IP. 보안 강화 시 내부 NIC IP로 제한 가능. |
net_tcp_listen_port | int | 6100 | net_tcp_listen_port | 필수 | TCP 리슨 포트. 에이전트의 net_collector_tcp_port와 일치해야 한다. |
db_dir | String | ./database | db_dir | 필수 | 내장 DB 저장 경로. 프로덕션에서는 절대 경로 + SSD 볼륨 권장. |
log_dir | String | ./logs | log_dir | 필수 | 로그 디렉토리. |
3. 운영 튜닝 (P1 핵심)
데이터 보관 정책 (mgr_purge)
| 파라미터 | 타입 | 기본값 | conf 키 | 중요도 | 설명 |
|---|
mgr_purge_enabled | boolean | true | mgr_purge_enabled | 핵심 | 자동 삭제 ON/OFF. false 시 디스크 가득 찰 때까지 데이터 축적. |
mgr_purge_disk_usage_pct | int | 80 | mgr_purge_disk_usage_pct | 핵심 | 디스크 사용률 초과 시 보관일 무관 삭제 트리거(%). |
mgr_purge_profile_keep_days | int | 10 | mgr_purge_profile_keep_days | 핵심 | 프로파일 보관일. 전체 데이터의 60~80% 차지. 디스크 절약 효과 가장 큼. |
mgr_purge_xlog_keep_days | int | 30 | mgr_purge_xlog_keep_days | 핵심 | XLog 보관일. 기본값은 profile_keep_days * 3. |
mgr_purge_counter_keep_days | int | 70 | mgr_purge_counter_keep_days | 핵심 | 카운터 보관일. 하위 카운터(realtime_counter, tag_counter, visitor_counter) 기본값 기준. |
mgr_purge_sum_data_days | int | 60 | mgr_purge_sum_data_days | 핵심 | 통계 요약(Summary) 보관일. |
mgr_purge_realtime_counter_keep_days | int | (counter_keep_days) | mgr_purge_realtime_counter_keep_days | 핵심 | 실시간 카운터 보관일. 기본값은 mgr_purge_counter_keep_days와 동일. |
mgr_purge_tag_counter_keep_days | int | (counter_keep_days) | mgr_purge_tag_counter_keep_days | 핵심 | 태그 카운터 보관일. 기본값은 mgr_purge_counter_keep_days와 동일. |
mgr_purge_visitor_counter_keep_days | int | (counter_keep_days) | mgr_purge_visitor_counter_keep_days | 핵심 | 방문자 카운터 보관일. 기본값은 mgr_purge_counter_keep_days와 동일. |
mgr_purge_daily_text_days | int | (자동 계산) | mgr_purge_daily_text_days | 핵심 | 일별 텍스트 사전 보관일. 기본값은 max(tag_counter*2, xlog*2). |
TCP/NIO 설정
| 파라미터 | 타입 | 기본값 | conf 키 | 중요도 | 설명 |
|---|
net_tcp_service_pool_size | int | 100 | net_tcp_service_pool_size | 핵심 | TCP 스레드 풀 크기. 에이전트 100대 이상이면 150~200 권장. |
net_nio_pipe_buffer_size | int | 65536 | net_nio_pipe_buffer_size | 핵심 | NIO PipedStream 버퍼 크기(bytes). |
net_nio_handshake_timeout_ms | int | 30000 | net_nio_handshake_timeout_ms | 핵심 | V3 핸드셰이크 타임아웃(ms). |
net_nio_idle_timeout_sec | int | 60 | net_nio_idle_timeout_sec | 핵심 | NIO 유휴 타임아웃(초). |
net_tcp_client_so_timeout_ms | int | 8000 | net_tcp_client_so_timeout_ms | 핵심 | 클라이언트(Dashboard 등) 소켓 타임아웃(ms). |
net_tcp_agent_so_timeout_ms | int | 60000 | net_tcp_agent_so_timeout_ms | 핵심 | 에이전트 소켓 타임아웃(ms). |
net_tcp_agent_keepalive_interval_ms | int | 5000 | net_tcp_agent_keepalive_interval_ms | 핵심 | Keep-Alive 전송 주기(ms). |
큐/오브젝트 관리
| 파라미터 | 타입 | 기본값 | conf 키 | 중요도 | 설명 |
|---|
xlog_queue_size | int | 10000 | xlog_queue_size | 핵심 | XLog Writer 큐 크기. 대량 트래픽 시 20000~50000. |
profile_queue_size | int | 1000 | profile_queue_size | 핵심 | Profile Writer 큐 크기. 프로파일 유실 시 2000~5000. |
span_queue_size | int | 1000 | span_queue_size | 핵심 | Span Writer 큐 크기. |
object_deadtime_ms | int | 8000 | object_deadtime_ms | 핵심 | Heartbeat 없으면 비활성 판정 시간(ms). V3 NIO에서는 즉시 감지되므로 폴백 역할. |
db_disk_space_threshold | int | 4096 | db_disk_space_threshold | 핵심 | 디스크 부족 알림 임계치(MB). |
전체 파라미터 목록은 parameter-inventory.md 참조.
4. 기능 활성화/선택 설정 (P2)
기본값으로 운영 가능하나 환경에 따라 조정이 필요한 파라미터이다.
HTTP 서버
| 파라미터 | 타입 | 기본값 | conf 키 | 중요도 | 설명 |
|---|
net_http_server_enabled | boolean | false | net_http_server_enabled | 고급 | HTTP 서버 활성화. 별도 REST API 포트가 필요한 경우 사용. |
net_http_port | int | (NetConstants) | net_http_port | 고급 | HTTP 서버 포트. net_http_server_enabled=true 시 유효. |
net_http_api_gzip_enabled | boolean | true | net_http_api_gzip_enabled | 고급 | HTTP API 응답 gzip 압축. |
데이터 압축
| 파라미터 | 타입 | 기본값 | conf 키 | 중요도 | 설명 |
|---|
compress_xlog_enabled | boolean | false | compress_xlog_enabled | 고급 | XLog 데이터 zip 압축. 디스크 절약 효과가 있으나 CPU 사용 증가. |
compress_profile_enabled | boolean | false | compress_profile_enabled | 고급 | 프로파일 데이터 zip 압축. 프로파일은 데이터 비중이 크므로 효과가 크다. |
로그 관리
| 파라미터 | 타입 | 기본값 | conf 키 | 중요도 | 설명 |
|---|
log_rotation_enabled | boolean | true | log_rotation_enabled | 고급 | 일별 로그 로테이션 활성화. |
log_keep_days | int | 31 | log_keep_days | 고급 | 서버 로그 보관일. |
GeoIP
| 파라미터 | 타입 | 기본값 | conf 키 | 중요도 | 설명 |
|---|
geoip_enabled | boolean | true | geoip_enabled | 고급 | IP 기반 도시/국가 추출 활성화. |
geoip_data_city_file | String | ./conf/GeoLiteCity.dat | geoip_data_city_file | 고급 | GeoIP 데이터 파일 경로. |
오브젝트 관리
| 파라미터 | 타입 | 기본값 | conf 키 | 중요도 | 설명 |
|---|
object_inactive_alert_level | int | 0 | object_inactive_alert_level | 고급 | 비활성 오브젝트 알림 레벨 (0:info, 1:warn, 2:error, 3:fatal). |
object_zipkin_deadtime_ms | int | 180000 | object_zipkin_deadtime_ms | 고급 | Zipkin 오브젝트 하트비트 타임아웃(ms). |
object_inactive_ttl_ms | long | 1800000 | object_inactive_ttl_ms | 고급 | 비활성 오브젝트 메모리 유지 시간(ms). 기본값 30분. |
텍스트 DB
| 파라미터 | 타입 | 기본값 | conf 키 | 중요도 | 설명 |
|---|
mgr_text_db_daily_service_enabled | boolean | false | mgr_text_db_daily_service_enabled | 고급 | 서비스명 일별 사전 모드. 서비스 URL이 매우 많은 환경에서 활성화. |
mgr_text_db_daily_api_enabled | boolean | false | mgr_text_db_daily_api_enabled | 고급 | API명 일별 사전 모드. |
mgr_text_db_daily_ua_enabled | boolean | false | mgr_text_db_daily_ua_enabled | 고급 | UserAgent 일별 사전 모드. |
text_cache_max_cacheable_length | int | 8192 | text_cache_max_cacheable_length | 고급 | TextCache 최대 캐시 가능 길이(chars). |
기능 ON/OFF
| 파라미터 | 타입 | 기본값 | conf 키 | 중요도 | 설명 |
|---|
tagcnt_enabled | boolean | true | tagcnt_enabled | 고급 | TagCount 기능 활성화. |
visitor_hourly_count_enabled | boolean | true | visitor_hourly_count_enabled | 고급 | 시간별 방문자 카운트 활성화. |
sql_table_parsing_enabled | boolean | true | sql_table_parsing_enabled | 고급 | 테이블 기반 SQL 압축 활성화. |
plugin_enabled | boolean | true | plugin_enabled | 고급 | 스크립트 플러그인 활성화. |
알림 필터링
| 파라미터 | 타입 | 기본값 | conf 키 | 중요도 | 설명 |
|---|
alert_message_exclude_pattern | String | "/snap/*,/proc/*" | alert_message_exclude_pattern | 고급 | 알림 제외 패턴. 와일드카드 지원. |
시스템 알림
| 파라미터 | 타입 | 기본값 | conf 키 | 중요도 | 설명 |
|---|
system_on_no_license | boolean | true | system_on_no_license | 고급 | 라이선스 미등록 알림 표시. |
system_on_expired_license_soon | boolean | true | system_on_expired_license_soon | 고급 | 라이선스 만료 임박 알림 표시. |
system_on_disk_not_enough | boolean | true | system_on_disk_not_enough | 고급 | 디스크 부족 알림 표시. |
system_on_object_duplicate | boolean | true | system_on_object_duplicate | 고급 | 오브젝트 ID 중복 알림 표시. |
Kubernetes 연동
| 파라미터 | 타입 | 기본값 | conf 키 | 중요도 | 설명 |
|---|
auto_clean_inactive_obj_by_kube | boolean | true | auto_clean_inactive_obj_by_kube | 고급 | K8s 환경 비활성 에이전트 자동 삭제. |
kube_pod_seq_heartbeat_ttl_ms | long | 120000 | kube_pod_seq_heartbeat_ttl_ms | 고급 | K8s Pod 순차 번호 하트비트 TTL(ms). |
kube_pod_seq_max_number | int | 1000 | kube_pod_seq_max_number | 고급 | Pod 순차 번호 풀 최대 크기. |
디렉토리
| 파라미터 | 타입 | 기본값 | conf 키 | 중요도 | 설명 |
|---|
plugin_dir | String | ./plugin | plugin_dir | 고급 | 플러그인 디렉토리 경로. |
client_dir | String | ./client | client_dir | 고급 | 클라이언트 관련 디렉토리. |
temp_dir | String | ./tempdata | temp_dir | 고급 | 임시 데이터 디렉토리. |
| 파라미터 | 타입 | 기본값 | conf 키 | 중요도 | 설명 |
|---|
license_expiration_warning | int | 7 | license_expiration_warning | 고급 | 라이선스 만료 경고 표시 시작일(일). |
ext_link_name | String | "scouter-paper" | ext_link_name | 고급 | 3rd party UI 이름. |
ext_link_url_pattern | String | (URL 패턴) | ext_link_url_pattern | 고급 | 3rd party UI 링크 패턴. |
req_search_xlog_max_count | int | 10000 | req_search_xlog_max_count | 고급 | XLog 검색 요청당 최대 건수. |
xlog_realtime_lower_bound_ms | int | 0 | xlog_realtime_lower_bound_ms | 고급 | 실시간 XLog 조회 시 무시할 최소 응답시간(ms). |
xlog_pasttime_lower_bound_ms | int | 0 | xlog_pasttime_lower_bound_ms | 고급 | 과거 XLog 조회 시 무시할 최소 응답시간(ms). |
Valkey 캐시 (v5.0.28+)
| 파라미터 | 타입 | 기본값 | conf 키 | 중요도 | 설명 |
|---|
valkey_enabled | boolean | false | valkey_enabled | 고급 | Valkey 캐시 전체 ON/OFF. 이 값이 false이면 아래 개별 설정은 무시됨. |
valkey_host | String | 127.0.0.1 | valkey_host | 고급 | Valkey 서버 호스트. Docker host mode 시 localhost. |
valkey_port | int | 6380 | valkey_port | 고급 | Valkey 서버 포트. 기본 Redis 6379와 충돌 방지를 위해 6380 사용. |
valkey_timeout_seconds | int | 3 | valkey_timeout_seconds | 고급 | 연결 타임아웃(초). |
visitor_valkey_cache_enabled | boolean | false | visitor_valkey_cache_enabled | 고급 | 방문자 시간별 캐시. 방문자 차트 조회 속도 개선. |
counter_valkey_cache_enabled | boolean | false | counter_valkey_cache_enabled | 고급 | 5분 카운터 캐시. 성능 차트(TPS, 응답시간) 조회 속도 개선. |
text_valkey_cache_enabled | boolean | false | text_valkey_cache_enabled | 고급 | 텍스트 L2 캐시. URL/SQL/API명 조회 속도 개선. |
5. Valkey 캐시 운영 가이드 (v5.0.28+)
5.1 캐시가 하는 일 (한 줄 요약)
과거 날짜의 조회 결과를 Valkey에 저장해 두고, 같은 데이터를 다시 요청하면 디스크 대신 메모리에서 바로 응답한다.
오늘 데이터는 계속 변하므로 캐시하지 않는다. 어제 이전 데이터만 캐시한다.
5.2 어떤 화면이 빨라지나
| 화면 | 개선 대상 | 예상 효과 |
|---|
| 대시보드 > 방문자 차트 | 시간별 방문자 수 | 과거 날짜 조회 시 ~96% 빨라짐 |
| 성능 > TPS/응답시간 차트 | 5분 카운터 데이터 | 30일 조회 시 ~77% 빨라짐 |
| 트랜잭션 통계 > URL/SQL/API/Error | Summary 집계 결과 | 30일 조회 시 ~95% 빨라짐 |
| 트랜잭션 통계 > 클라이언트 IP/사용자 에이전트 | IP/사용자 에이전트 통계 | 30일 조회 시 ~95% 빨라짐 |
| XLog > 서비스명, SQL명 표시 | 텍스트 사전 조회 | 첫 조회 후 ~70% 빨라짐 |
5.3 활성화 절차
사전 조건: Valkey 서버가 실행 중이어야 한다.
# 1. Valkey 서버 시작 (Docker)
docker run -d --name flowkat-valkey \
--network host \
valkey/valkey:latest \
--port 6380 --maxmemory 2gb --maxmemory-policy allkeys-lru
# 2. 연결 확인
docker exec flowkat-valkey valkey-cli -p 6380 ping # → PONG
설정 변경 (flowkat.conf 또는 FlowKat UI > 설정 > 수집 서버):
# 전체 활성화 (필수)
valkey_enabled=true
# 원하는 캐시 개별 활성화
visitor_valkey_cache_enabled=true
counter_valkey_cache_enabled=true
text_valkey_cache_enabled=true
설정 변경 후 3초 이내 자동 반영된다. 서버 재시작 불필요.
확인 방법: 수집 서버 로그에서 아래 메시지 확인
SC-VALKEY ValkeyClient connected to 127.0.0.1:6380
5.4 비활성화 방법
3초 이내 자동 해제. 캐시가 꺼져도 서비스에 영향 없음 — 기존 파일 DB로 자동 전환.
5.5 Valkey 장애 시 동작
수집 서버는 정상 동작한다. 응답 속도만 캐시 도입 이전으로 돌아간다.
Valkey 장애 감지
→ 5회 연속 실패 시 서킷 브레이커 OPEN (30초간 Valkey 호출 차단)
→ 모든 조회가 파일 DB로 자동 전환 (Fallback)
→ 30초 후 자동 재시도
→ Valkey 복구 시 정상 캐시 동작 자동 재개
기술지원 포인트: 고객이 "차트가 갑자기 느려졌다"고 문의하면, Valkey 상태를 먼저 확인한다.
5.6 진단 명령어
# Valkey 프로세스 확인
docker ps | grep valkey
# Valkey 연결 확인
docker exec flowkat-valkey valkey-cli -p 6380 ping
# 메모리 사용량 확인
docker exec flowkat-valkey valkey-cli -p 6380 INFO memory | grep used_memory_human
# 캐시 키 수 확인
docker exec flowkat-valkey valkey-cli -p 6380 DBSIZE
# 특정 캐시 키 확인 (예: 텍스트 캐시)
docker exec flowkat-valkey valkey-cli -p 6380 KEYS "txt:*" | head -10
# 수집 서버 로그에서 Valkey 관련 메시지 확인
docker logs collect-server 2>&1 | grep SC-VALKEY | tail -20
5.7 메모리 보호 구조
캐시가 메모리를 과도하게 사용하지 않도록 3단계 보호가 되어 있다:
| 단계 | 보호 장치 | 설명 |
|---|
| 1단계 | 대형 데이터 자동 제외 | 텍스트 8KB 초과, Summary 500KB 초과 시 캐시 안 함 |
| 2단계 | TTL 자동 만료 | 모든 캐시 키에 유효기간 설정. IP/UA는 최대 6시간. |
| 3단계 | Valkey LRU 삭제 | 메모리 2GB 초과 시 가장 오래된 키부터 자동 삭제 |
메모리 사용 예상치:
| 오브젝트 수 | 30일 캐시 | Valkey 2GB 대비 |
|---|
| 8개 (소규모) | ~34 MB | 1.7% |
| 100개 (중규모) | ~260 MB | 13% |
| 500개 (대규모) | ~1,200 MB | 60% |
5.8 자주 묻는 질문 (FAQ)
Q: Valkey 없이도 수집 서버가 동작하나요? A: Valkey는 선택 사항이다. 없으면 기존과 동일하게 파일 DB에서 직접 읽는다.
Q: Valkey를 켰다가 꺼도 데이터 손실이 있나요? A: 없다. Valkey는 조회 결과의 사본만 저장한다. 원본은 항상 파일 DB에 있다.
Q: 오늘 데이터가 캐시되지 않는 이유는? A: 의도된 설계이다. 오늘 데이터는 5분마다 갱신되므로 캐시하면 최신 데이터를 보여주지 못한다.
Q: 캐시를 수동으로 초기화하고 싶을 때는? A: docker exec flowkat-valkey valkey-cli -p 6380 FLUSHALL 명령으로 전체 캐시를 삭제한다. 서비스 영향 없이 다음 조회 시 자동 재생성된다.
Q: Valkey 메모리가 부족하면 어떻게 되나요? A: allkeys-lru 정책에 의해 가장 오래 사용하지 않은 키부터 자동 삭제된다. 수집 서버에 영향 없다.
6. 고급/디버그 설정 (P3)
주의: 벤더(개발팀) 지침 없이 변경하지 않는다. 운영 장애 시 진단 목적으로만 활성화한다. Valkey 캐시 설정(valkey_*)은 P2이며, 섹션 4와 5에서 다룬다.
디버그 로깅 (log_pack_*)
| 파라미터 | 타입 | 기본값 | conf 키 | 중요도 | 설명 |
|---|
log_pack_multipacket | boolean | false | log_pack_multipacket | 참조 | MultiPacket 수신 로깅. |
log_expired_multipacket | boolean | true | log_expired_multipacket | 참조 | 만료 MultiPacket 로깅. |
log_pack_packet | boolean | false | log_pack_packet | 참조 | 전체 수신 팩 로깅. 로그 폭발 위험. |
log_pack_counter | boolean | false | log_pack_counter | 참조 | 카운터 데이터 수신 로깅. |
log_pack_interaction_counter | boolean | false | log_pack_interaction_counter | 참조 | PerfInteraction카운터 데이터 수신 로깅. |
log_pack_xlog | boolean | false | log_pack_xlog | 참조 | XLOG 데이터 수신 로깅. |
log_pack_profile | boolean | false | log_pack_profile | 참조 | 프로파일 데이터 수신 로깅. |
log_pack_text | boolean | false | log_pack_text | 참조 | 텍스트 데이터 수신 로깅. |
log_pack_alert | boolean | false | log_pack_alert | 참조 | 알림 데이터 수신 로깅. |
log_pack_object | boolean | false | log_pack_object | 참조 | 오브젝트 데이터 수신 로깅. |
log_pack_some_object | String | "" | log_pack_some_object | 참조 | 특정 오브젝트 데이터 필터 로깅. |
log_pack_status | boolean | false | log_pack_status | 참조 | 상태 데이터 수신 로깅. |
log_pack_stack | boolean | false | log_pack_stack | 참조 | 스택 데이터 수신 로깅. |
log_pack_summary | boolean | false | log_pack_summary | 참조 | 요약 데이터 수신 로깅. |
log_pack_batch | boolean | false | log_pack_batch | 참조 | 배치 데이터 수신 로깅. |
log_pack_span | boolean | false | log_pack_span | 참조 | 스팬 데이터 수신 로깅. |
log_tcp_action_enabled | boolean | false | log_tcp_action_enabled | 참조 | TCP 연결 이벤트 로깅. |
log_service_handler_list | boolean | false | log_service_handler_list | 참조 | 기동 시 핸들러 목록 로깅. |
log_sql_parsing_fail_enabled | boolean | false | log_sql_parsing_fail_enabled | 참조 | SQL 파싱 실패 로깅. |
log_index_traversal_warning_count | int | 100 | log_index_traversal_warning_count | 참조 | 인덱스 탐색 경고 임계치. |
log_test_rate | int | 0 | log_test_rate | 참조 | 로깅 테스트 비율. |
내부 메모리/인덱스 튜닝 (mgr_text_db*)
주의: 변경 시 DB 파일 손상 위험. 변경 전 반드시 DB 백업 후 재시작 필요.
| 파라미터 | 타입 | 기본값 | conf 키 | 중요도 | 설명 |
|---|
_mgr_text_db_index_default_mb | int | 1 | _mgr_text_db_index_default_mb | 참조 | 기본 해시 인덱스 메모리(MB). |
_mgr_text_db_index_service_mb | int | 1 | _mgr_text_db_index_service_mb | 참조 | 서비스 텍스트 해시 인덱스 메모리(MB). |
_mgr_text_db_index_api_mb | int | 1 | _mgr_text_db_index_api_mb | 참조 | API 텍스트 해시 인덱스 메모리(MB). |
_mgr_text_db_index_ua_mb | int | 1 | _mgr_text_db_index_ua_mb | 참조 | UserAgent 텍스트 해시 인덱스 메모리(MB). |
_mgr_text_db_index_login_mb | int | 1 | _mgr_text_db_index_login_mb | 참조 | 로그인 텍스트 해시 인덱스 메모리(MB). |
_mgr_text_db_index_desc_mb | int | 1 | _mgr_text_db_index_desc_mb | 참조 | 설명 텍스트 해시 인덱스 메모리(MB). |
_mgr_text_db_index_hmsg_mb | int | 1 | _mgr_text_db_index_hmsg_mb | 참조 | 해시 메시지 텍스트 해시 인덱스 메모리(MB). |
_mgr_text_db_daily_index_mb | int | 1 | _mgr_text_db_daily_index_mb | 참조 | 일별 텍스트 DB 해시 인덱스 메모리(MB). |
_mgr_kv_store_index_default_mb | int | 8 | _mgr_kv_store_index_default_mb | 참조 | KV 스토어 인덱스 메모리(MB). |
_mgr_xlog_id_index_mb | int | 1 | _mgr_xlog_id_index_mb | 참조 | XLog txid/gxid 인덱스 메모리(MB). |
내부 압축 튜닝 (compress*)
| 파라미터 | 타입 | 기본값 | conf 키 | 중요도 | 설명 |
|---|
_compress_write_buffer_block_count | int | 3 | _compress_write_buffer_block_count | 참조 | 압축 쓰기 버퍼 블록 수. |
_compress_read_cache_block_count | int | 3 | _compress_read_cache_block_count | 참조 | 압축 읽기 캐시 블록 수. |
_compress_read_cache_expired_ms | long | 60000 | _compress_read_cache_expired_ms | 참조 | 읽기 캐시 만료 시간(ms). |
_compress_dailycount_header_cache_size | int | 3 | _compress_dailycount_header_cache_size | 참조 | 일별 카운트 헤더 캐시 크기. |
_compress_write_thread | int | 2 | _compress_write_thread | 참조 | 압축 쓰기 스레드 수. |
내부 네트워크 (net*)
| 파라미터 | 타입 | 기본값 | conf 키 | 중요도 | 설명 |
|---|
_net_pack_worker_thread_count | int | 3 | _net_pack_worker_thread_count | 참조 | 팩 워커 스레드 수. |
net_tcp_get_agent_connection_wait_ms | int | 1000 | net_tcp_get_agent_connection_wait_ms | 참조 | 에이전트 세션 대기 시간(ms). |
XLog 샘플링 (xlog_sampling_matcher_*)
| 파라미터 | 타입 | 기본값 | conf 키 | 중요도 | 설명 |
|---|
xlog_sampling_matcher_gxid_keep_memory_count | int | 500000 | xlog_sampling_matcher_gxid_keep_memory_count | 참조 | 샘플링용 GXID 메모리 유지 건수. |
xlog_sampling_matcher_xlog_keep_memory_count | int | 100000 | xlog_sampling_matcher_xlog_keep_memory_count | 참조 | 샘플링용 XLog 메모리 유지 건수. |
xlog_sampling_matcher_xlog_keep_memory_millis | int | 5000 | xlog_sampling_matcher_xlog_keep_memory_millis | 참조 | 샘플링용 XLog 메모리 유지 시간(ms). |
xlog_sampling_matcher_profile_keep_memory_count | int | 5000 | xlog_sampling_matcher_profile_keep_memory_count | 참조 | 샘플링용 프로파일 메모리 유지 건수 (500ms 버킷당). |
xlog_sampling_matcher_profile_keep_memory_secs | int | 5 | xlog_sampling_matcher_profile_keep_memory_secs | 참조 | 샘플링용 프로파일 메모리 유지 시간(초). |
내부 플래그
| 파라미터 | 타입 | 기본값 | conf 키 | 중요도 | 설명 |
|---|
_auto_5m_sampling | boolean | true | _auto_5m_sampling | 참조 | 5분 자동 샘플링. |
_scouter_mixin_mode | boolean | false | _scouter_mixin_mode | 참조 | 내부 Mixin 모드. |
_is_internal_account_active | boolean | false | _is_internal_account_active | 참조 | 내부 계정 활성화 플래그. |
_trace | boolean | false | _trace | 참조 | 추적 모드. |
_flowkat_debug | boolean | false | _flowkat_debug | 참조 | FlowKat 디버그 모드. |
mgr_log_ignore_ids | StringSet | (empty) | mgr_log_ignore_ids | 참조 | 무시할 로그 ID 목록 (쉼표 구분). |
Deprecated 파라미터
| 파라미터 | 타입 | 기본값 | conf 키 | 중요도 | 설명 |
|---|
mgr_purge_keep_days | int | (profile_keep_days) | mgr_purge_keep_days | 참조 | Deprecated. mgr_purge_profile_keep_days 사용. |
mgr_purge_xlog_without_profile_keep_days | int | (xlog_keep_days) | mgr_purge_xlog_without_profile_keep_days | 참조 | Deprecated. mgr_purge_xlog_keep_days 사용. |
7. 설치 절차
Docker Compose 환경에서 자동 배포된다. 상세는 16.docker-compose.md 참조.
설정 파일 위치
volumes/collect-server/conf/flowkat.conf
기동 확인
# Docker 로그 확인
docker logs -f collect-server
# 포트 리슨 확인
docker exec collect-server netstat -tlnp | grep 6100
# 내장 DB 디스크 확인
docker exec collect-server du -sh /app/flowkat/collect.server/database/
8. 설정 파일 예시
# volumes/collect-server/conf/flowkat.conf
# P0
server_id=prod-collector-01
net_tcp_listen_ip=0.0.0.0
net_tcp_listen_port=6100
db_dir=/app/flowkat/collect.server/database
# P1: 보관 정책
mgr_purge_profile_keep_days=14
mgr_purge_xlog_keep_days=42
mgr_purge_counter_keep_days=90
mgr_purge_disk_usage_pct=85
# P1: 대규모 환경 튜닝
net_tcp_service_pool_size=200
xlog_queue_size=30000
profile_queue_size=3000
object_deadtime_ms=15000
# P2: 데이터 압축 (디스크 여유 없을 때)
compress_profile_enabled=true
# P2: K8s 환경
auto_clean_inactive_obj_by_kube=true
kube_pod_seq_max_number=500
# P2: 알림 설정
object_inactive_alert_level=1
# P2: Valkey 캐시 (v5.0.28+, 조회 성능 개선)
valkey_enabled=true
valkey_host=127.0.0.1
valkey_port=6380
visitor_valkey_cache_enabled=true
counter_valkey_cache_enabled=true
text_valkey_cache_enabled=true
9. 주의사항
| 상황 | 주의 내용 |
|---|
| mgr_purge 연쇄 기본값 | profile_keep_days=10 기준으로 xlog=30일, counter=70일이 독립 설정된다. 각 값을 명시적으로 지정하는 것을 권장. |
| counter 하위 보관일 | realtime_counter, tag_counter, visitor_counter의 기본값은 counter_keep_days를 따른다. 개별 조정이 필요하면 각 파라미터를 명시적으로 설정. |
| UDP 미지원 | V3부터 UDP는 지원하지 않는다. TCP 전용 통신. |
| 디스크 I/O | db_dir은 SSD 볼륨 권장. NFS 등 네트워크 스토리지 시 I/O 지연으로 성능 저하. |
| mgr_purge_enabled=false | 감사 로그 보존 등 특수 사유 외에는 true 유지. false 시 디스크 풀 위험. |
| mgr_text_db_index*_mb 변경 | 변경 전 DB 파일 전체 백업 필수. 변경 후 서버 재시작 필요. 잘못 변경하면 DB 파일 손상 가능. |
| compress_*_enabled 활성화 | 기존 비압축 DB와 혼재 불가. 신규 설치 또는 DB 초기화 후 활성화. |
| P3 로그 파라미터 | log_pack_packet=true는 로그 폭발 위험. 짧은 시간만 활성화하고 즉시 비활성화. |
10. 관련 문서