最近需要監(jiān)控" />

国产成人精品无码青草_亚洲国产美女精品久久久久∴_欧美人与鲁交大毛片免费_国产果冻豆传媒麻婆精东

15158846557 在線咨詢 在線咨詢
15158846557 在線咨詢
所在位置: 首頁 > 營銷資訊 > 網(wǎng)站運營 > 微軟IIS網(wǎng)站日志記錄的相關技巧以及日志日期為什么相差8小時(更新第7次)

微軟IIS網(wǎng)站日志記錄的相關技巧以及日志日期為什么相差8小時(更新第7次)

時間:2023-05-06 22:33:02 | 來源:網(wǎng)站運營

時間:2023-05-06 22:33:02 來源:網(wǎng)站運營

微軟IIS網(wǎng)站日志記錄的相關技巧以及日志日期為什么相差8小時(更新第7次):雖然現(xiàn)在使用PHP Java 制作網(wǎng)站的占大多數(shù),一般使用的是Apache 網(wǎng)站服務器,但使用Windows IIS做為網(wǎng)站服務器的還是有一定的人群。

最近需要監(jiān)控網(wǎng)站的訪問日志,所以研究了一下IIS的網(wǎng)站日志功能。記錄一下備忘!

一、IIS提供了4種日志文件格式

在"格式"下的"日志文件"部分中,選擇以下日志文件格式之一:

1) IIS日志文件格式

使用 Microsoft IIS 日志文件格式來記錄有關站點的信息。這種格式由 HTTP.sys 進行處理,并且是固定的基于 ASCII 文本的格式,這意味著無法自定義記錄的字段。字段由逗號分隔,記錄的時間為本地時間。

2) NCSA日志文件格式

使用美國國家超級計算技術應用中心 (NCSA) 公用日志文件格式來記錄有關站點的信息。這種格式由 HTTP.sys 進行處理,并且是固定的基于 ASCII 文本的格式,這意味著無法自定義記錄的字段。字段由空格分隔,記錄的時間為帶有協(xié)調世界時 (UTC) 偏差的本地時間。

3) W3C日志文件格式

使用集中 W3C 日志文件格式來記錄有關服務器上的所有站點的信息。這種格式由 HTTP.sys 進行處理,并且是可自定義的基于 ASCII 文本的格式,這意味著可以指定記錄的字段。通過單擊"日志"頁上的"選擇字段"來指定在"W3C 日志記錄字段"對話框中記錄的字段。字段由空格分隔,記錄的時間采用協(xié)調世界時 (UTC) 格式。所以國內有時看到日志的時間與你本地的時間是相隔8小時,就是這個原因了。

4) 自定義日志文件格式

對自定義的日志記錄模塊使用自定義格式。如果選擇此選項,則"日志"頁將被禁用,因為無法在 IIS 管理器中配置自定義日志記錄。

二、IIS日志文件存儲位置

1) IIS 默認路徑為 %SystemDrive%/inetpub/logs/LogFiles。
在"目錄"下,可指定應存儲日志文件的路徑。

2)建議將日志文件存儲在 systemroot 之外的目錄中。

這樣方便將來備份網(wǎng)站程序和數(shù)據(jù)時,避免將占和空間非常大的日志文件也包含進去。

三、日志滾動更新避免占用太大空間

1) 在"日志文件滾動更新"部分中,選擇下列選項之一:

  - 計劃:根據(jù)下列值之一來創(chuàng)建新日志文件:

  - 每小時:每小時創(chuàng)建一個新日志文件。

  - 每天:每天創(chuàng)建一個新日志文件。

  - 每周:每周創(chuàng)建一個新日志文件。

  - 每月:每月創(chuàng)建一個新日志文件。

  - 最大文件大小(字節(jié)):在文件達到某個大?。▎挝粸樽止?jié))時創(chuàng)建新日志文件。最小文件大小為 1048576 字節(jié)。如果將此屬性設置為小于 1048576 字節(jié)的值,則會隱式將默認值假定為 1048576 字節(jié)。

  - 不創(chuàng)建新的日志文件:只有一個日志文件,在記錄信息的過程中,此文件將不斷變大。

2)滾動更新使用本地服務器時間

