paint-brush
Cách trích xuất giá trị tối đa từ nhật kýtừ tác giả@alvinslee
1,440 lượt đọc
1,440 lượt đọc

Cách trích xuất giá trị tối đa từ nhật ký

từ tác giả Alvin Lee9m2023/08/25
Read on Terminal Reader

dài quá đọc không nổi

Chúng ta sẽ xem xét cách thiết kế nhật ký, những thách thức và giải pháp để đăng nhập vào các hệ thống lớn cũng như cách suy nghĩ về các số liệu dựa trên nhật ký và khả năng lưu giữ lâu dài.
featured image - Cách trích xuất giá trị tối đa từ nhật ký
Alvin Lee HackerNoon profile picture

Ghi nhật ký được cho là yếu tố quan trọng nhất trong giải pháp khả năng quan sát của bạn. Nhật ký cung cấp thông tin cơ bản và phong phú về hành vi của hệ thống. Trong một thế giới lý tưởng, bạn sẽ đưa ra tất cả các quyết định về việc ghi nhật ký và triển khai một cách tiếp cận nhất quán trên toàn bộ hệ thống của mình.


Tuy nhiên, trong thế giới thực, bạn có thể làm việc với phần mềm cũ hoặc xử lý các ngôn ngữ lập trình, khung và gói nguồn mở khác nhau, mỗi ngôn ngữ có định dạng và cấu trúc riêng để ghi nhật ký.


Với sự đa dạng về định dạng nhật ký trên toàn hệ thống, bạn có thể thực hiện những bước nào để thu được nhiều giá trị nhất từ tất cả nhật ký của mình? Đó là những gì chúng tôi sẽ đề cập trong bài viết này.


Chúng ta sẽ xem xét cách thiết kế nhật ký, những thách thức và giải pháp để đăng nhập vào các hệ thống lớn cũng như cách suy nghĩ về các số liệu dựa trên nhật ký và khả năng lưu giữ lâu dài.


Chúng ta hãy đi sâu vào xem xét các cấp độ và định dạng nhật ký.

Thiết kế ghi nhật ký

Có nhiều điều cần cân nhắc khi thiết kế nhật ký, nhưng hai khía cạnh quan trọng nhất là việc sử dụng các cấp độ nhật ký và liệu nên sử dụng các định dạng nhật ký có cấu trúc hay không có cấu trúc.

Cấp độ nhật ký

Cấp độ nhật ký được sử dụng để phân loại thông điệp tường trình dựa trên mức độ nghiêm trọng của chúng. Các mức nhật ký cụ thể được sử dụng có thể khác nhau tùy thuộc vào hệ thống hoặc khung ghi nhật ký. Tuy nhiên, các cấp độ nhật ký thường được sử dụng bao gồm (theo thứ tự chi tiết, từ cao nhất đến thấp nhất):


  • TRACE : Ghi lại mọi hành động mà hệ thống thực hiện để xây dựng lại bản ghi toàn diện và tính toán mọi thay đổi trạng thái.


  • DEBUG : Ghi lại thông tin chi tiết cho mục đích gỡ lỗi. Những thông báo này thường chỉ liên quan trong quá trình phát triển và không được kích hoạt trong môi trường sản xuất.


  • INFO : Cung cấp thông tin chung về hoạt động của hệ thống nhằm truyền tải các sự kiện hoặc cột mốc quan trọng trong quá trình thực thi hệ thống.


  • CẢNH BÁO : Cho biết các vấn đề hoặc tình huống tiềm ẩn có thể cần được chú ý. Những thông báo này không quan trọng nhưng cần được lưu ý và điều tra nếu cần thiết.


  • LỖI : Cho biết các lỗi xảy ra trong quá trình thực thi hệ thống. Những thông báo này thường nêu bật các vấn đề cần được giải quyết và có thể ảnh hưởng đến chức năng của hệ thống.


Ghi nhật ký ở cấp độ thích hợp giúp hiểu rõ hành vi của hệ thống, xác định sự cố và khắc phục sự cố một cách hiệu quả.


Khi nói đến các thành phần hệ thống mà bạn xây dựng, chúng tôi khuyên bạn nên dành chút thời gian để xác định tập hợp các cấp độ nhật ký hữu ích. Hiểu những loại thông tin nào nên được đưa vào thông báo ở mỗi cấp độ nhật ký và sử dụng các cấp độ nhật ký một cách nhất quán.


