Tìm hiểu về Machine Learning trong Elastic Stack (còn gọi là Elaticsearch, hay còn gọi là ELK)

Tìm hiểu về Machine Learning trong Elastic Stack (còn gọi là Elaticsearch, hay còn gọi là ELK)

Chúng ta hãy nhớ lại rằng Elastic Stack dựa trên cơ sở dữ liệu Elaticsearch không liên quan, giao diện web Kibana và bộ thu thập và xử lý dữ liệu (Logstash nổi tiếng nhất, nhiều Beats, APM và các loại khác). Một trong những bổ sung thú vị cho toàn bộ danh sách sản phẩm được liệt kê là phân tích dữ liệu bằng thuật toán học máy. Trong bài viết chúng ta hiểu những thuật toán này là gì. Xin vui lòng dưới con mèo.

Học máy là một tính năng trả phí của phần mềm chia sẻ Elastic Stack và được bao gồm trong X-Pack. Để bắt đầu sử dụng, chỉ cần kích hoạt bản dùng thử 30 ngày sau khi cài đặt. Sau khi hết thời gian dùng thử, bạn có thể yêu cầu hỗ trợ để gia hạn hoặc mua đăng ký. Chi phí đăng ký được tính không dựa trên khối lượng dữ liệu mà dựa trên số lượng nút được sử dụng. Không, tất nhiên, khối lượng dữ liệu ảnh hưởng đến số lượng nút cần thiết, nhưng cách tiếp cận cấp phép này vẫn nhân đạo hơn so với ngân sách của công ty. Nếu không cần năng suất cao, bạn có thể tiết kiệm tiền.

ML trong Elastic Stack được viết bằng C++ và chạy bên ngoài JVM, trong đó Elaticsearch tự chạy. Nghĩa là, quy trình (nhân tiện, nó được gọi là tự động phát hiện) tiêu thụ mọi thứ mà JVM không nuốt được. Trên bản demo, điều này không quá quan trọng, nhưng trong môi trường sản xuất, điều quan trọng là phải phân bổ các nút riêng biệt cho các tác vụ ML.

Các thuật toán học máy được chia thành hai loại – với giáo viên и không có giáo viên. Trong Elastic Stack, thuật toán nằm trong danh mục “không được giám sát”. Qua liên kết này Bạn có thể thấy bộ máy toán học của các thuật toán học máy.

Để thực hiện phân tích, thuật toán học máy sử dụng dữ liệu được lưu trữ trong các chỉ mục Elaticsearch. Bạn có thể tạo các tác vụ để phân tích từ giao diện Kibana và thông qua API. Nếu bạn làm điều này thông qua Kibana thì bạn không cần phải biết một số điều. Ví dụ: các chỉ mục bổ sung mà thuật toán sử dụng trong quá trình hoạt động.

Các chỉ số bổ sung được sử dụng trong quá trình phân tích.ml-state - thông tin về các mô hình thống kê (cài đặt phân tích);
.ml-anomalies-* — kết quả của thuật toán ML;
.ml-notifications - cài đặt thông báo dựa trên kết quả phân tích.

Tìm hiểu về Machine Learning trong Elastic Stack (còn gọi là Elaticsearch, hay còn gọi là ELK)

Cấu trúc dữ liệu trong cơ sở dữ liệu Elaticsearch bao gồm các chỉ mục và tài liệu được lưu trữ trong đó. Khi so sánh với cơ sở dữ liệu quan hệ, một chỉ mục có thể được so sánh với một lược đồ cơ sở dữ liệu và một tài liệu với một bản ghi trong bảng. Sự so sánh này có điều kiện và được cung cấp để đơn giản hóa việc hiểu các tài liệu sâu hơn cho những người mới chỉ nghe nói về Elaticsearch.

Chức năng tương tự có sẵn thông qua API cũng như thông qua giao diện web, vì vậy để rõ ràng và hiểu các khái niệm, chúng tôi sẽ trình bày cách định cấu hình thông qua Kibana. Trong menu bên trái có phần Machine Learning nơi bạn có thể tạo Công việc mới. Trong giao diện Kibana nó trông như hình dưới đây. Bây giờ chúng tôi sẽ phân tích từng loại nhiệm vụ và hiển thị các loại phân tích có thể được xây dựng ở đây.

Tìm hiểu về Machine Learning trong Elastic Stack (còn gọi là Elaticsearch, hay còn gọi là ELK)