選中"使用本地時間進行文件命名和滾動更新"以指定日志文件命名和滾動更新的時間都使用本地服務器時間。如果未選定此項,則使用協(xié)調世界時 (UTC)。

  注:無論此設置為何值,實際日志文件中的時間戳將對從"格式"列表中選擇的日志格式使用此時間格式。例如,NCSA 和 W3C 日志文件格式對時間戳使用 UTC 時間格式。

四、選擇要記錄的 W3C 字段

如果希望控制日志文件中存儲的數(shù)據(jù)量,或不記錄無關的內容,則可以選擇要記錄的 W3C 字段。

  1. 打開 IIS 管理器,然后導航至要管理的級別。

  2. 在"功能視圖"中,雙擊"日志"。

  3. 在"日志"頁的"格式"下,單擊"日志文件"部分中的"選擇字段"。

  4. 在"W3C 日志記錄字段"對話框中,選擇下列一個或多個選項:

  - 日期(date):發(fā)出請求的日期。

  - 時間(time):發(fā)出請求的時間(協(xié)調世界時 (UTC))。

  - 客戶端 IP 地址(c-ip):發(fā)出請求的客戶端的 IP 地址。

  - 用戶名(cs-username):訪問服務器的已通過身份驗證的用戶的名稱。匿名用戶用連字符來表示。

  - 服務名(s-sitename):滿足請求的站點實例編號。

  - 服務器名稱(s-computername):生成日志文件項的服務器的名稱。

  - 服務器 IP 地址(s-ip):生成日志文件項的服務器的 IP 地址。

  - 服務器端口(s-port):為服務配置的服務器端口號。

  - 方法(cs-method):請求的操作,例如 GET 方法。

  - URI 資源(cs-uri-stem):操作的統(tǒng)一資源標識符或目標。

  - URI 查詢(cs-uri-query):客戶端嘗試執(zhí)行的查詢(如果有)。只有動態(tài)頁面才需要統(tǒng)一資源標識符 (URI) 查詢。

  - 協(xié)議狀態(tài)(sc-status):HTTP 或 FTP 狀態(tài)代碼。

  - 協(xié)議子狀態(tài)(sc-substatus):HTTP 或 FTP 子狀態(tài)代碼。

  - Win32 狀態(tài)(sc-win32-status):Windows 狀態(tài)代碼。

  - 發(fā)送的字節(jié)數(shù)(sc-bytes):服務器發(fā)送的字節(jié)數(shù)。

  - 接收的字節(jié)數(shù)(cs-bytes):服務器接收的字節(jié)數(shù)。

  - 所用時間(time-taken):操作所花費的時間(毫秒)。

  - 協(xié)議版本(cs-version):客戶端使用的協(xié)議版本(HTTP 或 FTP)。

  - 主機(cs-host):主機名稱(如果有)。

  - 用戶代理(cs(UserAgent)):客戶端使用的瀏覽器類型。

  - Cookie (cs(Cookie)):發(fā)送或接收的 Cookie 內容(如果有)。

  - 引用站點(cs(Referer)):用戶上次訪問的站點。此站點提供與當前站點的鏈接。

五、網(wǎng)站返回的狀態(tài)代碼

1、返回代碼:HTTP協(xié)議狀態(tài)碼的含義

   協(xié)議狀態(tài)sc-status,是服務器日記擴展屬性的一項

