Đăng nhập vào tập tin văn bản hoặc cơ sở dữ liệu?


25

Khi nào tôi nên sử dụng cơ sở dữ liệu để ghi nhật ký và khi tệp văn bản?
Tôi thấy rằng các máy chủ web và khung web (ứng dụng của bạn sử dụng nội bộ) thường (luôn luôn?) Yêu cầu nhật ký và lỗi vào các tệp văn bản theo mặc định. Nhưng tôi thấy rằng những người phát triển ứng dụng của họ xung quanh các máy chủ và khung đó đôi khi đăng nhập vào cơ sở dữ liệu (ngay cả DB chính của ứng dụng, chứ không phải một số bên ngoài).
Ngoài ra có thể có một sự khác biệt giữa nhật ký gỡ lỗinhật ký kiểm toán - Tôi đã đọc phân loại này ở đâu đó trên trang web này.



Điều này có thể giúp quá stackoverflow.com/questions/3458813/
Muhammad Raja


Mặc dù bạn không nên ghi nhật ký thông tin nhạy cảm, một số hệ thống có thể yêu cầu thông tin đó và đây là trường hợp tốt để đăng nhập vào cơ sở dữ liệu. Đôi khi các nhà phát triển vô tình đăng nhập thông tin nhạy cảm. Để chống lại tai nạn này, nhiều nhà phát triển ứng dụng sẽ chỉ đăng nhập vào cơ sở dữ liệu để những thứ như số an sinh xã hội trong thông điệp tường trình không được đặt trong tệp văn bản ở dạng văn bản đơn giản trên 13 máy chủ khác nhau.
Greg Burghardt

Câu trả lời:


16

Nói một cách rất chung chung, việc đăng nhập vào tệp văn bản nhanh hơn nhiều so với việc đăng nhập vào cơ sở dữ liệu. Đó là khía cạnh chính của đăng nhập bạn cần xem xét.

Lý do bạn đăng nhập vào DB có nhiều khả năng là vì bạn muốn truy vấn kết quả - tìm kiếm thông tin nhật ký cụ thể dễ dàng hơn trong DB, đặc biệt nếu bạn đăng nhập thông tin theo ngữ cảnh có thể được sử dụng để nhóm các mục nhật ký. Việc truy cập DB trung tâm cũng thường dễ dàng hơn so với tệp nhật ký trên máy chủ có thể được bảo mật và không truy cập được.

Lý tưởng sẽ là đăng nhập cục bộ vào một tệp, sau đó di chuyển dữ liệu này sang DB để kiểm tra nếu cần sau đó.

Bây giờ kiểm toán là một con thú khác nhau hoàn toàn. Mặc dù có khái niệm tương tự như ghi nhật ký, kiểm toán thường cần được lưu giữ trong một thời gian dài (không giống như các tệp nhật ký được sử dụng để gỡ lỗi hoặc theo dõi có thể bị xóa bất kỳ lúc nào). Kiểm toán có mặt để hiển thị thông tin quan trọng. Bạn đăng nhập thông tin kiểm toán ít hơn nhiều và ít thường xuyên hơn đăng nhập bình thường vì vậy hiệu suất không phải là vấn đề đáng lo ngại. Vì lý do này mà những lợi thế của việc viết thông tin kiểm toán này vào DB trung tâm được nhìn thấy.


1
Một sự sắp xếp khác mà tôi đã thấy là các bản ghi được ghi cục bộ ban đầu và sau đó được đẩy đến DB bằng một loại công việc nền nào đó.
Robbie Dee

@RobbieDee Tôi thích ý tưởng này. Tôi có một loại câu hỏi trùng lặp: thông thường có tệp nhật ký thời lượng giới hạn (ví dụ: chỉ 30 ngày qua) nhưng khi nhật ký được đẩy vào cơ sở dữ liệu (ví dụ: hàng tuần), thì tất cả các nhật ký được lưu trữ trong cơ sở dữ liệu => tệp nhật ký hoạt động giống như một bộ đệm và tất cả các hoạt động đọc được thực hiện trên cơ sở dữ liệu? Vì việc viết trong DB bị trì hoãn, không có gì phải lo lắng về hiệu năng, phải không.
Al-un

9

Không có một kích thước phù hợp với tất cả các cách tiếp cận và để phục hồi, đôi khi bạn muốn sử dụng nhiều cách tiếp cận. Lấy ví dụ của bạn, bạn có thể muốn bỏ nhật ký gỡ lỗi trong một tệp và lưu trữ nhật ký kiểm toán trong DB.

