Giả sử bạn đang phát triển một sản phẩm phần mềm. Nó hoạt động từ xa, tương tác với các thiết bị khác nhau, thu thập dữ liệu từ các cảm biến và cung cấp dịch vụ cho người dùng. Một ngày nọ, xảy ra sự cố và hệ thống không hoạt động như mong đợi. Nó có thể không nhận dạng được thiết bị hoặc không nhận được bất kỳ dữ liệu nào từ cảm biến hoặc có thể vừa gặp lỗi thời gian chạy do lỗi trong mã. Làm thế nào bạn có thể biết chắc chắn? Bây giờ, hãy tưởng tượng nếu có các điểm kiểm tra trong mã hệ thống, nếu hệ thống trả về kết quả không mong muốn, nó chỉ cần gắn cờ và thông báo cho nhà phát triển. Đây là khái niệm về đăng nhập Ghi nhật ký cho phép các nhà phát triển hiểu mã thực sự đang làm gì và quy trình công việc diễn ra như thế nào. Phần lớn cuộc sống của các nhà phát triển phần mềm là theo dõi, khắc phục sự cố và gỡ lỗi. Ghi nhật ký làm cho quá trình này trở nên dễ dàng và mượt mà hơn nhiều Trực quan hóa các bản ghinguồnBây giờ, nếu bạn là một nhà phát triển chuyên gia đã phát triển và tạo phần mềm trong một thời gian dài, thì bạn sẽ nghĩ rằng việc ghi nhật ký không phải là vấn đề lớn và hầu hết mã của chúng tôi được bao gồm trong một câu lệnh Trực quan hóa dữ liệu đã ghi cụ thể có các lợi ích sau
Có một số cách chúng ta có thể trực quan hóa dữ liệu thô. Có một số thư viện trong ngôn ngữ lập trình Python và R có thể giúp vẽ biểu đồ. Bạn có thể tìm hiểu thêm về nó ở đây. Nhưng trong bài viết này, tôi sẽ không thảo luận về các phương pháp được đề cập ở trên. Bạn đã bao giờ nghe nói về ngăn xếp ELK chưa? ngăn xếp ELKE — Elaticsearch, L — Logstash, K — Kibana Hãy để tôi giới thiệu ngắn gọn về nó. Ngăn xếp ELK là tập hợp của ba phần mềm nguồn mở giúp cung cấp thông tin chi tiết theo thời gian thực về dữ liệu có thể có cấu trúc hoặc không có cấu trúc. Người ta có thể tìm kiếm và phân tích dữ liệu bằng các công cụ của nó một cách cực kỳ dễ dàng và hiệu quả Elaticsearch là một công cụ phân tích và tìm kiếm RESTful phân tán, có khả năng giải quyết số lượng trường hợp sử dụng ngày càng tăng. Là trung tâm của Ngăn xếp đàn hồi, nó lưu trữ tập trung dữ liệu của bạn để bạn có thể khám phá những điều mong đợi và khám phá những điều không mong muốn. Elaticsearch cho phép bạn thực hiện và kết hợp nhiều loại tìm kiếm - có cấu trúc, không cấu trúc, địa lý, số liệu, v.v. Nó được xây dựng trên ngôn ngữ lập trình Java, cho phép Elaticsearch chạy trên các nền tảng khác nhau. Nó cho phép người dùng khám phá lượng dữ liệu rất lớn ở tốc độ rất cao Logstash là một đường dẫn xử lý dữ liệu phía máy chủ, mã nguồn mở, nhập dữ liệu từ vô số nguồn đồng thời, biến đổi dữ liệu và sau đó gửi dữ liệu đó đến “stash” yêu thích của bạn (như Elaticsearch). Dữ liệu thường nằm rải rác hoặc bị cô lập trên nhiều hệ thống ở nhiều định dạng. Logstash hỗ trợ nhiều loại đầu vào kéo theo các sự kiện từ vô số nguồn chung, tất cả cùng một lúc. Dễ dàng nhập từ nhật ký, số liệu, ứng dụng web, kho lưu trữ dữ liệu và các dịch vụ AWS khác nhau của bạn, tất cả đều theo kiểu truyền phát liên tục. Logstash có một khung có thể cắm được với hơn 200 plugin. Trộn, kết hợp và sắp xếp các đầu vào, bộ lọc và đầu ra khác nhau để hoạt động hài hòa với đường ống Kibana là một nền tảng phân tích và trực quan mã nguồn mở được thiết kế để hoạt động với Elaticsearch. Bạn sử dụng Kibana để tìm kiếm, xem và tương tác với dữ liệu được lưu trữ trong các chỉ số Elaticsearch. Bạn có thể dễ dàng thực hiện phân tích dữ liệu nâng cao và trực quan hóa dữ liệu của mình trong nhiều biểu đồ, bảng và bản đồ. Kibana giúp dễ hiểu khối lượng dữ liệu lớn. Giao diện đơn giản, dựa trên trình duyệt của nó cho phép bạn nhanh chóng tạo và chia sẻ bảng điều khiển động hiển thị các thay đổi đối với truy vấn Elaticsearch trong thời gian thực Để hiểu rõ hơn về quy trình làm việc về cách ba phần mềm tương tác với nhau, hãy tham khảo sơ đồ sau nguồnThực hiệnĐăng nhập bằng PythonỞ đây, tôi chọn giải thích việc triển khai đăng nhập bằng Python vì đây là ngôn ngữ được sử dụng nhiều nhất cho các dự án liên quan đến giao tiếp giữa nhiều máy và internet vạn vật. Nó sẽ giúp cung cấp cho bạn một ý tưởng tổng thể về cách thức hoạt động của nó Python cung cấp một hệ thống ghi nhật ký như một phần của thư viện chuẩn của nó, vì vậy bạn có thể nhanh chóng thêm ghi nhật ký vào ứng dụng của mình
Trong Python, việc ghi nhật ký có thể được thực hiện ở 5 cấp độ khác nhau, mỗi cấp độ tương ứng chỉ ra loại sự kiện. Có như sau
Do đó tùy theo sự cố cần ghi nhật ký mà ta sử dụng mức xác định cho phù hợp. Ghi chú. Thông tin và Gỡ lỗi không được ghi theo mặc định vì chỉ ghi nhật ký ở mức Cảnh báo trở lên Bây giờ để đưa ra một ví dụ và tạo một tập hợp các câu lệnh nhật ký để trực quan hóa, tôi đã tạo một tập lệnh Python để ghi lại các câu lệnh có định dạng cụ thể và một thông báo log_gen. pyTại đây, các câu lệnh nhật ký sẽ nối vào một tệp có tên logFile. txt ở định dạng được chỉ định. Tôi đã chạy tập lệnh trong ba ngày vào các khoảng thời gian khác nhau để tạo một tệp chứa nhật ký ngẫu nhiên như bên dưới logTệp. txtThiết lập Elaticsearch, Logstash và KibanaĐầu tiên, hãy tải xuống ba phần mềm mã nguồn mở từ các liên kết tương ứng của chúng [elasticsearch],[logstash]và[kibana]. Giải nén các tệp và đặt cả ba tệp vào thư mục dự án Bắt đầu nào Bước 1 — Thiết lập Kibana và Elaticsearch trên hệ thống cục bộ. Chúng tôi chạy Kibana bằng lệnh sau trong thư mục bin của Kibana
Tương tự, Elaticsearch được thiết lập như thế này
Bây giờ, trong hai thiết bị đầu cuối riêng biệt, chúng ta có thể thấy cả hai mô-đun đang chạy. Để kiểm tra xem các dịch vụ có đang chạy không, hãy mở localhost. 5621 và máy chủ cục bộ. 9600 Sau khi cả hai dịch vụ đều chạy thành công, chúng tôi sử dụng các chương trình Logstash và Python để phân tích dữ liệu nhật ký thô và chuyển nó tới Elaticsearch từ đó Kibana truy vấn dữ liệu Bước 2— Bây giờ hãy tiếp tục với Logstash. Trước khi bắt đầu Logstash, tệp cấu hình Logstash được tạo trong đó chỉ định chi tiết về tệp đầu vào, vị trí đầu ra và phương pháp lọc logstash-đơn giản. confTệp cấu hình này đóng vai trò chính trong ngăn xếp ELK. Hãy xem dòng filter{grok{…}}. Đây là một plugin bộ lọc Grok. Grok là một cách tuyệt vời để phân tích dữ liệu nhật ký phi cấu trúc thành thứ gì đó có cấu trúc và có thể truy vấn được. Công cụ này hoàn hảo cho nhật ký syslog, apache và các nhật ký máy chủ web khác, nhật ký mysql và nói chung, bất kỳ định dạng nhật ký nào thường được viết cho con người chứ không phải máy tính. Mẫu grok này được đề cập trong mã cho Logstash biết cách phân tích từng mục nhập dòng trong tệp nhật ký của chúng tôi Bây giờ hãy lưu tệp trong thư mục Logstash và bắt đầu dịch vụ Logstash
Để tìm hiểu thêm về cách định cấu hình logstash, hãy nhấp vào [tại đây] Bước 3 — Sau đó, dữ liệu được phân tích cú pháp từ các tệp nhật ký sẽ có sẵn trong phần quản lý Kibana tại localhost. 5621 để tạo các hình ảnh và bảng điều khiển khác nhau. Để kiểm tra xem Kibana có nhận được dữ liệu nào không, trong tab quản lý của Kibana, hãy chạy lệnh sau
Điều này sẽ hiển thị tất cả các chỉ mục. Đối với mỗi lần trực quan hóa, một mẫu Chỉ mục mới phải được chọn từ các công cụ dành cho nhà phát triển, sau đó các kỹ thuật trực quan hóa khác nhau được sử dụng để tạo bảng điều khiển Bảng điều khiển sử dụng KibanaSau khi thiết lập mọi thứ, bây giờ là lúc tạo biểu đồ để trực quan hóa dữ liệu nhật ký Sau khi mở trang chủ quản lý Kibana, chúng tôi sẽ được yêu cầu tạo một mẫu chỉ mục mới. Nhập Bây giờ để tạo đồ thị, chúng ta vào tab Visualize Chọn một trực quan hóa mới, chọn một loại biểu đồ và tên chỉ mục, và tùy thuộc vào yêu cầu trục của bạn, hãy tạo một biểu đồ. Chúng ta có thể tạo một biểu đồ với trục y là số đếm và trục x với từ khóa cấp nhật ký hoặc dấu thời gian Tạo biểu đồSau khi tạo một vài biểu đồ, chúng tôi có thể thêm tất cả các hình ảnh trực quan cần thiết và tạo Trang tổng quan, như bên dưới Lưu ý — Bất cứ khi nào nhật ký trong tệp nhật ký được cập nhật hoặc thêm vào nhật ký trước đó, miễn là ba dịch vụ đang chạy dữ liệu trong elaticsearch và biểu đồ trong kibana sẽ tự động cập nhật theo dữ liệu mới kết thúcGhi nhật ký có thể là một công cụ hỗ trợ trong việc chống lỗi và gỡ lỗi chương trình thay vì sử dụng câu lệnh in. Mô-đun ghi nhật ký phân chia các thông báo theo các cấp độ khác nhau. Điều này dẫn đến hiểu rõ hơn về mã và cách luồng cuộc gọi diễn ra mà không làm gián đoạn chương trình Trực quan hóa dữ liệu là một bước cần thiết trong các tình huống mà một lượng dữ liệu khổng lồ được tạo ra trong mỗi khoảnh khắc. Các công cụ và kỹ thuật trực quan hóa dữ liệu cung cấp cho các giám đốc điều hành và những người lao động tri thức khác những cách tiếp cận mới để cải thiện đáng kể khả năng nắm bắt thông tin ẩn trong dữ liệu của họ. Xác định nhanh các bản ghi lỗi, dễ hiểu dữ liệu và hình ảnh dữ liệu có thể tùy chỉnh cao là một số lợi thế. Đây là một trong những cách xây dựng nhất để tổ chức dữ liệu thô Để tham khảo thêm, bạn có thể tham khảo tài liệu chính thức của ELK tại đây — https. //www. đàn hồi. đồng/học và đăng nhập python — https. // tài liệu. con trăn. org/2/thư viện/ghi nhật ký. html QUẢNG CÁO QUẢNG CÁO QUẢNG CÁO QUẢNG CÁO QUẢNG CÁO QUẢNG CÁO QUẢNG CÁO QUẢNG CÁO QUẢNG CÁO QUẢNG CÁO Nếu bài viết này hữu ích, hãy tweet nó Học cách viết mã miễn phí. Chương trình giảng dạy mã nguồn mở của freeCodeCamp đã giúp hơn 40.000 người có được việc làm với tư cách là nhà phát triển. Bắt đầu |