Share via


IIS 로그 파일 스토리지 관리

작성자: Jim van de Erve

압축, 원격 스토리지 및 스크립팅된 삭제를 사용하여 IIS(인터넷 정보 서비스) 로그 파일에서 사용하는 서버 디스크 공간의 양을 관리할 수 있습니다.

개요

IIS에서 생성하는 로그 파일은 시간이 지남에 따라 많은 양의 디스크 공간을 사용할 수 있습니다. 로그는 잠재적으로 전체 하드 드라이브를 채울 수 있습니다. 이 문제를 완화하기 위해 많은 사용자가 로깅을 완전히 해제합니다. 다행히 다음과 같은 대안이 있습니다.

위의 완화는 아래 섹션에 설명되어 있습니다. 디스크 사용을 제어하기 위해 다음을 수행할 수도 있습니다.

  • 불필요한 속성 필드를 생략하여 로그 크기 제한
  • 웹 사이트 및 애플리케이션에 대한 별도의 로그 만들기
  • 중앙 집중식 이진 로깅을 사용하여 메모리 리소스를 유지합니다.

자세한 내용은 IIS에서 로깅 구성을 참조하세요.

폴더 압축 사용

IIS 로그 파일은 원래 크기의 약 2%로 압축됩니다. 다음과 같이 로그 파일 압축을 사용하도록 설정합니다. 이 절차를 수행하려면 관리자여야 합니다.

  1. 아이콘 표시줄에서 파일 관리자 아이콘을 클릭합니다.
  2. IIS 로그 파일이 포함된 폴더로 이동합니다(기본적으로 %SystemDrive%\inetpub\logs\LogFiles).
  3. 폴더를 마우스 오른쪽 단추로 클릭하고 속성을 클릭합니다.
  4. 속성 페이지의 일반 탭에서 고급을 클릭합니다.
  5. 콘텐츠 압축을 클릭하여 디스크 공간을 절약한 다음 확인을 클릭합니다. 압축을 사용하도록 설정
  6. 적용을 클릭한 다음 폴더만 압축할지 또는 폴더, 하위 폴더 및 해당 파일을 압축할지 선택합니다.
  7. 확인을 클릭합니다. 폴더 내용이 압축되었는지 확인합니다. 폴더의 이름과 각 파일의 이름은 파란색으로 칠해야 하며 압축 파일의 크기는 작아야 합니다.

이는 디스크 사용량을 줄이는 간단한 방법입니다. 그러나 디스크 사용량은 시간이 지남에 따라 계속 증가하고 결국 하드 드라이브를 채울 수 있기 때문에 최종 솔루션은 아닙니다.

폴더에 이미 상당한 양의 데이터가 포함된 경우 컴퓨터에서 콘텐츠를 압축하는 데 시간이 걸릴 수 있습니다. 또한 이 일회성 프로세스는 초기 압축 중에 컴퓨터 속도가 느려질 수 있으므로 프로덕션 서버인 경우 사용량이 많은 시간에 이 작업을 수행하여 서비스 저하를 방지합니다.

로그 폴더를 원격 시스템으로 이동

IIS 로그 파일은 기본적으로 IIS 서버의 폴더에 %SystemDrive%\inetpub\logs\LogFiles 저장됩니다. 폴더는 서버 또는 개별 사이트에 대한 로깅 페이지의 디렉터리 속성에 구성됩니다. 로그 디스크 사용 문제를 줄이려면 IIS 로그 파일을 더 많은 공간이 있는 다른 서버의 폴더로 이동할 수 있습니다. 이 서버는 로컬 IIS 서버와 동일한 도메인 또는 다른 도메인에 있을 수 있습니다. 전체 서버 또는 개별 웹 사이트에 대해 원격으로 로그 파일을 저장할 수 있습니다.

이 솔루션은 로컬 하드 드라이브가 충돌하는 경우 로그 데이터를 원격 스토리지에서 계속 사용할 수 있기 때문에 시스템의 보안을 도울 수 있습니다. 또한 로그 파일은 분석 시스템에서 사용할 수 있습니다.

다음과 같이 IIS 로그 파일의 위치를 원격 공유로 변경합니다.

  1. IIS를 실행하는 로컬 웹 서버와 동일한 도메인에 있는 원격 서버에 로그 파일 디렉터리를 만듭니다.

  2. 폴더의 속성 페이지의 공유 탭에서 공유 를 클릭하여 디렉터리를 공유합니다. 보안 탭에서 적절한 권한이 있는 그룹 및 사용자를 할당합니다. 적절한 그룹과 사용자가 로그 파일을 읽고 쓸 수 있는지 확인합니다. 로그 폴더 속성

    자세한 내용은 원격 로깅에 대한 권한 구성을 참조하세요.

    참고: 다른 도메인의 원격 서버에 로그 파일을 쓰려면 도메인 간 로깅에 대해 Null 세션 설정을 참조하세요.

  3. 로컬 웹 서버에서 IIS 관리자 를 엽니다.

  4. IIS 관리자연결 창에서 서버 또는 웹 사이트를 클릭합니다.

  5. 로깅을 두 번 클릭합니다. 로깅 아이콘

  6. 디렉터리 텍스트 상자에 원격 서버에서 만든 디렉터리의 전체 UNC 경로를 입력합니다. 예를 들어 \servername\Logs를 입력합니다. 여기서 "servername"은 원격 서버의 이름을 나타내고 "로그"는 로그 파일이 저장되는 공유의 이름을 나타냅니다. 로깅 페이지

  7. 작업 창에서 적용을 클릭한 다음 확인을 클릭합니다. 디렉터리 내의 모든 웹 사이트는 원격 공유에 데이터 로깅을 시작해야 합니다.

    자세한 내용은 원격 로깅을 참조하세요.