Sau đó, chúng ta sẽ thảo luận cách xử lý các ứng dụng của bên thứ ba, nơi bạn không có quyền kiểm soát mức độ nhật ký. Chúng tôi cũng sẽ xem xét các ứng dụng cũ mà bạn kiểm soát nhưng quá mở rộng để di chuyển sang cấp độ nhật ký tiêu chuẩn.

Nhật ký có cấu trúc và không có cấu trúc

Các mục nhập trong nhật ký có cấu trúc có định dạng được xác định rõ ràng, thường là cặp khóa-giá trị hoặc đối tượng JSON. Điều này cho phép các mục nhật ký nhất quán và máy có thể đọc được, giúp phân tích và phân tích dữ liệu nhật ký theo chương trình dễ dàng hơn.


Ghi nhật ký có cấu trúc cho phép truy vấn và phân tích nhật ký nâng cao, khiến tính năng này đặc biệt hữu ích trong các hệ thống quy mô lớn.


Mặt khác, ghi nhật ký phi cấu trúc (dạng tự do) ghi lại các tin nhắn ở định dạng dễ đọc hơn cho con người mà không có cấu trúc được xác định trước. Cách tiếp cận này cho phép các nhà phát triển ghi lại thông điệp một cách tự nhiên và linh hoạt hơn.


Tuy nhiên, việc trích xuất thông tin cụ thể theo chương trình từ nhật ký kết quả có thể rất khó khăn.


Việc lựa chọn giữa nhật ký có cấu trúc và không có cấu trúc tùy thuộc vào nhu cầu cụ thể của bạn cũng như các yêu cầu và ràng buộc của hệ thống. Nếu bạn dự đoán nhu cầu phân tích nhật ký nâng cao hoặc tích hợp với các công cụ phân tích nhật ký thì nhật ký có cấu trúc có thể mang lại lợi ích đáng kể.


Tuy nhiên, nếu tất cả những gì bạn cần là sự đơn giản và dễ đọc thì nhật ký phi cấu trúc có thể là đủ.


Trong một số trường hợp, phương pháp kết hợp cũng có thể được sử dụng, trong đó bạn sử dụng nhật ký có cấu trúc cho các sự kiện quan trọng và nhật ký không có cấu trúc cho các thông báo chung hơn.


Đối với các hệ thống quy mô lớn, bạn nên nghiêng về ghi nhật ký có cấu trúc khi có thể nhưng lưu ý rằng điều này sẽ bổ sung thêm một khía cạnh khác cho kế hoạch của bạn. Kỳ vọng đối với thông điệp nhật ký có cấu trúc là cùng một tập hợp các trường sẽ được sử dụng nhất quán trên các thành phần hệ thống. Điều này sẽ yêu cầu lập kế hoạch chiến lược.

Thử thách ghi nhật ký

Với các hệ thống bao gồm nhiều thành phần, mỗi thành phần rất có thể sẽ có mô hình riêng để quản lý nhật ký của nó. Hãy xem xét những thách thức mà điều này mang lại.

Các điểm đến khác nhau

Các thành phần sẽ đăng nhập vào các đích khác nhau—tệp, nhật ký hệ thống, thiết bị xuất chuẩn hoặc thiết bị xuất chuẩn. Trong các hệ thống phân tán, việc thu thập các nhật ký rải rác này để sử dụng hiệu quả là rất phức tạp.


Để làm được điều này, bạn sẽ cần một cách tiếp cận đa dạng để thu thập nhật ký, chẳng hạn như sử dụng các trình thu thập đã cài đặtcác trình thu thập được lưu trữ từ Sumo Logic.

Định dạng khác nhau

Một số thành phần sẽ sử dụng tính năng ghi nhật ký dạng tự do, không có cấu trúc, không tuân theo bất kỳ định dạng cụ thể nào. Trong khi đó, nhật ký có cấu trúc có thể có tổ chức hơn nhưng các thành phần có nhật ký có cấu trúc có thể sử dụng các nhóm trường hoàn toàn khác nhau.


Việc thống nhất thông tin bạn nhận được từ nhiều nhật ký và định dạng khác nhau đòi hỏi phải có công cụ phù hợp.

Cấp độ nhật ký không nhất quán

Các thành phần trong hệ thống của bạn có thể sử dụng các phạm vi cấp độ nhật ký khác nhau. Ngay cả khi bạn hợp nhất tất cả các thông điệp tường trình vào một hệ thống ghi nhật ký tập trung (nếu cần), bạn sẽ cần phải xử lý sự kết hợp của tất cả các cấp độ nhật ký.


