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ý.
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 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):
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.
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.
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 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 đặt và các trình thu thập được lưu trữ từ Sumo Logic.
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á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.
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.
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.
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ý.
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.
Đố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ừ 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ý 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ả.
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.
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.
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 tùy thuộc vào một số yếu tố, bao gồm:
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:
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