Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 75 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
75
Dung lượng
1,42 MB
Nội dung
LỜI CAM ĐOAN Em xin cam đoan Khóa luận tốt nghiệp với đề tài: “Xây dựng hệ thống phân tích log tảng ElasticSearch” thân em tìm hiểu phân tích Các số liệu thu thập kết nghiên cứu nêu khóa luận trung thực em thực Tp Hồ Chí Minh, ngày tháng .năm 2017 Sinh viên thực Trần Cảnh Khánh MỤC LỤC Trang phụ bìa Lời cam đoan MỤC LỤC Danh sách ký hiệu chữ viết tắt Danh mục bảng Danh mục hình vẽ, đồ thị LỜI MỞ ĐẦU CHƯƠNG TỔNG QUAN VỀ ĐỀ TÀI 1.1 Giới thiệu log 1.2 Q trình phân tích log 1.2.1 Thu thập liệu 1.2.2 Chuyển đối cấu trúc, phân tích liệu 1.2.3 Mô liệu, kết đạt 1.3 Tại phải xây dựng hệ thống phân tích log? 10 1.4 Mục tiêu, đối tượng, phạm vi 11 1.4.1 Mục tiêu 11 1.4.2 Đối tượng 11 1.4.3 Phạm vi 12 1.5 Tình hình nghiên cứu chung xây dựng, phân tích log 12 1.6 Kết luận 13 CHƯƠNG LOG CỦA DỊCH VỤ TRONG HỆ THỐNG 14 2.1 Hệ thống cân tải Haproxy 14 Trang 2.1.1 Giới thiệu log Haproxy 14 2.1.2 Các định dạng log 15 2.2 Hệ thống máy chủ web 19 2.2.1 Giới thiệu 19 2.2.2 Các loại log máy chủ web 19 2.3 Kết luận 24 CHƯƠNG HỆ THỐNG PHÂN TÍCH LOG ELASTIC STACK 25 3.1 Giới thiệu ElasticSearch 25 3.1.1 Một số khái niệm ElasticSearch 26 3.1.2 Kiến trúc ElasticSearch 28 3.1.3 Quá trình lưu trữ, truy xuất liệu ElasticSearch 29 3.2 Giới thiệu Logstash 31 3.2.1 Tính Logstash 32 3.2.2 Kiến trúc Logstash 33 3.2.3 Cấu trúc tập tin cấu hình Logstash 34 3.2.4 Các loại Plugin Logstash 35 3.3 Kibana 35 3.4 Kết luận 37 CHƯƠNG XÂY DỰNG HỆ THỐNG PHÂN TÍCH LOG 38 4.1 Mơ hình triển khai 38 4.2 Thông tin thu thập 40 4.3 Cài đặt, cấu hình hệ thống 41 4.3.1 Cấu hình log dịch vụ 41 Trang 4.3.2 Cấu hình filebeat 43 4.3.3 Cấu hình packetbeat 44 4.3.4 Cấu hình metricbeat 45 4.3.5 Cài đặt, cấu hình máy chủ ElasticSearch 46 4.3.6 Cài đặt, cấu hình máy chủ kibana 48 4.3.7 Cài đặt cấu hình máy chủ Logstash 49 4.3.8 Cấu hình cảnh báo có dấu hiệu bất thường 54 4.4 Hiển thị liệu Kibana 64 4.4.1 Thống kê thông tin CPU, Memory, FileSystem, Network 66 4.4.2 Thống kê thông tin truy cập vào ứng dụng web 68 4.4.3 Thống kê câu truy vấn MySQL 70 4.4.4 Tự động cảnh báo hệ thống có dấu hiệu bị xâm nhập 71 4.5 Kết luận 72 CHƯƠNG KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 73 5.1 Kết luận 73 5.2 Hướng phát triển 73 TÀI LIỆU THAM KHẢO 74 Trang Danh sách ký hiệu chữ viết tắt CLF Common Log Format CURD Create, read, update and delete ELK Elastic, Logstash, Kibana HTTP HyperText Transfer Protocol ID Identification IP Internet Protocol MSSQL Microsoft Structured Query Language MySQL My Structured Query Language OSI Open Systems Interconnection Reference Model TCP Transmission Control Protocol TCP/UPD Transmission Control Protocol/User Datagram Protocol UUID Universally unique identifier Trang Danh mục bảng Bảng 2.1 Các trường liệu định dạng mặc định log haproxy [10] 15 Bảng 2.2 Các trường định dạng TCP log haproxy [10] 17 Bảng 4.1 Thông tin máy chủ hệ thống triển khai 39 Danh mục hình vẽ, đồ thị Hình 1.1 Quy trình xử lý phân tích log Hình 3.1 Minh họa việc lưu trữ liệu ElasticSearch [2] 27 Hình 3.2 Kiến trúc ElasticSearch [3] 28 Hình 3.3 Mơ tả q trình lữu trữ liệu ElasticSearch [2] 30 Hình 3.4 Mơ tả q trình truy xuất liệu.[2] 30 Hình 3.5 Kiến trúc Logstash [3] 33 Hình 3.6 Kiến trúc đơn giản Logstash.[3] 34 Hình 3.7 Mơ tả thu thập xử lý liệu Elastic Stack.[1] 36 Hình 4.1 Mơ hình hệ thống phân tích Log 38 Hình 4.2 Danh sách mục hệ thống ElasticSearch 65 Hình 4.3 Danh sách mục Kibana 65 Hình 4.4 Dữ liệu sau thu thập, xử lý, lưu xuống ElasticSearch 66 Hình 4.5 Thơng tin CPU hiển thị dạng biểu đồ 66 Hình 4.6 Thơng tin RAM thu thập 67 Hình 4.7 Số lượng giao dịch trạng thái lỗi hệ thống 68 Hình 4.8 Thống kê yêu cầu truy cập nhiều vào vị trí người dùng truy cập 69 Hình 4.9 Thơng tin thu thập hiệu MySQL 70 Hình 4.10 Hệ thống gửi mail cảnh báo phát có dấu cơng 71 Trang LỜI MỞ ĐẦU Chúng ta sống thời đại công nghệ thông tin - giới ngập tràn liệu Kho liệu chứa đựng lượng lớn thông tin quý giá, biết tận dụng lợi Tuy nhiên, với tập hợp liệu khổng lồ phức tạp nguồn thơng tin có khối lượng lớn, tốc độ nhanh, hình thức định dạng liệu khác phương pháp truyền thống khơng đủ mạnh để xử lý Nghiên cứu Intel tháng 9/2013 cho thấy giới tạo petabyte liệu 11 giây, tương đương với đoạn video HD dài 13 năm Bản thân công ty, doanh nghiệp sở hữu “Big Data” riêng Biết cách khai thác Big Data tạo khác biệt, hình thành lợi cạnh tranh vượt trội Doanh nghiệp hiểu rõ đối tượng khách hàng ai, họ cần gì, họ đâu, họ có suy nghĩ truy cập website,…sẽ chủ động việc đưa giải pháp chiến lược kịp thời nhằm nắm bắt thị trường Bên cạnh đó, với lượng lớn liệu quan trọng quan, tổ chức lưu trữ mạng, trường hợp hệ thống mạng xảy cố, việc bảo mật thông tin khả truy cập người dùng bị ảnh hưởng Mức độ nghiêm trọng cố tùy thuộc vào khả đáp ứng kịp thời hay tính sẵn sàng dịch vụ cung cấp Vì vậy, việc nắm bắt hoạt động xảy hệ thống mạng tổ chức, doanh nghiệp cần thiết quan trọng, giúp người quản trị hệ thống có xác để nâng cao khả định, khám phá giá trị nội tối ưu hoá quy trình làm việc Việc trích xuất liệu cách xác, hữu ích với chi phí hợp lý thách thức đặt cho tổ chức, doanh nghiệp lớn Câu hỏi đặt là: Trong bối cảnh chi phí đầu tư cho việc thu thập, lưu trữ, phân tích hệ thống quản lý liệu ln khơng phải số dễ chịu, cần sử dụng phương pháp để đáp ứng yêu cầu như: Theo dõi hoạt động người sử dụng, phát vấn đề xảy hệ thống, phân tích hiệu hệ thống, phân tích để phát vấn đề bảo mật, phân tích để đưa dự đoán ? Lĩnh vực nghiên cứu mà khóa luận tập trung nội dung phân tích log giải vấn đề Khóa luận trình bày cách xây dựng Trang hệ thống Elastic stack dùng để quản lý phân tích liệu tập trung có khả tính tốn cao, hệ thống thiết kế đảm bảo tính dự phòng có khả mở rộng Trong hệ thống Elastic stack, liệu thu thập từ nhiều nguồn máy chủ khác nhau, có cấu trúc định dạng khác nhau, lưu trữ tập trung với việc lập mục để phân tích liệu nhanh chóng Trang Chương TỔNG QUAN VỀ ĐỀ TÀI CHƯƠNG TỔNG QUAN VỀ ĐỀ TÀI 1.1 Giới thiệu log Log thành phần quan trọng hệ thống mạng Nó lưu lại cách xác hoạt động, tình trạng hệ thống Log hữu hiệu cho việc giám sát khắc phục cố hệ thống mạng Log coi liệu lớn kích thước thường xuyên tăng trưởng theo thời gian Các tập tin log chứa đựng thông tin quý nguồn liệu khác khơng có Log lưu lại thông tin hoạt động hệ thống dịch vụ Hầu thao tác hệ thống tạo log Cấu trúc tập tin log có hai trường chính, thời gian liệu Thời gian thời gian mà dòng log ghi lại, liệu bao gồm thông tin hoạt động xảy hệ thống Thông thường log định dạng kiểu “plain text” có phần mở rộng log Như vậy, log có tác dụng ghi lại liên tục thông báo hoạt động hệ thống dịch vụ triển khai hệ thống vào tập tin nhật ký tương ứng Thông qua việc lưu trữ phân tích log, người quản trị mạng giám sát tình trạng hoạt động giải vấn đề gặp phải hệ thống, dịch vụ Khi xảy cố, việc phân tích log giúp phát vấn đề nhanh nhằm đưa giải pháp xử lý kịp thời Điều quan trọng với hệ thống cần tính sẵn sàng cao để phục vụ nhu cầu người dùng Bên cạnh đó, phân tích log dùng để phát dự đoán vấn đề xảy cho hệ thống 1.2 Q trình phân tích log Một q trình thu thập phân tích log gồm giai đoạn hình Trang Chương TỔNG QUAN VỀ ĐỀ TÀI Hình 1.1 Quy trình xử lý phân tích log 1.2.1 Thu thập liệu Việc thu thập liệu lấy thơng tin liên quan đến tình trạng hoạt động thiết bị hệ thống mạng Tuy nhiên hệ thống mạng lớn doanh nghiệp dịch vụ khơng nằm thiết bị riêng biệt mà nằm nhiều thiết bị khác Các thành phần hệ thống hoạt động tảng khác Mơ hình quản lý log tập trung đưa để giải vấn đề Cụ thể tất tập tin log chuyển hệ thống chung để phân tích, xử lý 1.2.2 Chuyển đối cấu trúc, phân tích liệu Sau thu thập thông tin hệ thống cơng việc chuyển đổi cấu trúc định dạng log, phân tách trường riêng biệt phân tích thơng tin thu thập Dữ liệu đánh mục, phát điều bất thường, mối đe dọa hệ thống Dựa thông tin lưu lượng truy cập, trạng thái truy cập, hiệu máy chủ… Ví dụ lưu lượng mạng tăng vọt lên thời điểm dấu hiệu hệ thống bị công từ chối dịch vụ 1.2.3 Mô liệu, kết đạt Sau thực việc phân tích liệu từ nguồn thu thập được, việc thực việc tổng hợp, biểu diễn thông tin dạng biểu đồ để người quản trị Trang Chương Xây dựng hệ thống phân tích Log "text":"WARNING: Website is attacked {{ctx.payload.hits.total}} error via XSS method" } } } } } 4.3.8.3 Cảnh báo cpu tăng cao Cấu hình hệ thống cảnh báo cpu tăng cao so với bình thường Nguyên nhân CPU tăng cao hệ thống bị công từ chối dịch vụ vài dịch vụ hoạt động bất thường Khi CPU hệ thống cao 75% cần phải gửi email thông báo cho người quản trị { "trigger":{ "schedule":{ "interval":"1m" } }, "input":{ "search":{ "request":{ "search_type":"query_then_fetch", T r a n g 60 Chương Xây dựng hệ thống phân tích Log "indices":[ "metricbeat-*" ], "types":[ "metricsets" ], "body":{ "size":0, "query":{ "filtered":{ "filter":{ "range":{ "timestamp":{ "gte":"now-2m", "lte":"now" } } } } }, "aggs":{ T r a n g 61 Chương Xây dựng hệ thống phân tích Log "minutes":{ "date_histogram":{ "field":"@timestamp", "interval":"minute" }, "aggs":{ "nodes":{ "terms":{ "field":"beat.name", "size":10, "order":{ "cpu":"desc" } }, "aggs":{ "cpu":{ "avg":{ "field":"system.cpu.user.pct" } } } T r a n g 62 Chương Xây dựng hệ thống phân tích Log } } } } } } } }, "throttle_period":"30m", "condition":{ "script":"if (ctx.payload.aggregations.minutes.buckets.size() == 0) return false; def latest = ctx.payload.aggregations.minutes.buckets[1]; def node = latest.nodes.buckets[0]; return node && node.cpu && node.cpu.value >= 10;" }, "actions":{ "send_email":{ "transform":{ "script":"def latest = ctx.payload.aggregations.minutes.buckets[-1]; return latest.nodes.buckets.findAll { return it.cpu && it.cpu.value >= 10 };" T r a n g 63 Chương Xây dựng hệ thống phân tích Log }, "email":{ "to":"trancanhkhanh1@gmail.com", "subject":"Watcher Notification - HIGH CPU USAGE", "body":"Nodes with HIGH CPU Usage (above 10%):\n\n{{#ctx.payload._value}}\"{{key}}\" - CPU Usage is at {{cpu.value}}%\n{{/ctx.payload._value}}" } } } } 4.4 Hiển thị liệu Kibana Sau liệu thu thập ghi vào elasticsearch với mục có dạng logstash-*, filebeat-*, packetbeat-* Chúng ta kiểm tra mục ElasticSearch câu lệnh #curl –XGET http://10.0.132.196:5601/_cat/indices?v Kết hiển thị danh sách mục mà hệ thống thu thập từ máy chủ haproxy, web, mysql ghi vào elasticsearch T r a n g 64 Chương Xây dựng hệ thống phân tích Log Hình 4.2 Danh sách mục hệ thống ElasticSearch Ngoài truy cập vào website kibana để hiển thị liệu node có hệ thống Dung lượng log lưu trữ node Elastic 40G Tổng số lượng shard 1028 hệ thống chạy node Hình 4.3 Danh sách mục Kibana Kiểm tra thông tin mục logstash-* dễ dàng thấy tập tin log mà filebeat thu thập được phân tách trường khác T r a n g 65 Chương Xây dựng hệ thống phân tích Log Hình 4.4 Dữ liệu sau thu thập, xử lý, lưu xuống ElasticSearch Dựa vào người quản trị truy vấn lấy thơng tin cần thiết điều tra, khắc phục hệ thống có cố 4.4.1 Thống kê thông tin CPU, Memory, FileSystem, Network Trên Kibana kiếm tra liệu thống kê hiệu máy chủ web1, web2, haproxy, mysql thông qua thông số mà metricbeat thu thập Hình 4.5 Thơng tin CPU hiển thị dạng biểu đồ T r a n g 66 Chương Xây dựng hệ thống phân tích Log Nhìn vào thơng tin thu thập người quản trị biết thơng tin sử dụng cpu máy chủ Thời điểm sử dụng cpu cao vào ngày 4/11/2017 Ngoài thơng tin CPU, người dùng kiểm tra thông tin ram mà hệ thống sử dụng để biết hệ thống có cần đầu tư thêm tài ngun tương lai khơng Hình 4.6 Thơng tin RAM thu thập Như hình bên thấy vào thời điểm 04/11/2017 hệ thống sử dụng phân vùng swap tăng cao, nhiên sau lại giảm xuống Dựa vào người sử dụng theo dõi đưa kế hoạch đầu tư cho hệ thống T r a n g 67 Chương Xây dựng hệ thống phân tích Log 4.4.2 Thống kê thông tin truy cập vào ứng dụng web Hình 4.7 Số lượng giao dịch trạng thái lỗi hệ thống Nhìn vào hình trên, biết khoảng thời gian từ tháng 11 đến tháng 11 hệ thống máy chủ web có 1340 giao dịch HTTP Các yêu cầu gửi đến máy chủ phần lớn máy chủ trả mã trạng thái thành công (200) nhiên số yêu cầu bị trả lỗi 403 404 Nguyên nhân gây lỗi 404 đường dẫn tập tin u cầu khơng tìm thấy Ngun nhân gây 403 truy cập bị từ chối Hình cho ta biết thời gian truy cập vào website nhiều thời điểm 7h 19h ngày 4/11/2017 Thơng tin hình bên cho biết 10 yêu cầu truy cập từ phía khách hàng nhiều Từ thông tin giúp cho doanh nghiệp đưa chiến lược kinh doanh thời gian tới Hiện phần vị trí viếng thăm hệ thống Elasitc Stack khơng hiển thị vị trí truy cập thơng tin khách hàng truy cập vào website sử dụng địa IP nội nên lấy vị trí địa lý khách truy cập T r a n g 68 Chương Xây dựng hệ thống phân tích Log Hình 4.8 Thống kê yêu cầu truy cập nhiều vào vị trí người dùng truy cập T r a n g 69 Chương Xây dựng hệ thống phân tích Log 4.4.3 Thống kê câu truy vấn MySQL Hình 4.9 Thơng tin thu thập hiệu MySQL Nhìn vào hình trên, thấy thao tác sở liệu đọc liệu thực nhiều so với việc ghi liệu Danh sách câu truy vấn thực chậm, từ người quản trị tối ưu hóa câu truy vấn để cải thiện Vì log thu thập, phân tích lưu trữ ElasitcSearch nên thực truy vấn để lấy thông tin cần thiết phù hợp với nhu cầu doanh nghiệp T r a n g 70 Chương Xây dựng hệ thống phân tích Log 4.4.4 Tự động cảnh báo hệ thống có dấu hiệu bị xâm nhập Giả sử có truy cập có dấu hiệu bất thường truy cập vào website mục đích tìm cách đọc tập tin /etc/password (phương pháp công Local File Inclusion) với đường dẫn http://shopbanhang.com/index.php?module= / / / / / / / / /etc/passwd Khi attacker truy cập, nội dung ghi vào tập tin access_log dịch vụ apache Hệ thống Elastic stack phát xâm nhập gửi cảnh báo cho người quản trị Hình 4.10 Hệ thống gửi mail cảnh báo phát có dấu cơng Nhìn vào thơng tin trên, ta thấy địa IP attacker 10.0.132.195, thời điểm công vào lúc 6:46 ngày 27/12/2017 Từ người quản trị dựa vào địa IP hacker để xem thêm hoạt động hacker ghi vào tập tin access_log từ lên kế hoạch ngăn chặn công T r a n g 71 Chương Xây dựng hệ thống phân tích Log 4.5 Kết luận Trong chương trình bày xây dựng hệ thống phân tích log tập trung mã nguồn mở Elastic stack thử nghiệm để thu thập thông tin log dịch vụ web, apache, mysql từ trích xuất thơng tin cần thiết, hiển thị cho người quản trị nắm bắt hoạt xảy hệ thống Hệ thống phân tích log thử nghiệm với việc tính tốn,lưu trữ song song node liệu phân tích lưu trữ vào ElasticSearch lên đến 40Gb đảm bảo việc xử lý nhanh, gần với thời gian thực T r a n g 72 Chương Kết luận hướng phát triển CHƯƠNG KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 5.1 Kết luận Khóa luận xây dựng hệ thống quản lý log tập trung với mục đích thu thập log từ nhiều nguồn khác phân tích tổng hợp liệu người quản trị có nhìn tổng quan hoạt động xảy hệ thống mạng Đặc biệt dựa vào thông tin thu thập được, người quản trị phát vấn đề bất thường hệ thống, từ có đối sách để cải thiện hệ thống ngày tốt Về thử nghiệm, khóa luận thực xây dựng hệ thống phân tích log với dung lượng log sinh khoảng 3G/ngày tổng dung lương log hệ thống 40G Hệ thống đáp ứng việc tính tốn song song nhiều node có khả mở rộng theo chiều ngang Việc truy vấn kết qua log cho phép người dùng tìm kiếm, kiểm tra tình trạng hoạt động hệ thống theo thời gian thực Trong trình thực em cố gắng tập trung tìm hiểu cốt lõi khả mở rộng hệ thống ElasticSearch, nhiên thời gian có hạn nên khơng tránh khỏi thiếu sót, em mong góp ý q thầy 5.2 Hướng phát triển Hiện việc phát xâm nhập thực phân tích log dựa vào thiết lập người quản trị, để phát hiệu quả, đòi hỏi người quản trị phải nắm bắt cách thức mà hacker cơng, tự xây dựng cảnh báo phù hợp Tuy nhiên việc nhiều thời gian, tương lai cần phải áp dụng machine learning vào hệ thống Elastic Stack, giúp phát dấu hiệu bất thường dựa vào hành vi Ngồi khóa luận thử nghiệm liệu 40G, liệu sinh ngày 3G nên việc thử nghiệm hệ thống Elastic Stack cần tiếp tục thử nghiệm với liệu có kích cỡ lớn T r a n g 73 TÀI LIỆU THAM KHẢO Saurabh Chhajed (2015), LearningELK Stack, Packt Publishing Clinton Gormley (2015), Elasticsearch: The Definitive Guide: A Distributed RealTime Search and Analytics Engine, O'Reilly Media Ravi Kumar Gupta, Yuvraj Gupta (2017), MasteringElastic Stack, Packt Publishing Yuvraj Gupta (2015), KibanaEssentials, Packt Publishing Rafal Kuc, Marek Rogozinski (2013), Mastering Elasticsearch, Packt Publishing Gurpreet S Sachdeva (2017), Applied ELK Stack: Data Insights and Business Metrics with Collective Capability of Elasticsearch, Logstash and Kibana, CreateSpace Independent Publishing Platform Chris Sanders, Steve Pantol (2013), Applied Network Security Monitoring: Collection, Detection, and Analysis, Syngress Vishal Sharma (2016), Beginning Elastic Stack, Apress James Turnbull (2013), The Logstash Book, Packt Publishing 10 HAProxy version 1.7.9 - Configuration Manual (Aug, 2017), http://cbonte.github.io/haproxy-dconv/1.7/configuration.html#8 11 Log Files - Apache HTTP Server Version 2.4 (2016), https://httpd.apache.org/docs/2.4/logs.html T r a n g 74 ... xây dựng hệ thống phân tích log Elastic Stack trích xuất liệu từ tập tin log hệ thống mạng Chương Hệ thống phân tích Log Elastic Stack CHƯƠNG HỆ THỐNG PHÂN TÍCH LOG ELASTIC STACK Việc phân tích. .. Tại phải xây dựng hệ thống phân tích log? Như đề cập trên, hệ thống tổ chức, doanh nghiệp, tập tin log tạo hàng ngày cung cấp cho thông tin cần thiết tình trạng hệ thống Các tập tin log chứa đựng... trữ, phân tích hệ thống quản lý liệu số dễ chịu, cần sử dụng phương pháp để đáp ứng yêu cầu như: Theo dõi hoạt động người sử dụng, phát vấn đề xảy hệ thống, phân tích hiệu hệ thống, phân tích