Một thách thức nảy sinh là khi các cấp độ nhật ký khác nhau phải được xử lý như nhau. Ví dụ: LỖI trong một thành phần có thể giống với TIÊU CHUẨN trong thành phần khác, yêu cầu báo cáo ngay lập tức.


Bạn phải đối mặt với thách thức ngược lại khi cùng một cấp độ nhật ký trong các thành phần khác nhau có ý nghĩa khác nhau. Ví dụ: các thông báo INFO trong một thành phần có thể cần thiết để hiểu trạng thái hệ thống, trong khi ở thành phần khác, chúng có thể quá dài dòng.

Chi phí lưu trữ nhật ký

Các hệ thống phân tán lớn tích lũy rất nhiều nhật ký. Việc thu thập và lưu trữ những nhật ký này không hề rẻ. Chi phí liên quan đến nhật ký trên đám mây có thể chiếm một phần đáng kể trong tổng chi phí của hệ thống.

Đối phó với những thách thức này

Mặc dù những thách thức của việc đăng nhập vào các hệ thống phân tán lớn là rất lớn nhưng bạn có thể tìm thấy các giải pháp thông qua một số phương pháp thực hành sau đây.

Tổng hợp nhật ký của bạn

Khi chạy hệ thống phân tán, bạn nên sử dụng giải pháp ghi nhật ký tập trung. Khi bạn chạy tác nhân thu thập nhật ký trên mỗi máy trong hệ thống của mình, những người thu thập này sẽ gửi tất cả nhật ký đến nền tảng quan sát trung tâm của bạn.


Sumo Logic, luôn tập trung vào quản lý và phân tích nhật ký , là công ty tốt nhất trong lĩnh vực tổng hợp nhật ký.

Hướng tới một định dạng thống nhất

Xử lý nhật ký ở các định dạng khác nhau là một vấn đề lớn nếu bạn muốn liên kết dữ liệu nhật ký để phân tích và khắc phục sự cố trên các ứng dụng và thành phần. Một giải pháp là chuyển đổi các nhật ký khác nhau thành một định dạng thống nhất.


Mức độ nỗ lực cho nhiệm vụ này có thể cao, vì vậy hãy cân nhắc thực hiện việc này theo từng giai đoạn, bắt đầu với các thành phần thiết yếu nhất và thực hiện theo cách của bạn.

Thiết lập tiêu chuẩn ghi nhật ký trên các ứng dụng của bạn

Đối với các ứng dụng của riêng bạn, hãy nỗ lực thiết lập một phương pháp ghi nhật ký tiêu chuẩn áp dụng một tập hợp các cấp độ nhật ký thống nhất, một định dạng nhật ký có cấu trúc duy nhất và ngữ nghĩa nhất quán.


Nếu bạn cũng có các ứng dụng cũ, hãy đánh giá mức độ rủi ro và chi phí liên quan đến việc di chuyển chúng để tuân thủ tiêu chuẩn của bạn.


Nếu việc di chuyển không khả thi, hãy xử lý các ứng dụng cũ của bạn giống như các ứng dụng của bên thứ ba.

Làm phong phú nhật ký từ nguồn của bên thứ ba

Làm phong phú nhật ký từ các nguồn của bên thứ ba bao gồm việc tăng cường dữ liệu nhật ký bằng thông tin theo ngữ cảnh từ các hệ thống hoặc dịch vụ bên ngoài. Điều này mang lại sự hiểu biết tốt hơn về các sự kiện trong nhật ký, hỗ trợ các hoạt động khắc phục sự cố, phân tích và giám sát.


Để làm phong phú nhật ký của mình, bạn có thể tích hợp các hệ thống bên ngoài (chẳng hạn như API hoặc hàng đợi tin nhắn) để tìm nạp dữ liệu bổ sung liên quan đến các sự kiện trong nhật ký (chẳng hạn như thông tin người dùng, chi tiết khách hàng hoặc số liệu hệ thống).

Quản lý khối lượng, tần suất và lưu giữ nhật ký