스크립트로 이전 로그 파일 삭제

특정 기간보다 오래된 로그 파일을 자동으로 삭제하는 스크립트를 실행하여 로그 파일의 디스크 사용을 제어할 수 있습니다. 예약된 작업에서 이 스크립트를 실행하면 지속적인 유지 관리 없이 디스크가 제어되지 않는 문제가 유지됩니다.

다음 VBScript는 폴더에 있는 각 로그 파일의 기간을 검사 지정된 기간보다 오래된 로그 파일을 삭제합니다. 스크립트를 사용자 지정하려면 스크립트의 줄 1에 있는 폴더의 이름과 경로를 변경하고 최대 기간을 2줄의 원하는 값(일)으로 변경하면 됩니다.

sLogFolder = "c:\inetpub\logs\LogFiles"
iMaxAge = 30   'in days
Set objFSO = CreateObject("Scripting.FileSystemObject")
set colFolder = objFSO.GetFolder(sLogFolder)
For Each colSubfolder in colFolder.SubFolders
        Set objFolder = objFSO.GetFolder(colSubfolder.Path)
        Set colFiles = objFolder.Files
        For Each objFile in colFiles
                iFileAge = now-objFile.DateCreated
                if iFileAge > (iMaxAge+1)  then
                        objFSO.deletefile objFile, True
                end if
        Next
Next

위의 스크립트는 모든 하위 폴더를 검사하므로 지정된 폴더의 및 아래에 있는 모든 사이트에 대한 로그를 처리합니다. 프로세스를 단일 사이트로 제한하려면 경로를 적절하게 변경합니다.

스크립트를 수동으로 실행하려면 관리자 명령줄에서 다음 스크립트를 실행합니다. cscript.exe c:\scripts\retentionscript.vbs

스크립트를 사용하여 로그 파일을 삭제하는 것은 디스크 공간을 사용하는 로그 파일 문제에 대한 장기적이고 신뢰할 수 있는 솔루션입니다. 아래와 같이 프로세스를 자동화하는 경우 지속적인 유지 관리가 필요하지 않습니다.

스크립트를 예약된 작업으로 실행

스크립트를 주기적으로 실행하는 Windows 작업 일정을 만들어 스크립트로 로그 파일을 삭제하는 작업을 자동화할 수 있습니다. Windows 작업 스케줄러를 사용하여 언제든지 스크립트가 실행되도록 예약할 수 있습니다. 예약된 작업을 구성하는 방법은 로그 파일 롤오버 옵션의 구성과 조정되어야 합니다.

  1. 서버 관리자 열고 도구 메뉴를 클릭한 다음 작업 스케줄러를 클릭합니다.
  2. 작업 스케줄러 대화 상자의 작업 창에서 작업 만들기를 클릭합니다. 작업 컨트롤 만들기
  3. 작업 만들기 대화 상자의 일반 탭에서 작업의 이름(예: "로그 파일 삭제")을 입력합니다. 스크립트를 실행할 수 있는 충분한 권한이 있는 사용자 계정을 선택하여 보안 속성을 설정합니다. 작업 만들기 대화 상자
  4. 트리거 탭 클릭한 다음 새로 만들기를 클릭합니다. 새 트리거 대화 상자에서 작업 시작을일정에 따라 로 설정합니다. 주기(예: 매일)를 선택합니다. 시작 날짜를 입력하고 고급 설정을 선택한 다음 일정을 시작할 준비가 되면 사용이 선택되어 있는지 확인합니다. 확인을 클릭합니다. 새 트리거 대화 상자
  5. 작업 탭, 새로 만들기를 차례로 클릭합니다. 새 작업 대화 상자에서 작업에 대한 값을 선택합니다. 이 경우 프로그램 시작을 선택합니다. 프로그램/스크립트에서 cscript를 입력하고 인수 추가(선택 사항)에 스크립트 파일의 경로와 이름(예C:\iis\Log\_File\_Deletion.vbs: )을 입력합니다. 확인을 클릭합니다. 새 작업 대화 상자
  6. 확인을 클릭합니다.
  7. 작업이 활성 작업 창에 추가되었는지 확인합니다.
  8. 새 작업을 마우스 오른쪽 단추로 클릭하고 실행을 선택합니다. 작업 스케줄러 대화 상자
  9. 스크립트가 실행된 폴더로 이동하여 적절한 로그 파일이 삭제되었는지 확인합니다.
  10. 작업 스케줄러로 돌아가서 작업을 마우스 오른쪽 단추로 클릭하고 종료를 클릭하여 상태 준비로 돌아가서 예약된 실행을 위해 작업이 준비됩니다.