Log Level Change Guide
Sandfly Server 또는 Nodes에서 로그 레벨을 변경하는 절차를 단계별로 설명한 가이드입니다.
대부분의 상황에서는 이러한 관리자 수준 변경이 필요하지 않지만, 일반 로그만으로는 충분하지 않을 때를 대비해 이 가이드를 제공합니다.
준비
이 가이드의 단계를 완료하려면 다음 항목이 필요합니다:
- Sandfly User Interface (UI)에 접근할 수 있는 유효한 계정.
- 대상 Sandfly host에 대한 shell 접근 권한(루트 또는 Sandfly config file을 편집할 수 있는 사용자).
- 여러 노드로 구성된 설치(특히 여러 named queues가 있는 경우)에서는 로그 수집 필요에 따라 변경이 필요한 node를 식별하세요.
Step 1: 예약 작업 일시 중지
Sandfly UI 또는 API를 통해 활성화된 스케줄을 모두 비활성화하세요. 구성 변경 중에 예약 작업이 시작되지 않도록 하기 위함입니다. 자세한 내용은 스케줄 비활성화 및 삭제를 참고하세요.
주의: 이 단계를 완료하면 모든 예약 스캔이 중지됩니다이 단계를 수행하면 다시 활성화할 때까지 모든 예약 스캔이 중지되며, 이는 사실상 시스템 모니터링이 이루어지지 않음을 의미합니다. 가능하면 디버그 로그 수집을 위해 별도의 Sandfly 테스트 시스템 사용을 고려하세요.
Step 2: 모든 작업 완료 확인
Sandfly UI에서 Top Bar의 버튼 또는 사이드바의 Scanning > Task Queues로 이동해 Task Queues를 확인하고, Total Tasks 값이 0(영)인지 확인하세요. 스캔 중간에 Sandfly를 중지하면 원격 호스트에 orphaned 파일이 남을 수 있으므로 중간 중지는 피해야 합니다.
Step 3: 실행 중인 컨테이너 중지
먼저 node를 변경하는 경우, 나중에 동일한 수로 복원할 수 있도록 docker ps | grep -v 'sandfly-' 명령으로 현재 실행 중인 node 컨테이너 수를 기록해 두세요.
변경된 구성이 컨테이너에 반영되려면 대상 호스트의 관련 컨테이너를 중지해야 합니다. 이를 위해 대상 호스트의 ~/sandfly-setup/start_scripts/ 경로에 있는 'shutdown_sandfly.sh' 스크립트를 실행하세요.
Step 4: 구성 파일 편집
선호하는 텍스트 에디터로 대상 호스트의 ~/sandfly-setup/setup/setup_data/ 아래에 있는 해당 config 파일을 편집하세요. 서버의 경우 파일 이름은 'config.server.json', 모든 노드의 경우 'config.node.json'입니다. 파일에서 "log_level"을 찾아 원하는 로그 레벨로 값을 변경한 뒤 저장하고 에디터를 종료하세요.
사용 가능한 컨테이너 로그 레벨:
- info - (DEFAULT) 일반 운영을 위한 기본 수준의 출력을 제공합니다.
- debug - 문제 진단 시 주로 사용하는 상세 수준의 출력을 제공합니다.
주의: debug 레벨 로깅은 로그 데이터 크기를 증가시킵니다debug 레벨 로깅은 평소보다 많은 양의 로그 데이터를 생성합니다. 디스크 공간이 충분한지 확인하고, 디버깅이 더 이상 필요 없으면 로그 레벨을 낮추세요.
Step 5: 컨테이너 시작
구성 파일을 업데이트한 후 새 설정이 적용되도록 관련 컨테이너를 시작해야 합니다. 이를 위해 서버는 'start_sandfly.sh', 노드는 'start_node.sh' 스크립트를 실행하세요. 두 스크립트 모두 대상 호스트의 ~/sandfly-setup/start_scripts/ 아래에 있습니다.
노드에서 디버깅을 목적으로 로그 레벨을 변경하는 경우, 해당 queue name의 모든 스캔이 하나의 컨테이너 인스턴스로 흐르도록 단일 노드만 시작하는 것을 권장합니다. 여러 노드가 실행 중이면 스캔이 활성 노드 간에 무작위로 분산되어 어떤 로그를 확인해야 하는지 파악하기가 어려워집니다.
서비스를 정상 상태로 복원할 때는 환경에 맞는 적절한 수의 노드를 다시 시작하세요.
이 시점부터 Sandfly는 정상적으로 동작하며 새 로그 레벨로 로그를 생성합니다.
Step 6: 일시 중지한 스케줄 재개
정상적인 스캔 활동을 복원하려면 Step 1에서 일시 중지했던 모든 스케줄을 재개하세요.
빠른 디버그 로그 수집을 위한 변경 후 곧바로 로그 설정을 되돌릴 예정이라면, 이 단계는 미뤄도 됩니다. 미룬 경우 작업이 모두 끝난 뒤 스케줄이 다시 활성화되었는지 반드시 확인하세요.
Updated 7 days ago