Chỉ số đơn - phân tích một chỉ số, Đa chỉ số - phân tích hai hoặc nhiều chỉ số. Trong cả hai trường hợp, mỗi số liệu được phân tích trong một môi trường biệt lập, tức là. thuật toán không tính đến hoạt động của các số liệu được phân tích song song, giống như trong trường hợp Đa số liệu. Để thực hiện các phép tính có tính đến mối tương quan của các số liệu khác nhau, bạn có thể sử dụng Phân tích dân số. Và Advanced đang tinh chỉnh các thuật toán với các tùy chọn bổ sung cho một số tác vụ nhất định.

Chỉ số đơn

Phân tích các thay đổi trong một số liệu duy nhất là điều đơn giản nhất có thể được thực hiện ở đây. Sau khi nhấp vào Tạo công việc, thuật toán sẽ tìm kiếm những điểm bất thường.

Tìm hiểu về Machine Learning trong Elastic Stack (còn gọi là Elaticsearch, hay còn gọi là ELK)

Trong lĩnh vực này aggregation bạn có thể chọn một cách tiếp cận để tìm kiếm sự bất thường. Ví dụ, khi min các giá trị dưới giá trị điển hình sẽ được coi là bất thường. Ăn Tối đa, Trung bình cao, Thấp, Trung bình, Khác biệt và những người khác. Có thể tìm thấy mô tả của tất cả các chức năng по ссылке.

Trong lĩnh vực này Phần cho biết trường số trong tài liệu mà chúng tôi sẽ tiến hành phân tích.

Trong lĩnh vực này Nhịp xô - mức độ chi tiết của các khoảng thời gian mà việc phân tích sẽ được thực hiện. Bạn có thể tin tưởng vào tự động hóa hoặc chọn thủ công. Hình ảnh bên dưới là ví dụ về mức độ chi tiết quá thấp - bạn có thể bỏ lỡ điểm bất thường. Sử dụng cài đặt này, bạn có thể thay đổi độ nhạy của thuật toán đối với các điểm bất thường.

Tìm hiểu về Machine Learning trong Elastic Stack (còn gọi là Elaticsearch, hay còn gọi là ELK)

Thời lượng của dữ liệu được thu thập là yếu tố quan trọng ảnh hưởng đến hiệu quả của việc phân tích. Trong quá trình phân tích, thuật toán xác định các khoảng thời gian lặp lại, tính toán khoảng tin cậy (đường cơ sở) và xác định các điểm bất thường—độ lệch không điển hình so với hành vi thông thường của số liệu. Chỉ ví dụ:

Đường cơ sở với một phần dữ liệu nhỏ:

Tìm hiểu về Machine Learning trong Elastic Stack (còn gọi là Elaticsearch, hay còn gọi là ELK)

Khi thuật toán có điều gì đó cần học hỏi, đường cơ sở sẽ trông như thế này:

Tìm hiểu về Machine Learning trong Elastic Stack (còn gọi là Elaticsearch, hay còn gọi là ELK)

Sau khi bắt đầu nhiệm vụ, thuật toán xác định độ lệch dị thường so với định mức và xếp hạng chúng theo xác suất xảy ra bất thường (màu của nhãn tương ứng được biểu thị trong ngoặc đơn):

Cảnh báo (màu xanh): dưới 25
Nhỏ (vàng): 25-50
Chính (màu cam): 50-75
Chí mạng (màu đỏ): 75-100

Biểu đồ dưới đây cho thấy một ví dụ về những điểm bất thường được tìm thấy.

Tìm hiểu về Machine Learning trong Elastic Stack (còn gọi là Elaticsearch, hay còn gọi là ELK)

Ở đây bạn có thể thấy số 94, biểu thị khả năng xảy ra sự bất thường. Rõ ràng là vì giá trị gần bằng 100 nên có nghĩa là chúng ta có điểm bất thường. Cột bên dưới biểu đồ hiển thị xác suất cực kỳ nhỏ là 0.000063634% giá trị số liệu xuất hiện ở đó.

Ngoài việc tìm kiếm các điểm bất thường, bạn có thể chạy dự báo trong Kibana. Việc này được thực hiện đơn giản và từ cùng một góc nhìn với các điểm bất thường - nút Dự báo ở góc trên bên phải.

Tìm hiểu về Machine Learning trong Elastic Stack (còn gọi là Elaticsearch, hay còn gọi là ELK)

Dự báo được thực hiện trước tối đa 8 tuần. Ngay cả khi bạn thực sự muốn thì điều đó cũng không thể thực hiện được theo thiết kế.

