애플리케이션이 새 로그 파일을 만들었다는 사실은 중앙 수집기가 그 줄을 읽고 전달했다는 뜻이 아닙니다. 회전 전 파일, 새 파일, 수집기 상태와 중앙 도착 기록을 각각 비교해야 합니다.

rsyslog 8 imfile 문서는 회전이 제대로 처리되려면 rsyslogd가 회전 중 실행 중이어야 한다고 설명합니다. 수집기가 회전 때 중단되면 새 파일은 읽어도 이전 파일에 남은 미보고 행을 더 이상 얻지 못할 수 있습니다.

파일 생성과 중앙 수집은 서로 다른 단계입니다

일반적인 흐름은 애플리케이션이 로컬 파일에 기록하고, 파일 수집기가 내용을 읽은 뒤 중앙 저장소로 전달하는 방식입니다. 파일 이름이 app.log에서 app.log.1로 바뀌거나 새 inode가 만들어져도 중앙 수집의 처리 위치와 전송 완료가 자동으로 확인되는 것은 아닙니다. man7.org에 렌더링된 logrotate 프로젝트 매뉴얼은 자동 회전·압축·삭제 역할을 설명하지만, 이번 예시에서는 파일 회전 문구만 참고하고 특정 copytruncate 동작이나 손실 폭은 주장하지 않습니다.

rsyslog imfile 공식 문서의 안정판은 파일 회전을 지원하며, rsyslogd가 회전 중 실행 중이면 옛 파일의 남은 행을 처리한 뒤 새 파일을 처음부터 읽는다고 설명합니다. 회전 중 데몬이 멈춰 있으면 새 파일은 읽더라도 옛 파일에서 아직 보고되지 않은 행은 다시 얻지 못할 수 있습니다. 따라서 중앙 검색 결과만 보고 원본 이벤트가 생성되지 않았다고 단정할 수 없습니다.

파일 안 순번과 중앙 도착 기록을 비교합니다

모든 파일명·inode·순번은 설명용 창작 값이며 실제 로그 수집 결과가 아닙니다.
시간·상태로컬 파일 관측rsyslog 상태중앙 수집 관측
13:59app.log inode 12에 이벤트 001–007실행 중, 007까지 처리001–007 검색 가능
14:00 회전app.log.1 inode 12에 008 기록 후 app.log inode 20 생성회전 시각에 서비스 중단008 도착 기록 없음
14:02 재기동새 app.log inode 20에 009–012 기록새 파일부터 읽기 시작009–012 수집됨
조사 시점보존된 app.log.1에서 교육 순번 008 확인중단·재기동 시간 확인중앙 공백 008은 회전 중 미보고 행 후보

중앙에서 008이 보이지 않아도 로컬 회전 파일에는 존재하므로, 이 예에서는 애플리케이션 생성 실패보다 수집 공백을 먼저 조사합니다. 파일을 보존하지 않았다면 그 줄이 생성됐는지 확인할 독립 자료가 줄어들 수 있습니다. 다만 순번은 예제에서만 넣은 추적값이며 모든 실제 로그에 존재하지 않습니다. 중앙 도착 시각은 파일 기록 시각보다 늦을 수 있고, 중복·지연 전송도 가능하므로 이벤트 ID나 원본 timestamp를 함께 대조해야 합니다.

회전 경계에서 확인할 자료

  1. 회전 전후 원본 파일명, inode 또는 파일 식별자, 크기·시간과 보존된 archived file을 확인합니다.
  2. logrotate 실행·상태 기록에서 회전 시점과 새 파일 생성 시점을 맞춥니다.
  3. rsyslog imfile 서비스의 실행·중지 구간과 입력 경로·상태 저장 자료를 확인합니다.
  4. 같은 구간의 로컬 줄과 중앙 수집 메시지를 원본 시간·테스트 순번·이벤트 식별자로 비교합니다.
  5. 회전 중 수집기 정지가 있었으면 이전 파일에 남은 미보고 행을 누락 후보로 기록합니다.
  6. 원인 개선은 대상 rsyslog·logrotate 버전과 운영 절차를 확인한 뒤 담당자가 검토하고, 변경 후 승인된 테스트로 회전 전후 연속성을 재확인합니다.

연속된 테스트 순번도 무손실 보증은 아닙니다

중앙에 001–012가 모두 있다는 결과는 그 테스트 줄이 도착했다는 증거입니다. 실제 운영 로그의 모든 입력원, 전달 큐, 파서 오류, 보존 기간까지 무손실이었다는 보증은 아닙니다. 반대로 중앙 검색에서 빠진 한 줄은 원본 파일, 상태 파일, 서비스 중단 기록과 함께 확인해야 원인이 좁혀집니다. 사용한 logrotate 매뉴얼은 2026-08-04 수집된 upstream 본문의 렌더링이므로 특정 설치 버전이나 현재 최신판을 대신하지 않고, rsyslog 문서는 8 daily stable로 표기된 페이지입니다.

복습: 중앙에서 빠진 008은 생성되지 않았나요?

문제: 중앙 기록에는 007 다음에 009가 있지만 보존된 회전 파일에는 008이 있고, 수집기는 회전 시각에 중단됐습니다. 우선 결론은 무엇인가요?

정답: 008은 로컬에서 생성됐으나 중앙에 수집되지 않은 후보입니다. rsyslog 문서의 중단 조건과 일치하는지 timestamp·수집 상태·전송 기록을 확인하고, 애플리케이션 자체에서 생성되지 않은 것으로 분류하지 않습니다.

정답을 가리고 확인해 보세요

이 글을 위해 만든 학습 예시이며 공식 기출문제나 판매 카드의 인용이 아닙니다.

창작 테스트에서 회전 전 파일에 순번 020–024가 있고 수집기가 회전 도중 중지됐습니다. 재기동 후 새 파일 025부터 중앙에서 보이며 보존된 old file에는 024도 있습니다. 가장 타당한 수집 결론과 추가 증거 하나는 무엇인가요?

정답과 해설 확인024는 로컬 생성 뒤 중앙에서 빠진 후보입니다. 회전 파일·수집기 중단·재기동 시각과 중앙 수집 timestamp를 비교해 수집 공백 여부를 확인합니다.

rsyslog imfile 문서는 회전 중 실행 여부와 이전 파일 미보고 행의 처리 가능성을 구분합니다. 로컬 파일 존재는 중앙 전달 완료를 뜻하지 않습니다.

이 주제의 회상 연습 이어가기