Ghi nhật ký và quản lý nhật ký
Ghi nhật ký và quản lý nhật ký
Dữ liệu nhật ký
Dữ liệu nhật ký là ý nghĩa nội tại của một thông điệp nhật ký. Hay nói cách khác, dữ liệu nhật ký là thông tin được trích xuất từ một thông điệp nhật ký để cho bạn biết lý do tại sao thông điệp nhật ký đó được tạo ra. Ví dụ: máy chủ Web thường ghi lại bất cứ khi nào ai đó truy cập vào một tài nguyên (hình ảnh, tệp, v.v.) trên một trang Web. Nếu người dùng truy cập trang phải xác thực, thông điệp nhật ký sẽ chứa tên người dùng. Đây là một ví dụ về dữ liệu nhật ký: bạn có thể sử dụng tên người dùng để xác định ai đã truy cập vào một tài nguyên.
Tin nhắn nhật ký có thể được phân loại thành các loại chung sau:
Gỡ lỗi
Thông báo gỡ lỗi thường được tạo ra từ các hệ thống phần mềm để hỗ trợ các nhà phát triển phần mềm khắc phục sự cố và xác định các vấn đề khi chạy mã ứng dụng. Ở mức lỗi này, các thông tin được in ra sẽ cụ thể hơn và liên quan đến các biến và địa chỉ của hệ thống. Ví dụ cụ thể như giá trị các biến được sử dụng, các địa chỉ con trỏ và các thông tin liên quan đến luồng xử lý logic trong mã nguồn.
Thông tin
Các thông báo loại này được thiết kế để thông báo cho người dùng và quản trị viên biết rằng có sự cố vô hại đã xảy ra. Đối với các thông tin được đặt mức này, thường là các thông tin liên quan đến cấu hình hệ thống, các thông tin trao đổi giữa hệ thống Wi-Fi Mesh với các thành phần trong mạng. Ví dụ cụ thể như khi STA kết nối vào hệ thống, nhật ký mức này sẽ được sử dụng để in ra các thông tin liên quan đến MAC, loại kết nối, các chuẩn kết nối mà thiết bị STA đó hỗ trợ.
Cảnh báo
Thông báo cảnh báo liên quan đến các tình huống mà hệ thống có thể thiếu hoặc cần một số thứ, nhưng việc thiếu chúng sẽ không ảnh hưởng đến hoạt động của hệ thống. Ở mức lỗi này, thường sẽ là các sự kiện xảy ra trong quá trình hệ thống vận hành như ngắt/mở các cổng kết nối vật lý, mất gói tin và gửi lại, cụ thể trong hệ thống Wi-Fi Mesh là sự kiện các thiết bị 1905 rời mạng hoặc kết nối lại mạng. Việc đánh giá và đưa ra quyết định đặt mức nhật ký này sẽ cần nhà phát triển quản lý được tổng thể quá trình vận hành của hệ thống. Bởi lẽ, ở mức này việc sự kiện được in ra có thể không gây lỗi hệ thống ngay lập tức nhưng nó sẽ là manh mối cho vấn đề lớn hơn có thể xảy ra trong tương lai.Thông báo cảnh báo liên quan đến các tình huống mà hệ thống có thể thiếu hoặc cần một số thứ, nhưng việc thiếu chúng sẽ không ảnh hưởng đến hoạt động của hệ thống. Ví dụ: nếu một chương trình không được cung cấp đủ số lượng đối số dòng lệnh cần thiết, nhưng vẫn có thể chạy mà không cần chúng, thì chương trình có thể ghi lại thông tin này như một cảnh báo cho người dùng hoặc người vận hành.
Lỗi
Thông báo nhật ký lỗi được sử dụng để chuyển tiếp các lỗi xảy ra ở nhiều cấp độ khác nhau trong hệ thống máy tính. Ví dụ hệ điều hành có thể tạo nhật ký lỗi khi không thể đồng bộ hóa bộ đệm với ổ đĩa. Đáng tiếc là nhiều thông báo lỗi chỉ cung cấp cho bạn điểm khởi đầu về lý do tại sao chúng xảy ra. Thông thường, cần phải điều tra thêm để tìm ra nguyên nhân gốc rễ của lỗi. Một số ví dụ khác như con trỏ rỗng, giá trị biến nằm ngoài ngưỡng hay giá trị rác, hành vi không đúng thiết kế của hệ thống đều cần được in ra ở mức này.
Báo động
Cảnh báo được dùng để chỉ ra điều gì đó thú vị đã xảy ra. Nhìn chung, ở mức cảnh báo này thường sẽ liên quan đến sự sống còn của hệ thống. Ví dụ như việc lấy thông tin khởi tạo ban đầu của các daemon trong hệ thống, nếu không thể lấy các thông tin này thì chắc chắn hệ thống sẽ không thể hoạt động đúng như thiết kế và cần ghi nhận ngay lập tức. Thông thường, nhà phát triển sẽ ít mong đợi có quá nhiều nhật ký mức này được in ra.
Dữ liệu nhật ký được truyền và thu thập như thế nào?
Việc truyền và thu thập dữ liệu nhật ký về mặt khái niệm rất đơn giản. Máy tính hoặc thiết bị triển khai một hệ thống ghi nhật ký con, nhờ đó nó có thể tạo ra một thông báo bất cứ khi nào nó xác định là cần thiết. Cách thức xác định chính xác phụ thuộc vào thiết bị. Ví dụ: bạn có thể có tùy chọn cấu hình thiết bị hoặc thiết bị có thể được mã hóa cứng để tạo ra một danh sách thông báo được thiết lập sẵn. Mặt khác, bạn phải có một nơi để gửi và thu thập thông báo nhật ký. Nơi này thường được gọi là loghost. Loghost là một hệ thống máy tính, thường là hệ thống Unix hoặc máy chủ Windows, nơi các thông báo nhật ký được thu thập tại một vị trí trung tâm.
Những lợi ích khi sử dụng bộ thu thập nhật ký trung tâm như sau:
- Đây là nơi tập trung để lưu trữ thông điệp nhật ký từ nhiều vị trí.
- Đây là nơi lưu trữ các bản sao lưu nhật ký của bạn.
- Đây là nơi có thể thực hiện phân tích trên dữ liệu nhật ký của bạn.
Tin nhắn nhật ký là gì?
Tin nhắn nhật ký là thứ được tạo ra bởi một số thiết bị hoặc hệ thống để biểu thị rằng có điều gì đó đã xảy ra.
Trước hết, nội dung cơ bản điển hình của một tin nhắn nhật ký như sau:
- Thời gian.
- Nguồn.
- Dữ liệu.
Thời Gian
Đây là thông tin đầu tin của một nhật ký được in ra, đó là thời điểm mà hệ thống ghi nhận vấn đề phát sinh khi hệ thống đang hoạt động. Thông thường sẽ bao gồm năm, tháng, ngày và giờ hệ thống tính đến thời điểm in ra tin nhắn nhật ký. Một vài vấn đề có thể phát sinh liên quan như giờ hệ thống mặc định lúc khởi động chưa được cập nhật khi chưa có kết nối Internet, cần phải chú ý vấn đề này để tránh hiểu sai thời điểm phát sinh lỗi của hệ thống.
Nguồn
Thông tin này sẽ thường bao gồm tên của tiến trình hoạt động đã in ra tin nhắn nhật ký, kèm theo mức độ cảnh báo của tin nhắn, một số sẽ có cả tên hàm và số dòng mà tin nhắn được in ra. Thông thường, khi trong quá trình phát triển, các thông tin đó có thể in ra đầy đủ, tuy nhiên khi sản phẩm triển khai ngoài thị trường sẽ cần bỏ bớt các thông tin như tên hàm, số dòng nhằm giảm bớt lượng thông tin nhật ký cần lưu, tránh lộ thông tin mã nguồn của hệ thống.
Dữ liệu
Việc thông tin được in ra cần chứa những nội dung gì là vô cùng quan trọng, bạn không thể in ra một nội dung quá ngắn hoặc quá nhiều thông tin cho việc phát triển và gỡ lỗi của hệ thống. Những tin nhắn như vậy cần loại bỏ và nên in ra đủ thông tin cho nhà phát triển. Ở mỗi mức tin nhắn sẽ cần các thông tin được hiển thị khác nhau, nhằm đáp ứng đúng vai trò và ý nghĩa mà chúng đảm nhận. Bạn không thể để thông tin đúng in ra ở mức lỗi nếu bạn muốn phát hiện lỗi trên hệ thống, nó thậm chí không hữu dụng mấy cho việc gỡ lỗi của bạn. Các nguyên tắc về nhật ký sẽ được trình bày cụ thể ở phần sau, cần tuân thủ các nguyên tắc đó nhằm nâng cao chất lượng nhật ký của hệ thống.
Chính sách lưu giữ nhật ký
Việc xây dựng chính sách lưu trữ nhật ký sẽ đặt nền tảng cho việc xem xét các chủ đề lưu trữ được đề cập trong chương này. Chính sách mà bạn thiết kế cho tổ chức của mình sẽ quyết định nhiều quyết định cần đưa ra về loại hình lưu trữ, kích thước, chi phí, tốc độ truy xuất, cũng như các yêu cầu lưu trữ và hủy bỏ cho dữ liệu nhật ký của bạn.
Bạn cần xem xét các mục sau đây khi xây dựng chính sách lưu giữ nhật ký:
Đánh giá các yêu cầu tuân thủ hiện hành
Ngày nay, nhiều ngành công nghiệp đang áp dụng một số yêu cầu tuân thủ nghiêm ngặt. Ví dụ bao gồm Tiêu chuẩn Bảo mật Dữ liệu Ngành Thẻ Thanh toán (PCI DSS) với thời hạn lưu trữ nhật ký rất cụ thể là một năm, mục 10.7 của PCI DSS (Hội đồng Tiêu chuẩn Bảo mật PCI, 2010), các quy định của Tập đoàn Điện lực Độ tin cậy Bắc Mỹ (NERC) đề cập đến thời hạn cụ thể cho từng loại nhật ký; các quy định khác yêu cầu lưu trữ các loại nhật ký cụ thể nhưng không nêu rõ thời hạn. Hướng dẫn này giúp đặt nền tảng và các yêu cầu tối thiểu cho chính sách lưu trữ.
Xem xét lại tình hình rủi ro của tổ chức
Rủi ro nội bộ và rủi ro bên ngoài quyết định thời gian lưu trữ cho các bộ phận khác nhau trong mạng của bạn. Thời gian và tầm quan trọng của nhật ký có thể rất khác nhau tùy thuộc vào từng khu vực rủi ro này đối với một tổ chức. Hãy nhớ rằng nếu bạn tập trung sử dụng nhật ký để điều tra các mối đe dọa nội bộ, thời gian lưu trữ cần phải dài hơn, vì những sự cố như vậy thường không được phát hiện trong nhiều năm, nhưng khi được phát hiện, sẽ gây ra nhu cầu cấp thiết phải "đi đến tận cùng của vấn đề!"
Xem xét các nguồn nhật ký khác nhau và kích thước của các nhật ký được tạo ra
Tường lửa, máy chủ, cơ sở dữ liệu, proxy web—không chỉ dựa trên nhu cầu mà còn dựa trên khối lượng nhật ký điển hình, kích thước và loại của mỗi bản ghi nhật ký được tạo ra. Có rất nhiều loại nhật ký bạn sẽ nhận được từ mỗi loại thiết bị hoặc ứng dụng. Ví dụ: nhật ký từ tường lửa chính sẽ tạo ra một khối lượng nhật ký khổng lồ và do đó rất có thể chỉ nên được lưu trữ trong 30 ngày do yêu cầu lưu trữ lâu dài đối với dữ liệu nhật ký này. Tuy nhiên, nhu cầu tuân thủ của tổ chức, chẳng hạn như PCI DSS, và mức độ quan trọng của tường lửa chính nên được đánh giá chặt chẽ để xác định xem có cần thời gian lưu trữ lâu hơn hay không. Ngoài ra, bạn có thể có các nguồn nhật ký tạo ra các nhật ký mà bạn không có các công cụ cần thiết để phân tích nhật ký, chẳng hạn như các ứng dụng tùy chỉnh và hệ điều hành không được hỗ trợ.
Xem lại các tùy chọn lưu trữ có sẵn
Các tùy chọn lưu trữ nhật ký bao gồm đĩa, DVD, WORM, băng, RDBMS, lưu trữ nhật ký chuyên biệt và lưu trữ đám mây. Quyết định về điều này chủ yếu dựa trên giá cả, dung lượng và tốc độ truy cập, và điều rất quan trọng là khả năng truy cập đúng bản ghi nhật ký trong một khoảng thời gian hợp lý. Băng được biết đến là một lựa chọn rẻ tiền, nhưng lại nổi tiếng là không có khả năng tìm kiếm hiệu quả các bản ghi được lưu trữ và có thể cần sự can thiệp của con người để tìm đúng băng và khôi phục dữ liệu để phân tích. Tuổi thọ của phương tiện cũng cần được xem xét ở đây và tần suất ghi lại phương tiện để đáp ứng yêu cầu về thời gian lưu giữ. Ví dụ, bảy năm đối với đĩa CD hoặc DVD ghi được giá rẻ có lẽ là một khoảng thời gian quá dài. Công nghệ định dạng ngày càng lỗi thời và khả năng mua ổ đĩa để đọc băng và đĩa có thể trở nên khan hiếm.
Nguyên tắc trong quản lý log
Luật Thu Thập
Đừng thu thập dữ liệu nhật ký mà bạn không có ý định sử dụng, chỉ thu thập nhật ký khi có lý do rõ ràng (điều tra sự cố, phân tích bảo mật, v.v.). Ta cần tránh tâm lý “thu thập cho có” hoặc “biết đâu cần đến”, áp dụng cả cho việc tạo nhật ký, đừng sinh ra nhật ký nếu bạn không dùng đến.
- Chỉ thu thập log khi có lý do rõ ràng (điều tra sự cố, phân tích bảo mật, v.v.).
- Tránh tâm lý “thu thập cho có” hoặc “biết đâu cần đến”.
- Áp dụng cả cho việc tạo log: đừng sinh ra log nếu bạn không dùng đến.
Luật Lưu Trữ
Chỉ giữ log lâu như khoảng thời gian bạn nghĩ rằng nó còn có thể hữu ích hoặc lâu hơn nếu luật yêu cầu.
- Giá trị sử dụng tiềm năng
- Yêu cầu pháp lý hoặc tuân thủ
- Không nên lưu mọi nhật ký trong nhiều năm nếu không cần thiết
Luật Giám Sát
Ghi log càng nhiều càng tốt, nhưng chỉ cảnh báo khi thật sự cần phản ứng. Dữ liệu có thể khổng lồ (petabyte), nhưng năng lực con người có hạn (12 cảnh báo/ngày?). Tránh làm “ngập lụt” đội ngũ giám sát với các cảnh báo không cần thiết. Triết lý ở đây là in ra tất cả các nhật ký, lưu trữ một vài nhật ký có lỗi và giám sát những vấn đề được phát hiện.
Luật An Ninh
Đừng đầu tư bảo vệ nhật ký nhiều hơn mức bạn bảo vệ dữ liệu kinh doanh quan trọng. Nhật ký có giá trị nhưng không nên bảo vệ hơn cả bí mật kinh doanh hoặc dữ liệu nhạy cảm. Biện pháp thực tế:
- Hash nhật ký để chống chỉnh sửa
- Áp dụng kiểm soát truy cập hợp lý
- Tránh mã hóa nhật ký trừ khi thật cần thiết (do tốn tài nguyên và phức tạp)
Luật Thay Đổi Liên Tục
Nguồn nhật ký, loại nhật ký và nội dung nhật ký luôn thay đổi do môi trường phát triển và triển khai có thể thay đổi theo nhu cầu và xu hướng công nghệ.
- Rà soát chính sách và quy trình nhật ký định kỳ
- Cập nhật hệ thống thu thập nhật ký và đọc nhật ký
- Tài liệu hóa các quá trình sinh nhật ký và lưu trữ chúng
This post is licensed under CC BY 4.0 by the author.