CHƯƠNG 1. TỔNG QUAN VỀ WEB LOG VÀ XỬ LÝ WEB LOG 1. Tổng quan về web log 1. Khái quát về web log Nhật ký truy cập hay dấu vết truy cập, hay nhật ký (gọi tắt là log) là danh sách các bản ghi mà khi được yêu cầu truy cập tài nguyên hệ thống, hệ thống sẽ ghi lại.
Ví dụ: nhật ký truy cập web (gọi tắt là nhật ký web log) chứa tất cả thông tin khi có yêu cầu truy cập tài nguyên của trang web.Tài nguyên của trang web có thể bao gồm các mẫu định dạng, tệp hình ảnh và tệp mã JavaScript. Khi người dùng truy cập trang web để tìm kiếm sản phẩm, máy chủ web sẽ tải xuống thông tin và hình ảnh của sản phẩm và nhật ký truy cập ghi lại các yêu cầu của người dùng đối với tài nguyên thông tin và ảnh của sản phẩm đó. Nhật ký web chứa các thông tin như tên người dùng, dấu thời gian, yêu cầu truy cập, địa chỉ IP, số byte được chuyển, trạng thái kết quả, URL.Các tệp nhật ký được duy trì bởi các máy chủ web.1: Windows log sử dụng công cụ Event Viewer Luan van 5 Có nhiều nguồn tạo nhật ký trong hệ thống, chẳng hạn như nhật ký được tạo bởi máy chủ dịch vụ mạng, nhật ký do ứng dụng tạo, nhật ký do hệ điều hành tạo và nhật ký do thiết bị mạng và thiết bị đảm bảo an toàn thông tin tạo ra. Nhật ký được tạo bởi hệ điều hành thường bao gồm nhật ký của sự kiện khởi động hệ thống, sự kiện đăng nhập, sự kiện đăng xuất của người dùng, yêu cầu truy cập tệp và thư mục cũng như yêu cầu kích hoạt ứng dụng, yêu cầu truy cập phần cứng, yêu cầu truy cập dịch vụ mạng, lỗi xảy ra trong quá trình hoạt động, v.1 cho thấy hệ điều hành Microsoft Windows sử dụng công cụ Event Viewer và hệ điều hành Unix / Linux sử dụng công cụ Syslog để quản lý và lưu trữ nhật ký được tạo bởi chính hệ điều hành và các mô-đun phụ trợ của nó.
Nguồn nhật ký được tạo bởi máy chủ dịch vụ mạng, chẳng hạn như máy chủ web, máy chủ DNS, máy chủ email và máy chủ cơ sở dữ liệu là một trong những nguồn phổ biến nhất của việc tạo nhật ký. Máy chủ web có thể ghi nhật ký truy cập trang web cho mỗi trang web dưới dạng tệp văn bản thuần túy với một nhật ký trên mỗi dòng. Thông tin trong mỗi nhật ký có thể khác nhau tùy thuộc vào phiên bản máy chủ web được sử dụng.2 minh họa các bản ghi được tạo bởi máy chủ web Microsoft IIS. Máy chủ tên miền DNS cũng tạo ra một lượng lớn nhật ký trong quá trình xử lý các yêu cầu phân giải tên miền thành địa chỉ IP và ngược lại từ người dùng.
Tương tự như vậy, các máy chủ cơ sở dữ liệu và email cũng tạo ra rất nhiều nhật ký trong khi xử lý các yêu cầu từ người dùng cũng như từ các ứng dụng.2: Các bản ghi log sinh ra bởi máy chủ web Microsoft IIS Luan van 6 Các thiết bị và hệ thống mạng đảm bảo an toàn thông tin cũng như nguồn tạo ra nhật ký. Các thiết bị mạng thông thường như bộ định tuyến, bộ chuyển mạch và hệ thống bảo đảm an toàn thông tin, chẳng hạn như tường lửa, hệ thống kiểm soát truy cập, hệ thống phát hiện và ngăn chặn các cuộc tấn công, xâm nhập cũng tạo ra nhiều bản ghi log trong quá trình xử lý các yêu cầu truy cập mạng. Nhật ký được tạo từ các hệ thống này có thể được lưu trữ cục bộ hoặc xuất sang hệ thống lưu trữ bên ngoài. Nhật ký log có thể được đặt ở ba nơi khác nhau: Máy chủ Web : Các nhật ký này thường cung cấp dữ liệu sử dụng đầy đủ và chính xác nhất, nhưng có hai yếu tố chính của chúng hạn chế là: - Các nhật ký này chứa các thông tin nhạy cảm, thông tin cá nhân, do đó máy chủ thường giữ chúng.
- Các bản ghi log không ghi lại các trang đã truy cập vào bộ nhớ đệm. Các các trang đã lưu trong bộ nhớ đệm được triệu hồi từ bộ nhớ cục bộ của trình duyệt hoặc máy chủ proxy, không phải từ máy chủ web. Máy chủ proxy web: Máy chủ proxy lấy yêu cầu HTTP từ người dùng và chuyển chúng đến máy chủ Web sau đó trả lại cho người dùng các kết quả được máy chủ Web chuyển cho họ. Hai nhược điểm là: - Xây dựng proxy-server là một nhiệm vụ khó khăn.
Lập trình mạng nâng cao, chẳng hạn như TCP / IP, là cần thiết cho việc xây dựng này. - Việc chặn yêu cầu bị hạn chế. - Triển khai trình ghi proxy trong Web Quilt, một hiệu suất hệ thống ghi nhật ký web giảm nếu nó được tuyển dụng vì mỗi yêu cầu trang cần phải được xử lý bởi trình mô phỏng proxy. Trình duyệt máy khách: Người tham gia kiểm tra từ xa một trang Web bằng cách tải xuống phần mềm đặc biệt ghi lại việc sử dụng Web hoặc bằng cách sửa đổi mã nguồn của trình duyệt hiện có.
Cookie HTTP cũng có thể được sử dụng cho mục đích này. Đó là những mẩu thông tin được tạo ra bởi một máy chủ web và được lưu trữ trong máy tính của người dùng, sẵn sàng để truy cập trong tương lai. Luan van 7 Hạn chế của phương pháp này là: - Nhóm thiết kế phải triển khai phần mềm đặc biệt và yêu cầu người dùng cuối cài đặt nó. - Kỹ thuật khó đạt được khả năng tương thích với một loạt hệ điều hành và các trình duyệt Web.
Như vậy, có thể thấy rằng có rất nhiều nguồn dữ liệu nhật ký truy cập với nhiều hình thức khác nhau. Tùy theo mục đích sử dụng mà người quản trị có thể cấu hình hệ thống để lựa chọn thu thập, quản lý và lưu trữ các thông tin cần thiết cho từng loại nhật ký. Giới thiệu một số dạng web log Nhật ký truy cập được tạo bởi hệ điều hành và các ứng dụng thường có định dạng riêng. Vì thử nghiệm trong luận văn này được thực hiện trên nhật ký web nên phần này giới thiệu các định dạng nhật ký web thường được sử dụng bao gồm định dạng nhật ký web chuẩn NCSA (NCSA Common Log Format), định dạng nhật ký web kết hợp (NCSA Combined Log Format)và định dạng nhật ký web mở rộng W3C (W3C Extended Log Format) và định dạng nhật ký web máy chủ web Microsoft IIS (Microsoft IIS Log Format).
Trên thực tế, mọi máy chủ web hiện nay đều hỗ trợ một số định dạng nhật ký web này. Ví dụ, máy chủ web Microsoft IIS hỗ trợ cả ba định dạng,đó là : , W3C Extended Log Format , Microsoft IIS Log Format và NCSA Common Log Format. Ngược lại, máy chủ web Apache hay Apache HTTP Server sử dụng chuỗi định dạng để hỗ trợ 2 định dạng nhật ký bao gồm: Định dạng nhật ký web chuẩn NCSA và Định dạng nhật ký web kết hợp NCSA. Quản trị viên có thể chọn định dạng nhật ký web để sử dụng cho máy chủ để tạo tệp nhật ký web.
NCSA Common Log Format Định dạng nhật ký chuẩn NCSA, hay thường được gọi là , là một định dạng tệp nhật ký dựa trên văn bản ASCII với các trường cố định, vì vậy nó không thể được tùy chỉnh. Các trường phân vùng trong mỗi nhật ký được phân tách bằng dấu cách. Các trường không chứa dữ liệu sẽ được biểu diễn bằng dấu (-), các ký tự Luan van 8 không in được sẽ được biểu diễn bằng dấu (+). Định dạng nhật ký web này ghi lại thông tin cơ bản mà người dùng yêu cầu như sau: Địa chỉ máy chủ từ xa Tên nhật ký từ xa (Giá trị này luôn là dấu gạch ngang.) Tên tài khoản Chênh lệch ngày, giờ và giờ trung bình Greenwich (GMT) Yêu cầu và phiên bản giao thức Mã trạng thái HTTP trả về (Giá trị 200 cho biết rằng yêu cầu đã được thực hiện thành công.) Số byte được gửi đến máy chủ Với Máy chủ Apache HTTP, Định dạng Nhật ký web chuẩn có thể được định cấu hình bằng chuỗi định dạng sau: LogFormat “%h %l %u %t \”%r\” %>s %b” common CustomLog logs/access_log common Ví dụ, với Common Log Format thì một đầu mục (entry) sẽ có dạng như sau: 216.91 - leon [01/Jul/2002:12:11:52 +0000] “GET /index.1” 200 431 Trong đó, các trường thông tin của đầu mục này gồm: 216.91 (tương ứng kí hiệu %h): Địa chỉ IP của máy khách gửi yêu cầu đến máy chủ.
Trống (-) (tương ứng kí hiệu %l): Định danh của máy khách. leon (tương ứng kí hiệu %u): Định danh/tên của người dùng gửi yêu cầu được xác định nhờ thủ tục xác thực HTTP. Trong đó, day = 2*digit, month = 3*letter; year = 4*digit; hour = 2*digit; minute = 2*digit; second = 2*digit và zone = (‘+' | ‘-‘) 4*digit. Luan van 9 “GET /index.1” (tương ứng kí hiệu \”%r”\”): Yêu cầu của máy khách gửi lên máy chủ.
200 (tương ứng kí hiệu i%>s): Mã trạng tháiimà máy chủ gửiitrả về cho máyikhách. 431i(tương ứngikí hiệu %b): Kích thướcicủa gói tin trả về cho máy khách, khôngibao gồm header. NCSA Combined Log Format Định dạng nhật ký kết hợp NCSA được viết tắt là Combined Log Format về cơ bản giống với Định dạng nhật ký chuẩn Common Log Format, ngoại trừ nó có thêm hai trường thông tin bổ sung ở cuối là Referrer (Liên kết tham chiếu) và User Agent( Máy khách người dùng). Với Apache HTTP Server, định dạng này có thể được cấu hình bằng cách sử dụng chuỗi định dạng như sau: LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" combined CustomLog log/acces_log combined Ví dụ, một đầu mục của định dạng Combined Log Format sẽ như sau: Các trường được bổ sung bao gồm: http://www.html (tương ứng kí hiệu \”%{Referer}i\”): Cho biết trang web người dùng đã ghé thăm trước khi đến trang hiện tại.08 [en] (Win98; I ;Nav)” (tương ứng kí hiệu \”%{User- agent}i\”): Cho biết trình duyệt và hệ điều hành máy khách đang sử dụng.
W3C Extended Log Format Hiện tại, Định dạng nhật ký mở rộng W3C Extended Log Format là định dạng được sử dụng rộng rãi nhất và được hầu hết các máy chủ web hỗ trợ , định dạng này do Tổ chức World Wide Web Consortium (W3C) đề xuất. Định dạng web log này có các khả năng: Hỗ trợ kiểm soát các thông tin sẽ được ghi trong web log. Luan van 10 Hỗ trợ định dạng web log chung cho máy khách, máy chủ web và cả proxy. Cung cấp một cơichế mạnhimẽ để xử lý cácivấn đề và cáciký tự thoát (characteriescaping).
Cho phép trao đổi dữ liệu nhân khẩu học (demographic). Hỗ trợ tổng hợp dữ liệu.