Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
Tags
- ansible
- 파이썬
- dfs
- jenkins
- VectoreStore
- 프로그래머스
- CI/CD
- monorepo
- Flask
- python
- typescript
- javascript
- DP
- React
- modbus
- javascirpt
- AI
- Two Pointer
- docker
- Infra
- queue
- BFS
- LLM
- turbo
- 알고리즘
- rag
- Algorithm
- build
- frontend
- RDP
Archives
- Today
- Total
DM Log
[RDP 모니터링 프로젝트 #0] RDP 화면 녹화 프로젝트 개요 본문
프로젝트 배경
여러 사용자가 Window Server에 대해 원격 접속하여 작업을 수행한 내용을 언제, 어떤 작업을 진행했는지 모니터링을 위한 프로젝트이다. 원격 접속한 사용자의 화면을 자동으로 녹화하고, 영상을 중앙 서버에서 날짜별로 재생할 수 있는 서비스를 구축하는 것이 목표이다.
고려 사항
- 동시 여러 사용자가 RDP 접속에 대해 각 화면을 어떻게 녹화할까?
- Window서버에서 중앙 서버로 단방향 통신만 가능하다는 제약 조건
- 녹화 파일을 효율적으로 저장 관리하는 방식
- 녹화 파일이 중앙 서버로 이동 전에도 실시간으로 영상 확인 가능
- Docker 기반 React와 Flask 웹 서버에서 영상 재생 UI 구성
전체 시스템 아키텍처
Window Server
- RDP 접속 감지(4624/4634)
- ffmpeg 화면 녹화
- 세션별 PID 관리
- 스케쥴러로 파일 전송
중앙 서버
- Docker 기반 flask + SQLite DB + React
- 영상 재생 UI
- 파일 메타데이터 저장
동작 흐름 요약
1. 사용자가 Window Server에 RDP 접속
- Window Event ID 4624 감지 → record_start.bat 실행
- ffmpeg 실행 → 사용자 화면 녹화 시작
- 날짜/계정명/세션 ID 기반 폴더 구조 생성
- PID 파일로 ffmpeg 프로세스 관리 (다중 접속 대응)
2. 사용자 로그오프
- Window Event ID 4634 감지 → record_stop.bat 실행
- PID 기반 ffmpeg 종료
- 녹화 파일 저장
- SQLite(DB)에 파일 정보 등록 (중앙 서버 API 호출)
3. 매일 새벽 00:01 → 자동 녹화 파일 Udap-SM 서버로 전송
- Windows Scheduler + SFTP
- 파일 전송 성공 시 DB의 관련 키 변경 & 전송 완료 영상 삭제
- 파일 전송 실패시 다음날 재시도 기능 고려
4. 중앙 서버 웹에서 사용자 영상 재생
- 서버 선택
- 날짜 선택
- 파일 리스트 출력 (전송 완료 파일)
- 영상 플레이어로 재생
- 오늘 날짜 파일(전송 전 파일) 실시간 요청 시 재생 기능
주요 고려 사항
- SYSTEM 4624 이벤트가 여러번 찍혀 ffmpeg가 여러 번 실행되는 문제
- 로그온 타입 필터 + Event XML 조건 추가
- 다중 RDP 녹화 시 기존 ffmpeg 프로세스가 서로 섞이는 문제
- 세션ID별 PID 파일 관리로 해결
- 운영 서버에서 Window 서버로의 접근 불가
- SFTP 단방향 구조 설계
- 오늘 날짜 파일 전송 전, 사용자 요청 시
- Flask에서 요청 시 sftp로 임시 저장 구조로 해결
'PJT > 영상 파일 재생 PJT' 카테고리의 다른 글
| [RDP 모니터링 프로젝트 #4] Window Scheduler + SFTP 자동 전송 시스템 구축 (0) | 2025.11.30 |
|---|---|
| [RDP 모니터링 프로젝트 #3] 다중 RDP 접속 대응 및 세션별 PID 관리 전략 (0) | 2025.11.30 |
| [RDP 모니터링 프로젝트 #2] ffmpeg 기반 화면 녹화 Batch 스크립트 구현 (0) | 2025.11.30 |
| [RDP 모니터링 프로젝트 #1] Window Server - RDP 접속 이벤트 기반 녹화 구조 설계 (0) | 2025.11.30 |
| [RDP 모니터링 PJT] RDP 화면 녹화 프로젝트 (3) | 2025.11.23 |
