시도 로그가 post-incident 읽을거리이자 매주 건강 체크. 목표는 모든 row 읽는 거 아니라 — 패턴을 한눈에 보이게 하는 거.
display
마지막 100 row, 최신 먼저, 성공/실패 색 코딩. 그게 다.
주시할 패턴
- 한 IP 의 burst 후 침묵 — retry limit 도달, blacklist 됨. 의도대로 작동.
- 많은 IP 에서 꾸준한 drip — 분산 스캐너. WAF / fail2ban / 포트 변경 조사.
- curl / python-requests / wget UA — 100% 봇. 진짜 트래픽은 브라우저.
- 모르는 IP 에서 성공 로그인 — 이 대시보드 그만 읽고 TRACK 7 으로 가.
보존
SQLite 가 수백만 row 처리 가능, 근데 UI 는 100 visible 넘으면 무용. DB 에 모든 row 유지 (싼 forensic), 기본 마지막 100 display, 파야 할 때 위해 "500개 더 로드" 버튼.