Tìm hiểu về Machine Learning trong Elastic Stack (còn gọi là Elaticsearch, hay còn gọi là ELK)

Trong một số trường hợp, dự báo sẽ rất hữu ích, chẳng hạn như khi giám sát tải của người dùng trên cơ sở hạ tầng.

Đa số liệu

Hãy chuyển sang tính năng ML tiếp theo trong Elastic Stack - phân tích một số chỉ số trong một đợt. Nhưng điều này không có nghĩa là sự phụ thuộc của số liệu này vào số liệu khác sẽ được phân tích. Điều này giống với Chỉ số đơn nhưng có nhiều chỉ số trên một màn hình để dễ dàng so sánh tác động của chỉ số này với chỉ số khác. Chúng ta sẽ nói về việc phân tích sự phụ thuộc của một số liệu này với một số liệu khác trong phần Dân số.

Sau khi nhấp vào hình vuông có Multi Metric, một cửa sổ cài đặt sẽ xuất hiện. Chúng ta hãy xem xét chúng chi tiết hơn.

Tìm hiểu về Machine Learning trong Elastic Stack (còn gọi là Elaticsearch, hay còn gọi là ELK)

Trước tiên, bạn cần chọn các trường để phân tích và tổng hợp dữ liệu trên chúng. Các tùy chọn tổng hợp ở đây giống như đối với Chỉ số đơn (Tối đa, Trung bình cao, Thấp, Trung bình, Khác biệt và những người khác). Hơn nữa, nếu muốn, dữ liệu được chia thành một trong các trường (trường Dữ liệu phân tách). Trong ví dụ, chúng tôi đã thực hiện điều này theo trường Xuất xứSân bayID. Lưu ý rằng biểu đồ số liệu ở bên phải hiện được trình bày dưới dạng nhiều biểu đồ.

Tìm hiểu về Machine Learning trong Elastic Stack (còn gọi là Elaticsearch, hay còn gọi là ELK)

Lĩnh vực Các trường chính (Người có ảnh hưởng) ảnh hưởng trực tiếp đến những bất thường được phát hiện. Theo mặc định sẽ luôn có ít nhất một giá trị ở đây và bạn có thể thêm các giá trị bổ sung. Thuật toán sẽ tính đến mức độ ảnh hưởng của các trường này khi phân tích và hiển thị các giá trị “có ảnh hưởng” nhất.

Sau khi khởi chạy, một cái gì đó như thế này sẽ xuất hiện trong giao diện Kibana.

Tìm hiểu về Machine Learning trong Elastic Stack (còn gọi là Elaticsearch, hay còn gọi là ELK)

Đây là cái gọi là bản đồ nhiệt của các dị thường cho từng giá trị trường Xuất xứSân bayID, mà chúng tôi đã chỉ ra trong Dữ liệu phân tách. Giống như một Số liệu đơn, màu sắc biểu thị mức độ sai lệch bất thường. Thật thuận tiện khi thực hiện một phân tích tương tự, chẳng hạn như trên các máy trạm để theo dõi những người có số lượng ủy quyền lớn đáng ngờ, v.v. Chúng tôi đã viết rồi về các sự kiện đáng ngờ trong EventLog Windows, cũng có thể được thu thập và phân tích ở đây.

Bên dưới bản đồ nhiệt là danh sách các điểm bất thường, từ mỗi điểm bất thường, bạn có thể chuyển sang chế độ xem Chỉ số đơn để phân tích chi tiết.

Dân số

Để tìm kiếm sự bất thường giữa các mối tương quan giữa các số liệu khác nhau, Elastic Stack có phân tích Dân số chuyên biệt. Với sự trợ giúp của nó, bạn có thể tìm kiếm các giá trị bất thường về hiệu suất của máy chủ so với các máy chủ khác, chẳng hạn như khi số lượng yêu cầu đến hệ thống đích tăng lên.

Tìm hiểu về Machine Learning trong Elastic Stack (còn gọi là Elaticsearch, hay còn gọi là ELK)

Trong hình minh họa này, trường Dân số cho biết giá trị mà số liệu được phân tích sẽ liên quan đến. Trong trường hợp này nó là tên của quá trình. Kết quả, chúng ta sẽ thấy tải bộ xử lý của từng tiến trình ảnh hưởng lẫn nhau như thế nào.