Quản lý cẩn thận khối lượng, tần suất và lưu giữ nhật ký là rất quan trọng để quản lý và lưu trữ nhật ký hiệu quả.


  • Khối lượng : Giám sát khối lượng nhật ký được tạo giúp bạn kiểm soát mức tiêu thụ tài nguyên và tác động đến hiệu suất.


  • Tần suất : Xác định tần suất ghi nhật ký, dựa trên mức độ quan trọng của sự kiện và mức độ giám sát mong muốn.


  • Lưu giữ : Xác định chính sách lưu giữ nhật ký phù hợp với các yêu cầu tuân thủ, nhu cầu vận hành và dung lượng lưu trữ sẵn có.


  • Xoay vòng : Định kỳ lưu trữ hoặc lọc các tệp nhật ký cũ hơn để quản lý kích thước tệp nhật ký một cách hiệu quả.


  • Nén : Nén các tệp nhật ký để giảm yêu cầu lưu trữ.

Số liệu dựa trên nhật ký

Các số liệu bắt nguồn từ việc phân tích dữ liệu nhật ký có thể cung cấp thông tin chi tiết về hoạt động và hiệu suất của hệ thống. Các số liệu dựa trên nhật ký hoạt động có những lợi ích và thách thức riêng.

Những lợi ích

  • Thông tin chi tiết : Các số liệu dựa trên nhật ký cung cấp thông tin chi tiết và chi tiết về các sự kiện hệ thống, cho phép bạn xác định các mẫu, điểm bất thường và các vấn đề tiềm ẩn.


  • Giám sát toàn diện : Bằng cách tận dụng các số liệu dựa trên nhật ký, bạn có thể giám sát hệ thống của mình một cách toàn diện, có được khả năng hiển thị các số liệu quan trọng liên quan đến tính khả dụng, hiệu suất và trải nghiệm người dùng.


  • Phân tích lịch sử : Các số liệu dựa trên nhật ký cung cấp dữ liệu lịch sử có thể được sử dụng để phân tích xu hướng, lập kế hoạch năng lực và tối ưu hóa hiệu suất. Bằng cách kiểm tra xu hướng nhật ký theo thời gian, bạn có thể đưa ra quyết định dựa trên dữ liệu để cải thiện hiệu quả và khả năng mở rộng.


  • Tính linh hoạt và tùy chỉnh : Bạn có thể điều chỉnh việc trích xuất số liệu dựa trên nhật ký cho phù hợp với ứng dụng hoặc hệ thống của mình, tập trung vào các sự kiện và điểm dữ liệu có ý nghĩa nhất cho nhu cầu của bạn.

Thử thách

  • Xác định số liệu có ý nghĩa : Bởi vì tập hợp số liệu có sẵn cho bạn trên tất cả các thành phần của bạn là vô cùng rộng lớn—và sẽ không có ý nghĩa gì nếu nắm bắt được tất cả chúng—việc xác định số liệu nào cần thu thập và trích xuất từ nhật ký có thể là một nhiệm vụ phức tạp.


    Việc xác định này đòi hỏi sự hiểu biết sâu sắc về hành vi của hệ thống và sự liên kết chặt chẽ với các mục tiêu kinh doanh của bạn.


  • Trích xuất và phân tích dữ liệu : Việc phân tích cú pháp nhật ký để trích xuất các số liệu hữu ích có thể yêu cầu các công cụ chuyên dụng hoặc trình phân tích cú pháp tùy chỉnh. Điều này đặc biệt đúng nếu nhật ký không có cấu trúc hoặc được định dạng không nhất quán từ thành phần này sang thành phần khác.


    Việc thiết lập tính năng này có thể tốn thời gian và có thể yêu cầu bảo trì khi định dạng nhật ký thay đổi hoặc nguồn nhật ký mới xuất hiện.


  • Cần phân tích theo thời gian thực : Sự chậm trễ trong việc xử lý các số liệu dựa trên nhật ký có thể dẫn đến các số liệu lỗi thời hoặc không liên quan. Trong hầu hết các trường hợp, bạn sẽ cần một nền tảng có thể thực hiện xử lý dữ liệu đến nhanh chóng, theo thời gian thực để tận dụng các số liệu dựa trên nhật ký một cách hiệu quả.


  • Tác động đến hiệu suất : Việc liên tục thu thập các số liệu định hình thành phần sẽ gây thêm căng thẳng cho tài nguyên hệ thống. Bạn sẽ cần tìm sự cân bằng tốt giữa việc thu thập đủ số liệu dựa trên nhật ký và duy trì hiệu suất hệ thống đầy đủ.


  • Nhiễu dữ liệu và không liên quan : Dữ liệu nhật ký thường bao gồm nhiều thông tin nhiễu và không liên quan, không đóng góp vào các số liệu có ý nghĩa. Việc lọc và chuẩn hóa nhật ký cẩn thận là cần thiết để tập trung thu thập dữ liệu vào các sự kiện có liên quan.

