ĐH Quốc Gia Hà Nội ngành Khoa học máy tính BUILDING A TOOL FOR TRACKING USER BEHAVIOR OF WEB APPLICATION VIETNAM NATIONAL UNIVERSITY, HANOI UNIVERSITY OF ENGINEERING AND TECHNOLOGY VIETNAM NATIONAL UNIVERSITY, HANOI UNIVERSITY OF ENGINEERING AND TECHNOLOGY
ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Nguyễn Quang Huy XÂY DỰNG CÔNG CỤ LƯU TRỮ HÀNH VI NGƯỜI DÙNG CỦA ỨNG DỤNG WEB KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Khoa học máy tính HÀ NỘI - 2021 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Nguyễn Quang Huy XÂY DỰNG CÔNG CỤ LƯU TRỮ HÀNH VI NGƯỜI DÙNG CỦA ỨNG DỤNG WEB KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Khoa học máy tính Cán hướng dẫn: TS Võ Đình Hiếu Cán đồng hướng dẫn: ThS Nguyễn Thu Trang HÀ NỘI - 2021 VIETNAM NATIONAL UNIVERSITY, HANOI UNIVERSITY OF ENGINEERING AND TECHNOLOGY Nguyễn Quang Huy BUILDING A TOOL FOR TRACKING USER BEHAVIOR OF WEB APPLICATION THE BS THESIS Major: Computer Science Supervisor: Dr Vo Dinh Hieu Co-Supervisor: MSc Nguyen Thu Trang HANOI - 2021 Lời cảm ơn Lời đầu tiên, xin gửi lời cảm ơn lòng biết ơn sâu sắc tới thầy TS Võ Đình Hiếu, người tận tình hướng dẫn tơi suốt thời gian tìm hiểu hồn thành khóa luận Tơi xin gửi lời cảm ơn ThS Nguyễn Thu Trang định hướng hỗ trợ cho tơi tồn q trình hồn thành khóa luận Tơi xin gửi lời cảm ơn tới anh Nguyễn Ngọc Sơn giúp đỡ nhiều q trình viết hồn thành khóa luận Tôi xin gửi lời cảm ơn đến thầy cơ, anh chị, bạn phịng thí nghiệm môn Công nghệ phần mềm hỗ trợ nhiều kiến thức chuyên môn trình hồn thành khóa luận Tơi xin gửi lời cảm ơn thầy, cô trường Đại học Công Nghệ - Đại học Quốc gia Hà Nội tạo điều kiện thuận lợi cho học tập nghiên cứu Tôi xin gửi lời cảm ơn vô hạn tới cha mẹ, người thân nuôi dưỡng tạo điều kiện tốt cho học tập sinh hoạt, giúp tơi chun tâm thực khóa luận Lời cam đoan Tôi Nguyễn Quang Huy, sinh viên lớp K62-CA-CLC1, ngành Khoa học máy tính Tơi xin cam đoan khóa luận “Xây dựng công cụ lưu trữ hành vi người dùng ứng dụng web” cơng trình nghiên cứu, xây dựng riêng Các nội dung nghiên cứu, kết khóa luận xác thực Các thơng tin sử dụng khóa luận có sở khơng có nội dung chép từ tài liệu mà khơng ghi rõ trích dẫn tham khảo Tôi xin chịu trách nhiệm lời cam đoan Hà Nội, ngày 16 tháng 04 năm 2021 Sinh viên Nguyễn Quang Huy i Tóm tắt Với phát triển cơng nghệ Internet, người dần có xu hướng dành thời gian không gian mạng nhiều Do đó, liệu hành vi người dùng trở thành loại tài nguyên đáng giá trang web Dữ liệu hành vi người dùng phân tích giúp tiếp thị viên hiểu mong muốn người dùng, từ đưa thơng tin, sản phẩm mà họ tìm kiếm Khơng vậy, cịn giúp hỗ trợ viên trang web thống kê lại lịch sử hành vi người dùng, từ điều tra nguyên nhân giải đáp cố mà người dùng gặp phải trình sử dụng trang web Để đáp ứng nhu cầu trên, khoá luận xây dựng công cụ thu thập lịch sử hành vi người dùng ứng dụng web Cơng cụ có tính truy vết hành vi người dùng, đồng thời phân tích hiển thị liệu Công cụ lưu trữ hành vi người dùng bao gồm ba thành phần API Gateway Plugin, Data Pipeline Data Consumer Thành phần thứ cài đặt bên phía máy chủ người dùng, đóng vai trị thu thập hành vi người dùng ứng dụng web thông qua việc ghi lại yêu cầu gửi từ thiết bị truy cập họ Thành phần thứ hai có nhiệm vụ thu nhận xử lý liệu thô từ thành phần thứ lưu chúng vào sở liệu Thành phần cuối đóng vai trị truy vấn, phân tích hiển thị liệu thu thập Cơng cụ xây dựng sở liệu Apache Druid, MongoDB, PostgreSQL, hàng đợi tin nhắn Apache Kafka, framework Django VueJs Kết thực nghiệm cho thấy cơng cụ thu thập lưu trữ hành vi người dùng ứng dụng web Từ đó, cơng cụ cung cấp chức truy vấn, phân tích hiển thị liệu giúp người vận hành, hỗ trợ viên, nhà tiếp thị trang web truy vết lỗi, giải đáp thắc mắc người dùng làm sở để đưa chiến lược tiếp thị người dùng ứng dụng Từ khóa: Hành vi người dùng, ứng dụng web, thu thập liệu, công cụ lưu trữ ii Abstract With the development of technology and the internet, people tend to spend more time on cyberspace As a result, user behavior data becomes a valuable resource for every website Analyzed user behavior data helps marketers understand the user’s wishes, thereby giving out information and products that users are looking for Not only that, it also helps the website’s supporters to record user behavior history, thereby investigating the cause and solving problems that users encounter while using the website To meet the above needs, the thesis builds a tool that collects user behavior history of web applications It has the ability to track user behavior, and analyze and display data The tool for tracking user’s behavior includes three main components: API Gateway Plugin, Data Pipeline and Data Consumer The first component is installed on the server side of the user, which collects the user behavior on the web application by recording requests from their accessing device The second component is responsible for acquiring and processing raw data from the first component and then saving them to the database The final component plays the role of querying, analyzing and displaying the collected data The tool uses the databases as Apache Druid, MongoDB, PostgreSQL, the message queue as Apache Kafka, and the Django and VueJs frameworks Experimental results show that the tool can collect and store user behavior of web applications From there, the tool provides data query, analysis and display functions that help website operators, facilitators, and marketers to track errors and solve user queries and as the basis for devising application user marketing strategies Keywords: user behavior, web application, data collection, tracking tool iii Mục lục Lời cảm ơn Lời cam đoan i Tóm tắt ii Abstract iii Mục lục iv Danh mục từ viết tắt vii Danh sách hình vẽ viii Danh sách bảng x Mở đầu Chương Tổng quan công cụ lưu trữ hành vi người dùng ứng dụng web 1.1 Các phương pháp thu thập phân tích hành vi người dùng ứng dụng web 1.1.1 Bản đồ nhiệt 1.1.2 Ghi phiên 1.1.3 Khảo sát trang web 1.2 Một số công cụ lưu trữ hành vi người dùng ứng dụng web 1.2.1 Google Analytics 1.2.2 Hotjar 1.3 Hạn chế công cụ lưu trữ hành vi người dùng Chương Nền tảng công nghệ 2.1 Nginx iv 2.1.1 Nginx log 2.1.2 Nginx JavaScript 2.2 Apache Druid 10 2.2.1 Các đặc điểm Apache Druid 10 2.2.2 Nhập liệu Apache Druid 11 2.2.3 Lưu trữ liệu Apache Druid 11 2.2.4 Kiến trúc hệ thống Apache Druid 12 2.2.5 So sánh Apache Druid với số công nghệ tương tự 13 2.3 Apache Kafka 14 2.3.1 Kiến trúc hệ thống Apache Kafka 15 2.4 MongoDB 16 2.4.1 Đặc điểm MongoDB 16 2.4.2 Các thành phần MongoDB 17 2.5 Django Django rest framework 17 2.5.1 Django 17 2.5.2 Django rest framework 18 2.6 VueJs 18 Chương Xây dựng công cụ lưu trữ hành vi người dùng ứng dụng web 19 3.1 Giải pháp đề xuất 19 3.2 Phân tích yêu cầu 20 3.2.1 Yêu cầu chức 20 3.2.2 Yêu cầu phi chức 20 3.3 Đặc tả ca sử dụng 21 3.3.1 Ca sử dụng Đăng ký 22 3.3.2 Ca sử dụng Đăng nhập 22 3.3.3 Ca sử dụng Đăng xuất 22 3.3.4 Ca sử dụng Lấy mã ứng dụng 23 3.3.5 Ca sử dụng Điền thông tin 23 3.3.6 Ca sử dụng Xem liệu 24 3.3.7 Ca sử dụng Lọc liệu 24 3.3.8 Ca sử dụng Xem chi tiết liệu 25 3.3.9 Ca sử dụng Xem người sử dụng 25 v 3.3.10Ca sử dụng Quản lý người dùng 25 3.4 Thiết kế sở liệu 26 3.5 Kiến trúc hệ thống 28 3.6 Thu thập liệu hành vi người dùng ứng dụng web 29 3.6.1 Quá trình thu thập liệu từ Nginx Log 29 3.6.2 Quá trình đẩy liệu thu thập 30 3.7 Nhận xử lý liệu máy chủ 31 3.7.1 Quá trình thu nhận liệu lưu vào tệp 31 3.7.2 Quá trình xử lý liệu lưu vào hệ thống sở liệu 32 3.8 Phân tích hiển thị liệu 34 Chương Triển khai đánh giá công cụ 36 4.1 Cài đặt 36 4.1.1 Cài đặt bên phía máy chủ cơng cụ 37 4.1.2 Cài đặt Plugin phía máy chủ người dùng 37 4.2 Kết triển khai 38 4.3 Đánh giá công cụ 43 4.3.1 Những điểm đạt 43 4.3.2 Những điểm hạn chế 44 4.3.3 Định hướng phát triển tương lai 44 Kết luận 45 Tài liệu tham khảo 47 vi ... cố mà người dùng gặp phải trình sử dụng trang web Để đáp ứng nhu cầu trên, khố luận xây dựng cơng cụ thu thập lịch sử hành vi người dùng ứng dụng web Công cụ có tính truy vết hành vi người dùng, ... Chương Tổng quan công cụ lưu trữ hành vi người dùng ứng dụng web Chương giới thiệu khái niệm bản, phương pháp số công cụ liên quan tới lưu trữ hành vi người dùng ứng dụng web Cuối chương trình... từ vi? ??t tắt vii Danh sách hình vẽ viii Danh sách bảng x Mở đầu Chương Tổng quan công cụ lưu trữ hành vi người dùng ứng dụng web 1.1 Các phương pháp thu thập phân tích hành vi người dùng ứng dụng