Bánh mì ứng dụng

Ưu điểm: Dễ dàng thực hiện và hiển thị cho người dùng ngay lập tức

Nhược điểm: Thông tin chỉ tồn tại khi ứng dụng được bật

Tập tin văn bản

Ưu điểm: Dễ thực hiện

Nhược điểm: Cần đảm bảo khóa tập tin không xảy ra. Làm gì khi hết dung lượng đĩa trên ổ đĩa log?

Nhật ký sự kiện

Ưu điểm: Dễ thực hiện

Nhược điểm: Nhật ký sự kiện có thể trở nên đầy đủ nếu không được thiết lập chính xác hoặc nhật ký cũ có thể bị mất do chính sách duy trì / xóa.

Cơ sở dữ liệu

Ưu điểm: Dễ thực hiện

Nhược điểm: Lưu lượng DB nhiều hơn. Làm thế nào để ghi lại sự mất DB hoặc vấn đề DB khác?

Nhắn tin (MQ)

Ưu điểm: Cháy và quên

Nhược điểm: Một lớp khác đi sai. Yêu cầu thiết lập


Bạn cũng có thể muốn bao gồm các điểm đến nhật ký hệ thống và nhật ký SNMP.
gbjbaanb

@gbjbaanb Thực sự - một số HĐH có chức năng như vậy được tích hợp sẵn - đây chắc chắn không phải là một danh sách đầy đủ. Các hệ thống có tính sẵn sàng cao cũng có thể gửi SMS khi chúng bị hỏng.
Robbie Dee

2

Nhật ký kiểm toán phải đảm bảo truy xuất nguồn gốc đầy đủ của các hoạt động trong thời gian dài hơn cho mục đích kiểm toán, với mục tiêu biện minh đầy đủ nội dung cơ sở dữ liệu của bạn.

Trong một số trường hợp (ví dụ: ứng dụng tài chính), các nhật ký này có thể phải đảm bảo tuân thủ các yêu cầu pháp lý như giữ chân (ở một số quốc gia trong 10 năm) hoặc không thể thay đổi. Vì các nhật ký này phải chứng minh nội dung của db ở cấp ứng dụng, nên việc lưu trữ chúng trong db, nơi truy cập có thể được kiểm soát để tránh sự thay đổi trái phép.

Các nhật ký khác , như nhật ký giám sát hoặc nhật ký bảo mật thường xuyên phải đối phó với các hạn chế về hiệu suất và âm lượng. Chúng thường được ghi vào một tệp vì viết nhanh hơn (không có chi phí quản lý giao dịch) dễ dàng lưu trữ ngoại tuyến hơn và dễ tích hợp hơn với các công cụ SIEM giám sát bên ngoài .

Cần lưu ý rằng, mặc dù các loại nhật ký này có thể được sử dụng để chứng minh độ tin cậy của nhật ký kiểm toán (ví dụ: không truy cập trái phép), nhưng chúng thường có các ràng buộc duy trì ngắn hơn (ví dụ: từ 6 tháng đến 2 năm cho các mục đích thực thi pháp luật đối với nhật ký viễn thông) nếu có bất kỳ ràng buộc nào cả.


1

Một trong nhiều lý do để sử dụng db để ghi nhật ký gỡ lỗi là Khi bạn không có quyền truy cập vào ứng dụng hoặc máy chủ web để xem trình xem sự kiện hoặc tệp văn bản

Nhật ký kiểm toán là khác nhau sau đó gỡ lỗi nhật ký trong ngữ cảnh của ứng dụng web, vì trong một số ứng dụng, bạn có thể cần hiển thị chúng cho người dùng cuối để họ có thể truy cập vào cơ sở dữ liệu để dễ dàng truy xuất.

Bạn có thể sử dụng Công cụ DB để lọc và cũng dễ dàng xem.


Ghi vào tệp nhật ký máy chủ không phải là lựa chọn duy nhất cho các hệ thống tương tranh cao. Các nhật ký này thường được ghi vào thiết bị khách và sau đó đẩy qua để hỗ trợ trong trường hợp xảy ra sự cố. Đồng thời cao cũng có thể làm cho điều này không phù hợp để ghi vào một cơ sở dữ liệu.
Robbie Dee

@RobbieDee Đó có phải là trường hợp của máy chủ web và ứng dụng web không? như đó là những gì OP đang yêu cầu tôi tin tưởng
Muhammad Raja
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.