2、各狀態(tài)碼含義:

  "100" :Continue,客戶必須繼續(xù)發(fā)出請求。

  "101" :witching Protocols,客戶要求服務器根據(jù)請求轉換HTTP協(xié)議版本。

  "200" :OK,交易成功。

  "201" :Created,提示知道新文件的URL。

  "202" :Accepted,接受和處理、但處理未完成。

  "203" :Non-Authoritative Information,返回信息不確定或不完整。

  "204" :No Content,請求收到,但返回信息為空。

  "205" :Reset Content,服務器完成了請求,用戶代理必須復位當前已經(jīng)瀏覽過的文件。

  "206" :Partial Content,服務器已經(jīng)完成了部分用戶的GET請求。

  "300" :Multiple Choices,請求的資源可在多處得到。

  "301" :Moved Permanently,刪除請求數(shù)據(jù)。

  "302" :Found,在其他地址發(fā)現(xiàn)了請求數(shù)據(jù)。

  "303" :See Other,建議客戶訪問其他URL或訪問方式。

  "304" :Not Modified,客戶端已經(jīng)執(zhí)行了GET,但文件未變化。

  "305" :Use Proxy,求的資源必須從服務器指定的地址得到。

  "306" :前一版本HTTP中使用的代碼,現(xiàn)行版本中不再使用。

  "307" :Temporary Redirect,申明請求的資源臨時性刪除。

  "400" :Bad Request,錯誤請求,如語法錯誤。

  "401" :Unauthorized,請求授權失敗。

  "402" :Payment Required,保留有效ChargeTo頭響應。

  "403" :Forbidden,請求不答應(具體可查看博客《403 Forbidden錯誤的原因和解決方法》的相關介紹)。

  "404" :Not Found,沒有發(fā)現(xiàn)文件、查詢或URl(具體可查看博客《404 Not Found錯誤頁面的解決方法和注意事項》的相關介紹)。

  "405" :Method Not Allowed,用戶在Request-Line字段定義的方法不答應。

  "406" :Not Acceptable,根據(jù)用戶發(fā)送的Accept拖,請求資源不可訪問。

  "407" :Proxy Authentication Required,類似401,用戶必須首先在代理服務器上得到授權。

  "408" :Request Time-out,客戶端沒有在用戶指定的餓時間內完成請求。

  "409" :Conflict,對當前資源狀態(tài),請求不能完成。

  "410" :Gone,服務器上不再有此資源且無進一步的參考地址。

  "411" :Length Required,服務器拒絕用戶定義的Content-Length屬性請求。

  "412" :Precondition Failed,一個或多個請求頭字段在當前請求中錯誤。

  "413" :Request Entity Too Large,請求的資源大于服務器答應的大小。

  "414" :Request-URI Too Large,請求的資源URL長于服務器答應的長度。

  "415" :Unsupported Media Type,請求資源不支持請求項目格式。

  "416" :Requested range not satisfiable,請求中包含Range請求頭字段,在當前請求資源范圍內沒有range指示值,請求也不包含If-Range請求頭字段。

  "417" :Expectation Failed,服務器不滿足請求Expect頭字段指定的期望值,假如是代理服務器。

  "500" :Internal Server Error,服務器產(chǎn)生內部錯誤。

  "501" :Not Implemented,服務器不支持請求的函數(shù)。

  "502" :Bad Gateway,服務器暫時不可用,有時是為了防止發(fā)生系統(tǒng)過載。

  "503" :Service Unavailable,服務器過載或暫停維修。

  "504" :Gateway Time-out,關口過載,服務器使用另一個關口或服務來響應用戶,等待時間設定值較長。

  "505" :HTTP Version not supported,服務器不支持或拒絕支請求頭中指定的HTTP版本。

六、注意事項

在 Windows Server 2012 R2 和更高版本中,可設置其他自定義字段,以從 HTTP 請求和響應頭,以及從服務器變量中進行記錄。

若要添加自定義字段,請選擇“W3C 日志記錄字段”對話框中的“添加字段”。如果選擇了服務器級別的日志記錄,然后禁用“添加字段”,則增強的日志記錄功能僅適用于站點級別的日志記錄。

請注意,如果你定義的自定義字段的總大小大于 64,000 個字節(jié),則將記錄的內容截斷為 64,000 個字節(jié)。

日志使用的UTC時間又叫協(xié)調世界時,是以格林尼治時間為準,其它地方就要加上所在的時區(qū),中國在東八區(qū),所以要在UTC時間的基礎上加八個小時。你看到的日志日期與你電腦日期不同,就是這個原因

七、將IIS日志內容寫到數(shù)據(jù)庫進行程序分析

如果您會軟件開發(fā)的話,可以通過 VB C# Python 等對IIS日志進行編程開發(fā),以下是c#通過 StreamReader 讀取日志文件,并通過SqlConnection寫到Sql Server數(shù)據(jù)庫

以下內容摘自 zoukankan 的原創(chuàng)文章 :原文地址

