로깅 속성 참조 항목에서는 아래 내용을 설명

  • W3C 확장 로깅 정의 → W3C 확장 로그 파일 형식에 사용할  있는 일반 속성
  • IIS 로그 정의 → IIS 로그 파일 형식에 사용할  있는 일반 속성
  • NCSA 공통 로그 파일 형식 → NCSA 공통 로그 파일 형식에 사용할  있는 일반 속성

 

 참고

  • ODBC 로깅을 제외한 모든 로그 형식에는 걸린 시간 아래에 나오는 정보에 따라 밀리초 단위로 기록 
  • 클라이언트 요청 타임스탬프는 HTTP.sys(커널 모드 드라이버)  번째 바이트를 받을 (HTTP.sys 요청을 분석하기 초기화되고, IIS에서 보낸 마지막 바이트에 대해 보내기 완료가 이루어질  중지됨 
  • 걸린 시간에는 네트워크의 시간이 반영되지 않음
  • 또한 사이트에 대한  번째 요청은 다른 유사 요청 또는 동일 요청보다 시간이 좀 더 걸림 
  • HTTP.sys  번째 요청으로 로그 파일을 열기 때문임

 

 

W3C 확장 로깅 정의

접두사 의미
s- 서버 작업
c- 클라이언트 작업
cs- 클라이언트 대 서버 작업
sc- 서버 대 클라이언트 작업

 

필드 표시 설명
날짜 date - 작업이 발생한 날짜
시간 time - 작업이 발생한 시간
클라이언트 IP 주소 c-ip - 서버에 액세스한 클라이언트의 IP 주소
사용자 이름 cs-username - 서버에 액세스한 인증된 사용자 이름이며 하이픈(-)으로 표시되는 익명 사용자는 포함 X
서비스 이름 s-sitename - 클라이언트가 액세스한 인터넷 서비스 및 인스턴스 번호
서버 이름 s-computername - 로그 항목을 생성한 서버의 이름
서버 IP 주소 s-ip - 로그 항목을 생성한 서버의 IP 주소
서버 포트 s-port - 클라이언트가 연결된 포트 번호
메서드 cs-method - 클라이언트가 수행하려고 시도한 작업(예: GET 메서드)
URI 스템 cs-uri-stem - 액세스한 리소스(예: Default.htm)
URI 쿼리 cs-uri-query - 클라이언트가 수행하려고 시도한 쿼리(있는 경우)
프로토콜 상태 sc-status - 작업 상태(HTTP 또는 FTP 에서 사용되는 용어)
Win32® 상태 sc-win32-status - 작업 상태(Microsoft Windows® 에서 사용되는 용어)
보낸 바이트 수 sc-bytes - 서버가 보낸 바이트 수
받은 바이트 수 cs-bytes - 서버가 받은 바이트 수
걸린 시간 time-taken - 작업에 걸린 시간(밀리초 단위)
프로토콜 버전 cs-version - 클라이언트가 사용한 프로토콜(HTTP, FTP) 버전으로 HTTP의 경우 HTTP 1.0 또는 HTTP 1.1
호스트 cs-host - 호스트 헤더의 내용 표시
사용자 에이전트 cs(User-Agent) - 클라이언트에서 사용한 브라우저
쿠키 cs(Cookie) - 보내거나 받은 쿠키의 내용(있는 경우)
참조 페이지 cs(Referer) - 사용자가 방문한 이전 사이트이며 이 사이트에서 현재 사이트에 대한 링크를 제공

 

 

Window Server IIS 로그 정의

필드 설명
클라이언트의  IP 주소 - 요청한 클라이언트 컴퓨터의 IP 주소
사용자 이름 - 서버에 액세스한 인증된 사용자 이름이며 하이픈(-)으로 표시되는 익명 사용자는 포함 X
날짜 - 작업이 발생한 날짜
시간 - 작업이 발생한 시간
서비스 및 인스턴스 - 웹 사이트 인스턴스는 W3SVC#로 표시되고, FTP 사이트 인스턴스는 MSFTPSVC#으로 표시
- #은 해당 사이트의 인스턴스.
컴퓨터 이름 - 서버의 NetBIOS(Network Basic Input/Output System) 이름
서버의 IP 주소 - 요청을 서비스한 서버의 IP 주소
걸린 시간 - 작업에 걸린 시간(밀리초 단위)
보낸 바이트 수 - 클라이언트에서 서버로 보낸 바이트 수
받은 바이트 수 - 클라이언트가 서버로부터 받은 바이트 수
서비스 상태 코드 - HTTP 또는 FTP 상태 코드
Windows 상태 코드 - 작업 상태(Microsoft Windows® 에서 사용되는 용어)
요청 형식 - 서버가 받은 요청 형식(예: GET 및 PASS)
작업 대상 - 작업 대상이었던 URL
매개 변수 - 스크립트에 전달되는 매개 변수

 

 

NCSA 공통 로그 파일 형식

필드 설명
원격 호스트 주소 - 요청한 클라이언트 컴퓨터의 IP 주소
원격 로그 이름 - 값은 항상 하이픈(-)
사용자 이름 - 인증된 사용자인 경우에는 도메인\사용자 이름 형식을 사용하고, 익명 사용자의 경우에는 하이픈(-)을 사용
날짜 - 작업이 발생한 날짜
시간 및 GMT 오프셋 - 작업이 발생한 시간 다음에 GMT 오프셋이 표시
요청 및 버전 - 사용된 요청 형식, 대상으로 지정된 URL, 스크립트에 전달된 매개 변수(있는 경우) 및 클라이언트가 사용한 HTTP 버전
서버 상태 코드 - HTTP 상태 코드
보낸 바이트 수 - 서버가 클라이언트에게 보낸 바이트 수

 

 

참고 자료

 

  • 윈도우 서버 2008 을 기준으로 설명
  • 윈도우 서버를 웹 서버로 사용할 때에는 보통 IIS(Internet Information Service, 인터넷 정보 서비스)를 사용
  • IIS를 통해서 HTTP 웹 서버 및 FTP, SMTP 등 다양한 서비스를 구축하고, 서비스 가능
  • IIS로 HTTP(웹 사이트)나 FTP(FTP 사이트)를 운용하게 되면 해당 프로토콜을 통해 데이터를 전송과 관련된 트래픽 로그가 파일에 기록


웹/FTP의 사이트가 로그를 쌓고 있는지, 쌓고 있다면 어디에 쌓고 있는지 확인 필요

1. IIS 관리자를 실행시켜, 특정 사이트를 선택


2. 해당 사이트의 홈이 나오면 IIS 메뉴 아이콘 중에 [로깅] 아이콘을 마우스 더블 클릭

  • 로깅 파일 클릭

3. 아래와 같은 로깅 페이지가 나타냄

  • 로깅 페이지 내용을 보니 매일 로그를 %SystemDrive%\inetpub\logs\LogFiles 폴더에 쌓고 있음
  • 별도로 지정하지 않으면 IIS는 사이트의 로그 파일을 아래의 폴더에 저장
  • %SystemDrive%는 OS(Operating System, 운영체제)가 설치되어 있는 드라이브 (%SystemDrive%는 윈도우 OS에서 사용하는 예약된 변수명)
  • 로깅 양식 확인

4. 로그 폴더 목록 확인

  • 해당 서버는 C드라이브에 OS가 설치되어 있으니 C:\inetpub\logs\LogFiles에 로그 파일들이 기록됨
  • C:\inetpub\logs\LogFiles 폴더 아래에 많은 로그 폴더가 있음 → 로그 파일은 각 사이트마다 별도의 파일로 쌓임
  • 아래는 로그 폴더가 많은데, 그만큼 여러개의 사이트를 운영하고 있다는 것으로 보면 됨

5. 로그 폴더 이름 확인

  • 폴더명만 봐서는 무슨 의미인지, 또 어떤 사이트의 로그 파일인지 분간이 되지를 않음
  • 파일명 앞에 붙은 영문은 사이트를 구분됨
    1. W3SVCXX → 웹 사이트의 로그 파일
    2. FTPSVCXX → FTP 사이트의 로그 파일
  • 뒤에 붙은 숫자는 실제 운영중인 사이트를 구분하는 고유ID값 → 개별 사이트의 고유ID값은 IIS에서 확인 가능
  • IIS에서 좌측 상단의 사이트 트리메뉴를 선택하시면 우측에 IIS에서 관리/운영하고 있는 모든 웹사이트와 FTP사이트가 표시
  • 리스트에서 ID항목에 해당하는 것이 사이트 고유ID로 로그 폴더는 해당 아이디를 폴더 네이밍에 사용

6. 10번 ID를 가진 사이트의 로그 폴더에 접속

  • 특정 폴더로 들어가보면 W3SVC10 이란 폴더에 들어오니, 로그 파일이 상당히 많음
  • 매일매일 2011년 8월부터 로그가 쌓여 있음
  • 만약 접속자가 많은 사이트라던지, 리소스가 많은 사이트라 한 번 접속 시, 데이터 통신이 많이 발생하는 경우, 지속적으로 로그 파일에 많은 로그가 쌓이게 됨 → 로그 파일 용량 제한을 두지 않는다면 하루에 파일 하나가 수백MB~수천BM 그 이상으로 되기도 함
  • 서버 관리자가 별도로 관리(지속적인 삭제, 분산 관리, 대용량 스토리지 구축)를 해주지 않으면 한정되어 있는 서버의 하드디스크 용량은 금방 로그 파일로 가득차게 됨

참고 자료

  • IIS는 IIS 액세스 로그와 Windows 이벤트 로그에서 오류를 기록
  • IIS 설정에서 Web, FTP SMTP, NNTP에서 로그를 기록하도록 설정하였으면 액세스 로그가 생성
  • 사용자가 사이트의 파일을 요청할 때마다 액세스 로그에 기록되고 리소스 요청 히스토리가 생성됨
  • 항목마다 상태 코드를 포함하기 때문에 요청이 성공했는지 실패했는지 판단 가능

 

특정 사이트에 대한 액세스 로그를 보려면 아래 순서를 따라 설정

1. IIS(Internet Information Services) Manager를 실행

  • IIS 아이콘을 클릭

 

2. Web, FTP, SMTP, NNTP 등 액세스 로그를 남기려는 사이트를 클릭하고 Logging 아이콘을 더블 클릭

  • IIS에서 생성된 도메인의 로그 기록을 위해 Logging 설정

 

3. 로그는 다양한 포맷으로 남길 수 있으며 로그를 남기려는 필드 또한 선택이 가능

  • 로그 파일에 기록할 속성을 선정 필요

 

4. [로그 파일 디렉터리] 필드는 사이트 로그에 대한 최상위 디렉터리를 표시

  • 기본 최상위 디렉터리는 “%SystemDrive%\inetpub\logs\LogFiles”
  • 로그는 로그 파일에 기록하거나 윈도우 이벤트 로그에 기록 또는 양쪽 모두에 기록

 

5. 로그파일은 특정 크기 또는 특정일 간격으로 롤오버하여 기록

  • 로그 파일을 롤 오버 기간 선정

 

6. 로그 폴더에서 기록된 로그를 확인 가능

  • 기록된 로그 확인

 

 

생성된 로그 내용 확인 → 파일의 출력되는 내용

#Software: Microsoft Internet Information Services 10.0
#Version: 1.0
#Date: 2018-10-08 21:44:24
#Fields: date time s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs(User-Agent) cs(Referer) sc-status sc-substatus sc-win32-status time-taken


2018-10-08 21:44:24 ::1 GET / - 80 - ::1 Mozilla/5.0+(Windows+NT+10.0;+WOW64;+Trident/7.0;+rv:11.0)+like+Gecko - 200 0 0 111
2018-10-08 21:44:24 ::1 GET /iisstart.png - 80 - ::1 Mozilla/5.0+(Windows+NT+10.0;+WOW64;+Trident/7.0;+rv:11.0)+like+Gecko http://localhost/ 200 0 0 15
2018-10-08 21:44:24 ::1 GET /favicon.ico - 80 - ::1 Mozilla/5.0+(Windows+NT+10.0;+WOW64;+Trident/7.0;+rv:11.0)+like+Gecko - 404 0 2 0
2018-10-08 21:44:29 ::1 GET /favicon.ico - 80 - ::1 Mozilla/5.0+(Windows+NT+10.0;+WOW64;+Trident/7.0;+rv:11.0)+like+Gecko - 404 0 2 0
2018-10-08 21:44:32 ::1 GET / - 80 - ::1 Mozilla/5.0+(Windows+NT+10.0;+WOW64;+Trident/7.0;+rv:11.0)+like+Gecko - 304 0 0 0

 

 

참고 자료

 

 

  • 서버 하나에 홈페이지 하나를 구성하는 게 가장 단순한 방법이지만, 사이트 하나만 운영하기에는 서버의 자원이 남음 → 여러 홈페이지를 하나의 서버에 만들 수 있음
  • 여러 홈 페이지를 구성하는 설정을 가상 호스트로 관리함
  • 여러 가상호스트를 만들 수 있지만, 우선적으로 Windows Server 2019의 IIS에서 하나의 가상호스트(도메인)를 구성하고 테스트를 진행 예정
  • 생성할 테스트 도메인 : hippo-iis-test.aaa.com(테스트용으로 사용 불가)


1. 가상호스트(hippo-iis-test.aaa.com)에서 사용할 hippo-iis-test.aaa.com 이름의 폴더 만들기

  • 사이트 내용이 들어갈 폴더를 생성
  • IIS 기본 폴더인 inetpub 안에 hippo-iis-test.aaa.com 이름을 가지는 폴더를 생성
  • 폴더 위치나 폴더 이름은 달라도 상관 없음


2. index.html 만들기

  • hippo-iis-test.aaa.com 폴더 안에 이동 후 index.html 파일 오픈

    PS C:\inetpub\hippo-iis-test.aaa.com> pwd
    
    Path
    ----
    C:\inetpub\hippo-iis-test.aaa.com
    
    PS C:\inetpub\hippo-iis-test.aaa.com> cd C:\inetpub\hippo-iis-test.aaa.com
    PS C:\inetpub\hippo-iis-test.aaa.com> pwd
    
    Path
    ----
    C:\inetpub\hippo-iis-test.aaa.com

  • hippo-iis-test.aaa.com 폴더 안에 아래과 같은 내용의 index.html 파일을 생성

    PS C:\inetpub\hippo-iis-test.aaa.com> notepad index.html
    <!doctype html>
    <html lang="en">
      <head>
        <meta charset="UTF-8">
        <title>IIS</title>
      </head>
      <body>
        <h1>HELLO HIPPO</h1>
      </body>
    </html>

  • index.html 파일 생성 확인



3. 사이트 추가하기

  • IIS(인터넷 정보 서비스) 관리자를 오픈

  • 왼쪽 패널에서 사이트를 선택한 후 오른쪽에서 [웹 사이트 추가]를 클릭


  • 사이트 이름을 적절히 명명하면 됨. → 호스트 이름과 동일하게 생성 예정(hippo-iis-test.aaa.com)

  • 실제 경로는 해당 사이트 내용이 들어갈 폴더를 선택 → C:\inetpub\hippo-iis-test.aaa.com

  • 바인딩의 호스트 이름에 도메인 이름을 입력 → hippo-iis-test.aaa.com

  • [확인]을 클릭


  • 가상호스트 생성 완료



4. index.html 접속 테스트

5. mp4 파일 이동 후 접속 테스트

  • izone.mp4 파일 이동 후 접속 테스트 : http://hippo-iis-test.aaa.com/izone.mp4

  • izone.mp4 파일을 C:\inetpub\hippo-iis-test.aaa.com 폴더로 이동

    PS C:\> cd C:\Users\Administrator\Downloads
    PS C:\Users\Administrator\Downloads> cp .\izone.mp4 C:\inetpub\hippo-iis-test.aaa.com\
    PS C:\Users\Administrator\Downloads> cd C:\inetpub\hippo-iis-test.aaa.com\
    PS C:\inetpub\hippo-iis-test.aaa.com> ls
    
        Directory: C:\inetpub\hippo-iis-test.aaa.com
    
    Mode                LastWriteTime         Length Name
    ----                -------------         ------ ----
    -a----       11/22/2022   8:32 AM            162 index.html
    -a----       11/22/2022   5:46 AM      782287199 izone.mp4

1. 서버 관리자 접속

  • 윈도우 서버에서 서비스를 설치하고 실행하도록 제어하는 관제탑 같은 역할을 하는 것이 바로 서버 관리자
  • 서버 관리자를 통해 윈도우의 모든 설정을 제어 가능
  • 윈도우의 일반 설정은 제어판으로 가능하지만, 운영체제의 근본적인 시스템인 서비스 시작 및 설정과 관련된 부분은 Windows Server 2008부터 서버관리자에 통합
  • 현재 사용하는 버전인 Windows Server 2012 R2에서는 외부에 있는 원격 서버(컴퓨터)들을 관리할 수 있는 원격 관리자 기능까지 내장

 

  • 서버 관리자 접속 방법(서버 관리자 > 연할 및 기능 추가)

 

 

2. Web Server (IIS) 를 선택

  • IIS 웹서버는 인터넷 정보 서비스(Internet Information Services)의 약자로써, 마이크로소프트 윈도우를 사용하는 서버들을 위한 인터넷 기반 서비스들의 모임
  • 아파치 웹 서버에 이어 세계에서 두 번째로 가장 잘 알려진 웹 서버 → 2007년 10월 기준으로 전 세계 웹사이트의 37.13%와 전 세계 활성화 웹사이트들의 38.23%가 인터넷 정보 서비스를 사용

 

  • IIS의 장점
    • OS 이용자의 대부분이 윈도우를 사용하여 쉽게 설치가 가능
    • 시각적으로 창(Window)에서 작업을 하는 경우가 많아 일반적인 텍스트(Text)로 작업을 할 때보다는 훨씬 용이한 작업이 가능
    • 웹 프로그램을 쉽게 설치 & 관리가 가능하고, 쉽게 설정 및 확인이 가능

 

  • IIS의 단점
    • 운영체제 사용이 윈도우만 가능하여, 다른 OS를 사용하는 분들은 사용이 거의 불가능
    • 아파치(Apache)보다는 이용자수가 적어서 좀 더 고급 정보를 찾기 힘들 때가 있으며, 대부분의 정보를 찾을 수 있음

 

  • 쭉쭉 다음만 눌러주다가, 서버 역할 선택 탭에서 Web Server (IIS)를 선택

 

 

3. IIS 역할 서비스 추가

  • 다시 쭉쭉 다음만 눌러주다가, 역할 서비스들은 나중에 추가
    1. Default Document
    2. Directory Browsing
    3. HTTP Errors
    4. Static Content
    5. HTTP Redirection
    6. WebDAV Publishing
    7. HTTP Logging
    8. Static Content Compression
    9. Request Filtering
    10. IIS Management Console

 

  • IIS 역할 서비스 추가

 

 

4. IIS 설치 완료

  • 일부 기능은 재시작해야 작동 가능
  • 재시작이 필요하면 체크해주고 설치 필요

 

  • 설치 완료

 

 

5. IIS 설치 확인

  • 인터넷에 접속해서 http://localhost/로 이동시 IIS 설치 확인 가능 → IIS 창이 뜨면 성공
  • 외부에서 접속 시 http://서버IP/ 로 이동

 

 

 

6. World Wide Web Publising Service(W3SVC)

  • World Wide Web Publishing Service(W3SVC)는 WWW 서비스라고도 하는 IIS (인터넷 정보 서비스)
  • World Wide Web Publishing Service(W3SVC)는 HTTP 프로토콜 및 HTTP 성능 카운터를 관리
  • 인터넷 정보 서비스 관리자를 사용하여 웹 연결 및 관리를 제공

 

  • 서비스(Services)에서 Windows Process Activation Service(WAS), World Wide Web Publishing Services(W3SVC)가 실행 중 확인

 

 

+ Recent posts