같은 VPN에 관한 세 보고서가 서로 어긋날 수 있으면서도 어느 것 하나 틀리지 않을 수 있다. 성공적인 로그인이라는 말이 저마다 다른 것을 뜻하기 때문이다. 하나는 서버에 도달한 연결을 세고, 다른 하나는 인증 단계가 받아들인 신원을 세며, 세 번째는 초기화를 마친 세션을 센다. 데이터를 모으기 전에 어느 것을 고르느냐가 지표와 주장을 가르는 차이다.

유용한 질문은 어떤 정의가 일반적으로 옳으냐가 아니라, 읽는 사람이 어느 결과에 따라 행동하느냐이다.

세 가지 다른 사건이 같은 이름을 쓴다

서버는 핸드셰이크가 끝나는 순간 전송 연결을 받아들이는데, 이는 어떤 자격 증명도 제시되기 전에 일어난다. 그 사건은 포트에 닿을 수 있고 네트워크 경로가 동작한다는 것을 알려 주며, 누가 접속했는지에 대해서는 아무것도 알려 주지 않는다. 인증은 실패할 수 있는 이후 단계이며, 네트워크 접속을 한 번도 허용받지 못하는 신원에 대해서도 성공할 수 있다.

초기화는 인증 다음에 오며, 초기화를 마친 터널이 하루 종일 놀고 있을 수도 있다. 응용 프로그램의 요청만이 사용자가 원하던 무언가에 도달했음을 보여 주는 사건이다. 이 단계들은 서로 중첩되므로 가장 넓은 단계의 수는 언제나 가장 좁은 단계의 수를 넘는다. 사건의 순서 어디에도 사용자가 생산적이었다는 증거는 없고, 각 관문이 차례로 열렸다는 것만 있다.

제품 문서는 보통 상태를 분명히 이름 붙인다. OpenVPN 관리 인터페이스 문서는 TCP 연결, 인증 결과, 완료된 초기화를 구분하는데, 그것이 바로 보고서에 필요한 구분이다. connected라고 표시된 상태는 이후에 파일 공유나 데이터베이스 작업이 성공했음을 보증하지 않는다.

세션, 신원, 요청을 세라

숫자를 정하기 전에 단위를 정한다. 세션 수는 서비스가 몇 번 쓰였는지, 신원 수는 서로 다른 계정이 몇 개 나타났는지, 요청 수는 얼마나 많은 일이 처리됐는지에 답한다. 공급자도 이것을 다르게 세며, 사용자로 측정한 권리는 세션으로 측정한 그래프와 비교할 수 없다. 잘못된 단위를 고르면 용량 계획이 엉뚱한 양에 맞춰지고 만다.

재접속은 세션 수가 조용히 부풀어 오르는 지점이다. 몇 분마다 끊겼다가 다시 접속하는 클라이언트는 한 사람에 대해 수십 건의 세션 기록을 만든다. 그래서 세션을 사람 수로 세는 보고서는 신뢰성이 가장 나쁜 상황에서 바로 사용량을 과장한다. 규칙을 적어 두라. 재접속 뒤의 새 세션은 따로 세거나, 정한 시간 창 안에서는 앞선 세션의 연속으로 본다.

주소는 이용할 수 있는 가장 약한 신원이다. 터널 주소는 몇 분 뒤 다른 사용자에게 다시 배정될 수 있고, 두 사용자가 변환을 통해 한 주소를 공유할 수도 있다. 로그의 주소에서 사람을 추정하지 말고 인증 사건의 계정 식별자를 붙여야 한다.

실제 하루로 정의를 시험한다

하루치 로그를 가져다 같은 트래픽을 세 가지 방식으로 센다. 세 숫자가 가깝다면 목적에 따라 정의가 그리 중요하지 않을 수 있다. 크게 어긋난다면 보고서는 어느 것을 쓰는지 밝혀야 한다.

journalctl -u openvpn-server@server --since "2026-10-01" --until "2026-10-02" | grep -c "Initialization Sequence Completed"
journalctl -u openvpn-server@server --since "2026-10-01" --until "2026-10-02" | grep -c "Peer Connection Initiated"
awk '/VERIFY OK/ {print $NF}' /var/log/openvpn-server.log | sort -u | wc -l

장애가 알려진 날에 같은 추출을 돌리고 총계가 아니라 모양을 비교한다. 상향 링크가 흔들린 날이라면 연결 사건이 치솟고 서로 다른 계정은 완만하게 늘어야 한다. 그렇지 않다면 그 계수기는 보고서가 주장하는 것과 다른 것을 재고 있을 가능성이 크다.

결과 옆에 질의 자체를 남긴다. 문서화된 필터는 누구나 재현할 수 있고, 필터가 없는 숫자는 감사할 수 없다.

사건이 무엇을 입증하는지 보고한다

실패한 시도는 어느 한쪽에 접어 넣지 말고 따로 분류해야 한다. 실패에는 잘못 입력한 비밀번호, 오래된 프로필을 가진 클라이언트, 의도적인 탐색이 포함되며 셋의 대응은 서로 다르다. 실패는 침입 성공의 증거가 아니고, 무해함의 증거도 아니다.

결론은 사건이 뒷받침하는 강도로 쓴다. 이 계정이 이 시간 창에 이 서비스에 이 출처에서 인증했고, 세션은 초기화에 도달했다. 그 뒤에 사용자가 무엇을 했는지에 대해서는 터널 데이터를 더 늘리는 것이 아니라 응용 프로그램 쪽 기록이 필요하다.

보고서가 라이선스, 용량, 보안 결정을 내릴 사람에게 간다면 정의를 각주가 아니라 첫 줄에 둔다. 정의가 곧 발견이며, 숫자는 그 안에서만 의미가 있다.

관련 글