讀取iis日志到sql serverusing Fasterflect;using System;using System.Collections.Generic;using System.Data.SqlClient;using System.IO;using System.Linq;using System.Reflection;using System.Text;using System.Threading.Tasks;namespace ConsoleApplication2{ // 記錄iis日志到sql server數(shù)據(jù)庫中,并進行查詢 class Program_IISLogFile { static void Main(string[] args) { Console.WriteLine("開始行:"); var startIndex = Console.ReadLine(); Console.WriteLine("結束行:"); var endIndex = Console.ReadLine(); Read("D:/job/test/tu_ex151203.log", int.Parse(startIndex), int.Parse(endIndex)); Console.WriteLine("over"); Console.ReadKey(); } // 數(shù)據(jù)庫連接 const string connectionStr = "user id=sa;password=12345;data source=(local);initial catalog=test"; // 讀取日志文件中的iis操作記錄 public static void Read(string path, int startIndex, int endInex) { StreamReader sr = new StreamReader(path, Encoding.Default); String line; using (SqlConnection conn = new SqlConnection(connectionStr)) { using (SqlCommand cmd = new SqlCommand(connectionStr, conn)) { conn.Open(); int rows = 0; int statIndex = 0; string sql = string.Empty; while ((line = sr.ReadLine()) != null) { statIndex++; if (statIndex < 5 + startIndex) continue; if (endInex <= statIndex - 5) break; try { // Console.WriteLine(line.ToString()); string[] strs = line.ToString().Split(' '); string sql2 = ""; if (strs != null) { for (int i = 0; i < strs.Count(); i++) { sql2 += "'" + strs[i] + "'"; if ((i + 1) < strs.Count()) { sql2 += ","; } } } sql = string.Format(@"insert into [iislog] ([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]) values({0})", sql2); cmd.CommandText = sql; rows += cmd.ExecuteNonQuery(); } catch (System.Data.SqlClient.SqlException e) { //conn.Close(); Console.WriteLine("插入" + rows.ToString() + "條數(shù)據(jù)!" + e.Message + " sql:" + sql); //continue; } // Console.WriteLine("插入" + rows.ToString() + "條數(shù)據(jù)!"); } } } } #region 數(shù)據(jù)庫相關 /* 數(shù)據(jù)庫表創(chuàng)建語句 CREATE TABLE [dbo].[iislog]( [date] [varchar](50) NULL, [time] [varchar](50) NULL, [s-ip] [varchar](50) NULL, [cs-method] [varchar](5000) NULL, [cs-uri-stem] [varchar](5000) NULL, [cs-uri-query] [varchar](5000) NULL, [s-port] [varchar](5000) NULL, [cs-username] [varchar](5000) NULL, [c-ip] [varchar](5000) NULL, [cs(User-Agent)] [varchar](5000) NULL, [cs(Referer)] [varchar](5000) NULL, [sc-status] [varchar](5000) NULL, [sc-substatus] [varchar](5000) NULL, [sc-win32-status] [varchar](5000) NULL, [time-taken] [varchar](5000) NULL) */ /* 查詢請求次數(shù)較多的url select [cs-uri-stem] + '?' + [cs-uri-query] as '鏈接地址', [sc-status] '狀態(tài)碼', c '請求次數(shù)' from (select [cs-uri-stem], [cs-uri-query], [sc-status], count(1) c from iislog where PATINDEX('%.aspx%', [cs-uri-stem]) <> 0 group by [cs-uri-stem], [cs-uri-query], [sc-status]) tbl order by c desc, '鏈接地址' desc */ #endregion }}

八、通過日志分析網(wǎng)站

1、使用IIS的LOG日志中的cs-uri-stem字段來分析網(wǎng)站中哪一個頁面被訪問或被點擊得最多

2、分析客戶端有哪些IP 訪問最多,可使用 c-ip 字段

3、分析網(wǎng)站出錯最多的頁面,可針對sc-status 字段

4、分析網(wǎng)站頁面的運行時間,可針對time-tak 字段

如果覺得不錯,就請幫忙點個贊 收藏 及關注 我 @小辣椒高效Office


關鍵詞:日志,日期,更新,小時,記錄,技巧,相關

74
73
25
news

版權所有? 億企邦 1997-2025 保留一切法律許可權利。

為了最佳展示效果,本站不支持IE9及以下版本的瀏覽器,建議您使用谷歌Chrome瀏覽器。 點擊下載Chrome瀏覽器
關閉