MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Tôi nên sử dụng cơ sở dữ liệu NoSQL nào để ghi nhật ký?

Tôi đã quyết định sửa lại câu trả lời đã được chấp nhận này vì tình trạng hiện đại đã thay đổi đáng kể trong 18 tháng qua và có nhiều lựa chọn thay thế tốt hơn.

Câu trả lời mới

MongoDB là một lựa chọn phụ cho giải pháp ghi nhật ký có thể mở rộng. Có những lý do thông thường cho điều này (ví dụ:ghi hiệu suất dưới tải). Tôi muốn đưa ra thêm một điều nữa, đó là nó chỉ giải quyết một trường hợp sử dụng duy nhất trong giải pháp ghi nhật ký.

Một giải pháp ghi nhật ký mạnh cần bao gồm ít nhất các giai đoạn sau:

  • Bộ sưu tập
  • Vận chuyển
  • Đang xử lý
  • Bộ nhớ
  • Tìm kiếm
  • Hình dung

MongoDB như một sự lựa chọn chỉ giải quyết trường hợp sử dụng Storage (mặc dù hơi kém). Khi chuỗi hoàn chỉnh được phân tích, sẽ có các giải pháp phù hợp hơn.

@KazukiOhta đề cập đến một vài lựa chọn. Giải pháp end to end ưa thích của tôi những ngày này liên quan đến:

  • Logstash-Forwarder để Thu thập &Vận chuyển
  • Logstash &Riemann để xử lý
  • ElasticSearch for Storage &Queries
  • Kibana3 cho Hình ảnh hóa

Việc sử dụng cơ bản của ElasticSearch để lưu trữ dữ liệu nhật ký sử dụng giải pháp NoSQL tốt nhất hiện tại cho trường hợp sử dụng ghi nhật ký và tìm kiếm. Thực tế là Logstash-Forwarder / Logstash / ElasticSearch / Kibana3 dưới sự bảo trợ của ElasticSearch khiến cho một lập luận thậm chí còn thuyết phục hơn.

Vì Logstash cũng có thể hoạt động như một proxy Graphite, một chuỗi tương tự có thể được xây dựng cho các vấn đề liên quan đến việc thu thập và phân tích số liệu (không chỉ nhật ký).

Câu trả lời cũ

MongoDB Capped Collections cực kỳ phổ biến và phù hợp để ghi nhật ký, với phần thưởng bổ sung là 'lược đồ ít hơn', thường phù hợp ngữ nghĩa để ghi nhật ký. Thường thì chúng ta chỉ biết những gì chúng ta muốn để đăng nhập tốt vào một dự án, hoặc sau khi một số vấn đề nhất định đã được tìm thấy trong quá trình sản xuất. Cơ sở dữ liệu quan hệ hoặc lược đồ nghiêm ngặt có xu hướng khó thay đổi trong những trường hợp này và việc cố gắng làm cho chúng trở nên 'linh hoạt' có xu hướng chỉ khiến chúng trở nên 'chậm chạp' và khó sử dụng hoặc khó hiểu.

Nhưng nếu bạn muốn quản lý nhật ký của mình trong bóng tối và chiếu tia laser và làm cho nó trông giống như bạn đang ở ngoài không gian, thì luôn có Graylog2 sử dụng MongoDB như một phần của cơ sở hạ tầng tổng thể nhưng cung cấp nhiều hơn thế nữa chẳng hạn như định dạng phổ biến, có thể mở rộng, máy chủ thu thập nhật ký chuyên dụng, kiến ​​trúc phân tán và giao diện người dùng thú vị.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Cách triển khai MongoDB để có tính khả dụng cao

  2. Không thể kết nối với mongoDB đang chạy trong bộ chứa docker

  3. Nhóm có điều kiện với $ tồn tại bên trong $ cond

  4. Có thể tạo Bộ sưu tập MongoDB được đặt tên động không?

  5. Chế nhạo cơ sở dữ liệu trong node.js?