5. Ý nghĩa khoa học và thực tiễn
2.1.1. Tổng quan phân tích cú pháp [19]
Với quy mô ngày càng tăng và độ phức tạp của các hệ thống hiện đại, khối lƣợng nhật ký đang tăng lên nhanh chóng, ví dụ, một hệ thống máy chủ sẽ ghi lại nhật ký hoạt động với tốc độ khoảng 50 gigabyte (khoảng 120∼200 triệu dòng) mỗi giờ. Do đó, cách phân tích nhật ký truyền thống chủ yếu dựa vào kiểm tra thủ công đã trở thành một công việc tốn kém và dễ xảy ra sai sót. Để giải quyết thách thức này, nhiều nỗ lực gần đây đã đƣợc thực hiện để tự động hóa phân tích nhật ký bằng cách sử dụng các kỹ thuật khai thác dữ liệu. Các ví dụ điển hình về khai thác nhật ký bao gồm phát hiện bất thƣờng, xác minh chƣơng trình, chẩn đoán sự cố và đảm bảo an ninh. Tuy nhiên, thông báo nhật ký thông thƣờng không có cấu trúc, vì các nhà phát triển đƣợc phép ghi lại thông báo nhật ký bằng cách sử dụng văn bản miễn phí để thuận tiện và linh hoạt. Để cho phép khai thác tự động các nhật ký không có cấu trúc, bƣớc đầu tiên là thực hiện phân tích cú pháp nhật ký, theo đó các thông báo nhật ký thông thƣờng không có cấu trúc có thể đƣợc chuyển đổi thành một chuỗi các sự kiện có cấu trúc.
Thông thƣờng, một thông báo nhật ký, nhƣ đƣợc minh họa trong ví dụ sau, ghi lại một sự kiện hệ thống cụ thể với một tập hợp các trƣờng: dấu thời gian (ghi lại thời gian xảy ra của sự kiện), mức ver-bosity (cho biết mức độ nghiêm trọng của sự kiện, ví dụ: thông tin), và nội dung tin nhắn thông thƣờng (ghi lại những gì đã xảy ra trong quá trình vận hành hệ thống).
Ví dụ: Một thông báo nhật ký
2008-11-09 20:35:32,146 INFO dfs.DataNode$DataXceive r: Receiving block blk_-1608999687919862906 src: /10 .251.31.5:42506 dest:
/10.251.31.5:50010
Nhƣ quan sát trong ví dụ, nội dung thông báo thông thƣờng có thể đƣợc chia thành hai phần: phần không đổi và phần biến.
Phần không đổi tạo thành văn bản thuần túy cố định và đƣợc giữ nguyên cho mỗi lần xảy ra sự kiện, có thể tiết lộ loại sự kiện của thông báo nhật ký.
Phần biến mang thông tin thời gian chạy đƣợc quan tâm, chẳng hạn nhƣ giá trị của trạng thái và tham số (ví dụ: địa chỉ IP và cổng: 10.251.31.5:50010), có thể khác nhau giữa các lần xuất hiện sự kiện khác nhau.
Mục tiêu của phân tích cú pháp nhật ký là trích xuất sự kiện bằng cách tự động tách phần không đổi và phần biến của thông báo nhật ký thông thƣờng, đồng thời biến đổi thêm mỗi thông báo nhật ký thành một sự kiện cụ thể (thƣờng đƣợc biểu thị bằng phần không đổi của nó). Trong ví dụ trên, sự kiện có thể đƣợc ký hiệu là “Khối nhận * src: * dest: *”, trong đó phần biến đƣợc xác định và che dấu bằng dấu hoa thị.
Phân tích cú pháp nhật ký là điều cần thiết để khai thác nhật ký. Theo truyền thống, phân tích cú pháp nhật ký chủ yếu dựa vào các biểu thức chính quy để trích xuất sự kiện nhật ký cụ thể (ví dụ: SEC). Tuy nhiên, các hệ thống phần mềm hiện đại, với kích thƣớc và độ phức tạp ngày càng tăng, có xu hƣớng tạo ra một khối lƣợng lớn nhật ký với các sự kiện nhật ký đa dạng. Các nhật ký này đòi hỏi những nỗ lực không nhỏ để tạo thủ công và duy trì các quy tắc biểu thức chính quy. Đặc biệt, khi một hệ thống liên tục phát triển, các quy tắc phân tích cú pháp nhật ký rất có thể sẽ trở nên lỗi thời rất thƣờng xuyên. Ví dụ: các hệ thống của Google mỗi tháng sẽ cho ra hàng nghìn bảng nhật ký khác nhau cho những nhiệm vụ khác nhau. Do đó, nhu cầu cao hiện
nay cần phải xây dựng các phƣơng pháp phân tích cú pháp nhật ký tự động, có khả năng phát triển cùng với hệ thống.
Để đạt đƣợc mục tiêu này, các nghiên cứu gần đây đã đề xuất một số phƣơng pháp tiếp cận theo hƣớng dữ liệu để phân tích cú pháp nhật ký tự động (ví dụ: SLCT, IPLoM, LKE, LogSig), trong đó các thông báo nhật ký lịch sử là tận dụng để đào tạo các mô hình thống kê cho việc trích xuất sự kiện.
2.1.2. Các phương pháp phân tích cú pháp [19]
Phân tích cú pháp nhật ký – Log Prasing là công cụ đã đƣợc nghiên cứu rộng rãi trong những năm gần đây. Trong số tất cả các phƣơng pháp đƣợc nghiên cứu, có bốn phƣơng pháp tiêu biểu đang đƣợc sử dụng rộng rãi cho các nhiệm vụ khai thác nhật ký.
SLCT (Simple Logfile Clustering Tool)
SLCT (Simple Logfile Clustering Tool), là công trình đầu tiên về phân
tích cú pháp nhật ký tự động. Công trình cũng đã phát hành một công cụ phân tích cú pháp nhật ký mã nguồn mở, đƣợc sử dụng rộng rãi trong các nhiệm vụ khai thác nhật ký, chẳng hạn nhƣ khai thác nhật ký sự kiện, xác định vấn đề dựa trên triệu chứng và phân loại cảnh báo mạng.
Lấy cảm hứng từ khai thác quy tắc liên kết, SLCT hoạt động nhƣ một thủ tục ba bƣớc với hai lần chuyển qua các thông báo nhật ký:
1) Word vocabulary construction. Làm cho một đƣờng chuyền so với dữ liệu và xây dựng một vốn từ vựng của tần số từ và vị trí.
2) Cluster candidates construction. Làm cho một đƣờng chuyền cho các ứng viên cụm (1) bằng cách sử dụng từ vựng từ.
3) Log template generation. Các nhóm có đủ thông báo nhật ký đƣợc chọn từ các ứng viên. Sau đó, những thông điệp ghi trong mỗi cụm có thể đƣợc kết hợp để tạo ra một mẫu nhật ký, trong khi thông điệp log còn lại đƣợc đặt vào một cụm ngoại lệ.
IPLoM (Iterative Partitioning Log Mining)
IPLoM (Iterative Partitioning Log Mining - Khai thác nhật ký phân
vùng lặp lại) là một phƣơng pháp phân tích cú pháp nhật ký dựa trên kinh nghiệm học, đƣợc thiết kế đặc biệt theo các đặc điểm của thông báo nhật ký. Phƣơng pháp này cũng đã đƣợc sử dụng bởi một tập hợp các nghiên cứu khai thác nhật ký (ví dụ: phát hiện cảnh báo, phân tích nhật ký sự kiện và tóm tắt sự kiện).
Cụ thể, IPLoM thực hiện phân tích cú pháp nhật ký thông qua quy trình ba bƣớc phân vùng thứ bậc trƣớc khi tạo mẫu:
1) Phân vùng theo kích thƣớc sự kiện. Thông báo nhật ký đƣợc phân chia thành các cụm khác nhau theo độ dài khác nhau.
2) Phân vùng theo vị trí mã thông báo. Đối với mỗi phân vùng, các từ ở các vị trí khác nhau đƣợc đếm. Sau đó, vị trí có số lƣợng từ duy nhất ít nhất đƣợc sử dụng để chia nhỏ các thông báo nhật ký.
3) Phân vùng bằng cách tìm kiếm ánh xạ. Phân vùng sâu hơn đƣợc thực hiện trên các cụm bằng cách tìm kiếm các mối quan hệ ánh xạ giữa tập hợp các mã thông báo duy nhất ở hai vị trí mã thông báo đƣợc chọn bằng cách sử dụng tiêu chí heuristic.
4) Tạo mẫu nhật ký. Tƣơng tự nhƣ SLCT, bƣớc cuối cùng là tạo các mẫu nhật ký từ mọi cụm.
LKE (Log Key Extraction)
LKE (Log Key Extraction) là một phƣơng pháp phân tích cú pháp nhật ký đƣợc phát triển bởi Microsoft và đã đƣợc áp dụng trong một tập hợp các nhiệm vụ về phân tích nhật ký phi cấu trúc.
LKE sử dụng cả thuật toán phân cụm và quy tắc heuristic để phân tích nhật ký:
nhóm bằng cách sử dụng thuật toán phân nhóm phân cấp với chỉ số khoảng cách chỉnh sửa có trọng số tùy chỉnh.
2) Tách cụm. Một bƣớc tách dựa trên các quy tắc heuristic đƣợc thực hiện để tách thêm các cụm.
3) Tạo mẫu nhật ký. Bƣớc cuối cùng là tạo các mẫu nhật ký từ mọi cụm, tƣơng tự nhƣ SLCT và IPLoM.
LogSig
LogSig là một phƣơng pháp phân tích cú pháp nhật ký gần đây. LogSig hoạt động theo ba bƣớc:
1) Tạo cặp từ. Mỗi thông báo nhật ký đƣợc chuyển đổi thành một tập hợp các cặp từ để mã hóa cả từ và thông tin vị trí của nó.
2) Phân cụm nhật ký. Dựa trên các cặp từ, một giá trị tiềm năng đƣợc tính toán cho mỗi thông báo nhật ký để quyết định thông điệp nhật ký có khả năng thuộc về cụm nào. Sau một số lần lặp lại, các thông báo nhật ký có thể đƣợc nhóm lại.
3) Tạo mẫu nhật ký. Trong mỗi cụm, các thông báo nhật ký đƣợc tận dụng để tạo ra một mẫu nhật ký.
2.2. Tổng quan về phân tích cú pháp - Parser
2.2.1. Cấu trúc của Parser
- Parser đƣợc tạo thành từ ba thành phần:
Input Formats: là nhà cung cấp bản ghi chung; các bản ghi tƣơng
đƣơng với các hàng trong bảng SQL và định dạng đầu vào có thể đƣợc coi là các bảng SQL chứa dữ liệu mà ngƣời dùng muốn xử lý.
+ Định dạng đầu vào của Log Parser có thể truy xuất dữ liệu từ các nguồn sau:
o Log files IIS (W3C, IIS, NCSA, Nhật ký nhị phân tập trung, nhật ký lỗi HTTP, nhật ký quét URL, nhật ký ODBC)
o Windows Event log
o Các tệp văn bản đƣợc định dạng chung: XML, CSV, TSV và W3C (ví dụ: tệp nhật ký Theo dõi Exchange, tệp nhật ký tƣờng lửa cá nhân, tệp nhật ký Dịch vụ Windows Media® , tệp nhật ký FTP, tệp nhật ký SMTP, v.v.)
o Windows Registry
o Đối tƣợng danh mục hoạt động
o Thông tin tệp và thƣ mục
o Các tệp chụp NetMon .cap
o Tệp nhật ký NCSA mở rộng / kết hợp o ETW traces
o Các plugin tùy chỉnh (thông qua giao diện COM công khai)
SQL-Like Engine Core: xử lý các hồ sơ đƣợc tạo ra bởi một Format
Input, sử dụng một phƣơng ngữ của ngôn ngữ SQL bao gồm các điều khoản SQL chung ( SELECT, WHERE, GROUP BY , HAVING , ORDER BY ), chức năng tổng hợp ( SUM , COUNT, AVG , MAX , MIN ) và một bộ hàm phong phú (ví dụ: SUBSTR , CASE , COALESCE , REVERSEDNS , v.v.); các bản ghi kết quả sau đó đƣợc gửi đến trang kết quả đã đƣợc định dạng.
Output Formats: là ngƣời dùng chung các bản ghi ; chúng có thể
đƣợc coi là bảng SQL nhận kết quả xử lý dữ liệu.
+ Các định dạng đầu ra tích hợp sẵn của Log Parser có thể:
o Ghi dữ liệu vào tệp văn bản ở các định dạng khác nhau (CSV, TSV,
XML, W3C, user-defined, v.v.)
o Gửi dữ liệu đến cơ sở dữ liệu SQL
o Gửi dữ liệu đến máy chủ SYSLOG
o Hiển thị dữ liệu ra bảng điều khiển hoặc ra màn hình
Hình 2.1. Cấu trúc của một Log Parser
- Công cụ Parser thƣờng có sẵn dƣới dạng tệp thực thi dòng lệnh (LogParser.exe) và dƣới dạng một tập hợp các đối tƣợng COM (LogParser.dll).
2.2.2. Hoạt động của Parser
Parser (phân tích cú pháp) là một thuật ngữ đƣợc nhóm một loạt các nghĩa và các trƣờng hợp sử dụng. Nói một cách tổng thể, Parser là quá trình giải mã thông tin thành một thứ mà máy móc có thể sử dụng đƣợc hay nói
cách khác Parser có nghĩa là tìm ra cấu trúc cơ bản của dữ liệu mà chúng ta đƣợc cung cấp.
Hình 2.2. Mô hình hoạt động của Parser
Hầu hết các trƣờng hợp sử dụng Parser là để chuyển đổi thông tin dạng văn bản thành dữ liệu có cấu trúc . Ví dụ, chuyển đổi một số mã lập trình do con ngƣời viết thành mã byte đƣợc máy chạy.
Một Parser đƣợc thực hiện bởi 3 thành phần - Scanner, Lexer và Parser. Scanner đọc văn bản đầu vào một ký tự tại một thời điểm và chuyển nó cho Lexer.
Lexer chuyển đổi luồng ký tự thành một luồng mã thông báo. Tất cả các mã thông báo là ký hiệu đầu cuối từ CFG (ngữ pháp không có ngữ cảnh). Thông thƣờng các lexer đƣợc triển khai dƣới dạng DFA (tự động hóa tự động xác định). Chúng có thể đƣợc tạo bởi các công cụ nhƣ jFlex.
Sau đó, Parser đọc dòng mã thông báo đƣợc tạo ra (ký hiệu đầu cuối) và xây dựng một cây theo các quy tắc sản xuất đƣợc xác định trong CFG.
Có 2 loại thuật toán phân tích cú pháp chính - từ trên xuống và từ dƣới lên.
2.2.3. Mô hình hoạt động của Phân tích cú pháp dựa vào Ontology
Để xác định đƣợc hệ thống phân tích cú pháp dựa vào Ontology hoạt động nhƣ thế nào. Đầu tiên ta cần xác định hệ thống chuyển đổi tri thức dựa vào Ontology sẽ hoạt động nhƣ thế nào để làm tiền đề xây dựng hệ thống phân tích cú pháp.
Hệ thống chuyển đổi tri thức dựa vào Ontology bao gồm hai phần: Xử lý dữ liệu Ontology (bao gồm máy chủ ontology, nguồn dữ liệu, đơn vị xử lý tài liệu và cơ sở dữ liệu) và Truy xuất dữ liệu ontology (bao gồm máy chủ ontology, chuyển đổi truy vấn, quy trình tùy chỉnh và tác nhân truy xuất).
Xử lý dữ liệu Ontology: Sẽ đảm nhận nhiệm vụ xử lý dữ liệu của tài liệu đƣợc sử dụng, tiến hành phân tích đƣa dữ liệu vào cơ sở dữ liệu và thông qua các truy vấn có thể đƣợc tùy chỉnh để tiến hành kết nối với máy chủ Ontology chuyển đổi các truy vấn thành dữ liệu ngƣời dùng cần. Quá trình này đƣợc thể hiện trong Hình 2.9.
Truy xuất dữ liệu Ontology: Đảm nhận nhiệm vụ xử lý tài liệu đƣợc sử dụng để trích xuất thông tin từ một hệ thống không có cấu trúc nhất định và xác lập quan hệ giữa các thuật ngữ và các khái niệm của tài liệu dựa trên máy chủ Ontology. Quá trình truy xuất này đƣợc thể hiện trong Hình 2.10.
Hình 2.5. Mô hình truy xuất dữ liệu Ontology [21]
Trong quá trình xử lý mỗi tài liệu trong bộ tài liệu sẽ triển khai từ vựng, phân tích từ và lọc số, dấu gạch ngang và dấu câu. Sử dụng danh sách từ dừng loại bỏ các từ chức năng để lại các từ hữu ích nhƣ danh từ và động từ. Việc trích xuất các từ gốc và loại bỏ tiền tố và hậu tố để cải thiện độ chính xác của việc truy xuất. Cuối cùng, việc xác định một số từ ngữ làm thành phần chính để thể hiện nội dung.
Parser Query: Sẽ kiểm tra các truy vấn đầu vào và tạo ra Cây truy
vấn theo quy tắc Heuristic.
Query Analysis: Tiến hành kiểm tra cây truy vấn theo từng Node trên
cây. Đầu ra của thuật toán này có thể là:
- Trọng tâm của truy vấn.
- Yêu cầu ngƣời dùng cung cấp thêm thông tin của yêu cầu để chỉ định truy vấn.
- Trả về kết quả kiểm tra sai khi không tìm thấy các Node và các yêu cầu của ngƣời dùng.
Data field to find: xác định Khái niệm của trƣờng dữ liệu ontology đầu
tiên trong câu hỏi thuộc về lớp hoặc loại thuộc tính kiểu dữ liệu. Điều này là do loại câu trả lời cuối cùng đề cập đến một trong hai loại khái niệm này trong ontology. Do đó, nếu yêu cầu của ngƣời dùng đề cập đến các loại khái niệm bản thể học khác, thì quy trình nhƣ sau:
- Nếu yêu cầu đề cập đến thuộc tính đối tƣợng: thực hiện hợp nhất với các lớp miền hoặc phạm vi của thuộc tính này
- Nếu yêu cầu đề cập đến một cá thể: thực hiện hợp nhất với một lớp của cá thể đó.
Check – Merge: Đối với mỗi truy vấn, mục tiêu là xác định loại câu trả
lời. Hợp nhất là một nỗ lực để đạt đƣợc điều này bằng cách hợp nhất đầu ra của Query Analysis/ Data field to find.
2.3. Kiến trúc máy chủ Web
- Máy chủ web đáp ứng yêu cầu của ngƣời dùng theo mô hình chung sau:
Hình 2.7. Các thành phần của một máy chủ web
- Trình duyệt web gửi một yêu cầu đến máy chủ Web và phản hồi cho yêu cầu này đƣợc gửi lại.
Clien = User agent. Đƣợc điều khiển bởi ngƣời dùng để vận hành ứng dụng Web. Chức năng của khách hàng có thể đƣợc mở rộng bằng cách cài đặt các trình cắm, tiện ích bổ sung và ứng dụng.
Firewall: Một phần mềm hoặc phần cứng điều chỉnh giao tiếp giữa các mạng không an toàn (ví dụ: Internet) và các mạng an toàn (ví dụ: mạng LAN công ty). Thông tin liên lạc này đƣợc lọc bởi các quy tắc truy cập.
Proxy: Proxy thƣờng đƣợc sử dụng để lƣu trữ tạm thời các trang Web