Lưu giữ nhật ký dài hạn

Sau khi chuyển sang tổng hợp nhật ký trong hệ thống tập trung, bạn vẫn cần xem xét các chính sách lưu giữ nhật ký dài hạn. Chúng ta hãy đề cập đến các câu hỏi quan trọng cho lĩnh vực này.

Bạn nên giữ nhật ký trong bao lâu?

Bạn nên giữ nhật ký trong bao lâu tùy thuộc vào một số yếu tố, bao gồm:


  • Loại nhật ký : Một số nhật ký (chẳng hạn như nhật ký truy cập) có thể bị xóa sau một thời gian ngắn. Các nhật ký khác (chẳng hạn như nhật ký lỗi) có thể cần được lưu giữ trong thời gian dài hơn trong trường hợp cần dùng để khắc phục sự cố.


  • Yêu cầu pháp lý : Các ngành như chăm sóc sức khỏe và tài chính có các quy định yêu cầu các tổ chức lưu giữ nhật ký trong một thời gian nhất định, đôi khi thậm chí là vài năm.


  • Chính sách công ty : Công ty của bạn có thể có các chính sách quy định thời gian lưu giữ nhật ký.


  • Kích thước nhật ký : Nếu nhật ký của bạn lớn, bạn có thể cần phải xoay chúng hoặc xóa chúng thường xuyên hơn.


  • Chi phí lưu trữ : Bất kể bạn lưu trữ nhật ký của mình ở đâu—tại chỗ hay trên đám mây—bạn sẽ cần phải tính đến chi phí lưu trữ.

Làm cách nào để giảm mức độ chi tiết và chi phí của nhật ký cũ hơn?

Tất nhiên, xóa nhật ký cũ là cách đơn giản nhất để giảm chi phí lưu trữ của bạn. Tuy nhiên, nó có thể hơi nặng tay và đôi khi bạn có thể muốn giữ lại thông tin từ các nhật ký cũ.


Khi bạn muốn giữ lại thông tin từ nhật ký cũ nhưng cũng muốn tiết kiệm chi phí, hãy cân nhắc thực hiện một số biện pháp sau:


  • Nhật ký lấy mẫu xuống : Trong trường hợp các thành phần tạo ra nhiều câu lệnh nhật ký lặp đi lặp lại, bạn có thể chỉ nhập một tập hợp con của các câu lệnh (ví dụ: cứ 10 câu lệnh thì có 1 câu lệnh).


  • Cắt bớt nhật ký : Đối với nhật ký có thông báo lớn, bạn có thể loại bỏ một số trường. Ví dụ: nếu nhật ký lỗi có mã lỗi và mô tả lỗi, bạn có thể có tất cả thông tin mình cần bằng cách chỉ giữ lại mã lỗi.


  • Nén và lưu trữ : Bạn có thể nén các nhật ký cũ và di chuyển chúng sang bộ lưu trữ rẻ hơn và khó truy cập hơn (đặc biệt là trên đám mây). Đây là giải pháp tuyệt vời cho các nhật ký mà bạn cần lưu trữ trong nhiều năm để đáp ứng các yêu cầu tuân thủ quy định.

Phần kết luận

Trong bài viết này, chúng tôi đã xem xét cách tận dụng tối đa việc đăng nhập vào các hệ thống quy mô lớn.


Mặc dù việc đăng nhập vào các hệ thống này đặt ra một loạt thách thức riêng nhưng chúng tôi đã xem xét các giải pháp tiềm năng cho những thách thức này, chẳng hạn như tổng hợp nhật ký, chuyển đổi nhật ký sang định dạng thống nhất và làm phong phú nhật ký bằng dữ liệu từ các nguồn của bên thứ ba.


Ghi nhật ký là một phần quan trọng của khả năng quan sát. Bằng cách làm theo các phương pháp được nêu trong bài viết này, bạn có thể đảm bảo rằng nhật ký của mình được quản lý hiệu quả, cho phép bạn khắc phục sự cố, xác định sự cố và hiểu rõ hơn về hoạt động của hệ thống.


Và bạn có thể làm điều này trong khi vẫn giữ được chi phí đăng nhập ở mức thấp.


Cũng được xuất bản ở đây