Xin lưu ý rằng biểu đồ của dữ liệu được phân tích khác với các trường hợp có Một số liệu và Nhiều số liệu. Điều này được thực hiện ở Kibana theo thiết kế nhằm cải thiện nhận thức về phân phối giá trị của dữ liệu được phân tích.

Tìm hiểu về Machine Learning trong Elastic Stack (còn gọi là Elaticsearch, hay còn gọi là ELK)

Biểu đồ cho thấy quá trình hoạt động bất thường căng thẳng (nhân tiện, được tạo bởi một tiện ích đặc biệt) trên máy chủ poipu, người đã ảnh hưởng (hoặc hóa ra là người có ảnh hưởng) đến sự xuất hiện của hiện tượng bất thường này.

Nâng cao

Phân tích với tinh chỉnh. Với Phân tích nâng cao, các cài đặt bổ sung sẽ xuất hiện trong Kibana. Sau khi nhấp vào ô Nâng cao trong menu tạo, cửa sổ có các tab này sẽ xuất hiện. Chuyển hướng chi tiết công việc Chúng tôi đã cố tình bỏ qua nó, có những cài đặt cơ bản không liên quan trực tiếp đến việc thiết lập phân tích.

Tìm hiểu về Machine Learning trong Elastic Stack (còn gọi là Elaticsearch, hay còn gọi là ELK)

В tóm tắt_count_field_name Theo tùy chọn, bạn có thể chỉ định tên của trường từ tài liệu chứa các giá trị tổng hợp. Trong ví dụ này, số lượng sự kiện mỗi phút. TRONG phân loại_field_name cho biết tên và giá trị của một trường từ tài liệu có chứa một số giá trị biến. Sử dụng mặt nạ trên trường này, bạn có thể chia dữ liệu được phân tích thành các tập hợp con. Hãy chú ý đến nút Thêm máy dò trong hình minh họa trước. Dưới đây là kết quả của việc nhấp vào nút này.

Tìm hiểu về Machine Learning trong Elastic Stack (còn gọi là Elaticsearch, hay còn gọi là ELK)

Đây là khối cài đặt bổ sung để định cấu hình bộ phát hiện bất thường cho một tác vụ cụ thể. Chúng tôi dự định thảo luận về các trường hợp sử dụng cụ thể (đặc biệt là các trường hợp bảo mật) trong các bài viết sau. Ví dụ, hãy xem một trong những trường hợp tháo rời. Nó liên quan đến việc tìm kiếm các giá trị hiếm khi xuất hiện và được triển khai chức năng hiếm.

Trong lĩnh vực này chức năng Bạn có thể chọn một chức năng cụ thể để tìm kiếm sự bất thường. Ngoại trừ hiếm, có một vài chức năng thú vị hơn - thời gian trong ngày и thời gian trong tuần. Họ xác định những điểm bất thường trong hoạt động của các số liệu tương ứng trong suốt cả ngày hoặc tuần. Các chức năng phân tích khác có trong tài liệu.

В tên_trường cho biết lĩnh vực của tài liệu mà việc phân tích sẽ được thực hiện. By_field_name có thể được sử dụng để phân tách các kết quả phân tích cho từng giá trị riêng lẻ của trường tài liệu được chỉ định ở đây. Nếu bạn điền over_field_name bạn sẽ có được phân tích dân số mà chúng ta đã thảo luận ở trên. Nếu bạn chỉ định một giá trị trong phân vùng_field_name, thì đối với trường này của tài liệu, các đường cơ sở riêng biệt sẽ được tính cho từng giá trị (ví dụ: giá trị có thể là tên của máy chủ hoặc quy trình trên máy chủ). TRONG loại trừ_thường xuyên có thể chọn tất cả các hoặc không ai, có nghĩa là loại trừ (hoặc bao gồm) các giá trị trường tài liệu thường xuyên xảy ra.

Trong bài viết này, chúng tôi đã cố gắng đưa ra ý tưởng ngắn gọn nhất có thể về khả năng học máy trong Elastic Stack; vẫn còn rất nhiều chi tiết còn sót lại phía sau. Hãy cho chúng tôi biết trong phần nhận xét những trường hợp bạn đã giải quyết được bằng cách sử dụng Elastic Stack và những nhiệm vụ bạn sử dụng nó. Để liên hệ với chúng tôi, bạn có thể sử dụng tin nhắn cá nhân trên Habré hoặc mẫu phản hồi trên trang web.

Nguồn: www.habr.com

Thêm một lời nhận xét