2010-07-27 30 views
9

Chúng tôi đã phát triển giải pháp PaaS cho PHP. Là một phần trong đó, chúng tôi cung cấp cho nhà phát triển để xem các tệp error_log và access_log Apache thông qua API của chúng tôi.Giải pháp NoSQL nào là tốt nhất để lưu trữ Apache error_log và access_log? Cassandra hay MongoDB?

Hiện tại, chúng tôi ghi nhật ký vào các tệp trên đĩa được phân tách trên mỗi lần triển khai (vhost).

Vì điều này không quy mô quá tốt với số nút và triển khai cao hơn, mặc dù tệp trên hệ thống tệp phân tán (GlusterFS), chúng tôi muốn chuyển sang điều gì đó tốt hơn.

Đặc biệt vì lý do thanh toán và thống kê, chúng tôi không muốn phân tích cú pháp tệp nhật ký mỗi lần.

Vì MongoDB đã thu thập các bộ sưu tập trông tuyệt vời để ghi nhật ký, chúng tôi muốn thực hiện điều đó. Nhưng hóa ra họ dường như không làm việc với tự động sharding mà loại spoils điểm cho chúng tôi kể từ khi chúng tôi mong đợi nhiều hơn viết sau đó đọc.

Các tùy chọn khác là Cassandra mà tôi thích cho nó là mỗi nút là cách tiếp cận bình đẳng, nhưng họ không có một cái gì đó giống như bộ sưu tập mũ.

Hóa ra cả hai giải pháp đều cung cấp một tính năng riêng biệt giúp tôi đưa ra quyết định hoặc tôi không thấy nó.

Vì vậy, điều tôi muốn biết là có ai đã sử dụng một trong hai hệ thống để đăng nhập trước đó không? Kinh nghiệm của bạn là gì, bạn có thể cho tôi một số lời khuyên không? Hoặc có những giải pháp nào khác phù hợp với nhu cầu của chúng tôi tốt hơn không?

Trả lời

5

Bạn có thể xem bài viết này từ Cloudkick nếu bạn đang xem xét sử dụng Cassandra: 4 Months with Cassandra, a love story.

Họ đang sử dụng Cassandra để lưu trữ các số liệu khác nhau cho hệ thống của họ, tương tự như lưu trữ tệp nhật ký.

EDIT:

Nếu bạn chưa quyết định những gì để sử dụng, đây là một giải pháp tuyệt vời sử dụng MongoDB như một backend:

Graylog2 là một nguồn thực hiện syslog mở mà các cửa hàng của bạn nhật ký trong MongoDB. Nó bao gồm một máy chủ được viết bằng Java chấp nhận các thông điệp nhật ký hệ thống của bạn thông qua TCP hoặc UDP và lưu trữ nó trong cơ sở dữ liệu. Phần thứ hai là giao diện web Ruby on Rails cho phép bạn xem các thông điệp tường trình.

+0

Cảm ơn câu trả lời của bạn. Tôi đọc và cũng http://blog.boxedice.com/2009/07/25/choosing-a-non-relational-database-why-we-migrated-from-mysql-to-mongodb/ đó là về một máy chủ giải pháp giám sát sử dụng MongoDB và dường như hài lòng với nó. Nhưng tôi nghĩ ngoài việc có thể có những ý kiến ​​và giải pháp khác. – pst

+0

Lời khuyên tốt nhất là * chơi * với cả hai và xem cái nào hiệu quả cho bạn. Cả hai đều khá dễ dàng để thiết lập và bạn có thể xem cho mình bất cứ điều gì phù hợp với bạn nhất. –

+0

Bạn cũng có thể quan tâm đến câu hỏi này: http://stackoverflow.com/questions/2892729/mongodb-vs-cassandra –

5

Hóa ra không phải trong hai giải pháp cung cấp một tính năng riêng biệt mà giúp tôi đưa ra quyết định, hoặc tôi không nhìn thấy nó.

Thành thật mà nói, chúng tôi sẽ trải qua thử nghiệm này ngay bây giờ với một số dữ liệu nhật ký nghiêm trọng. (và ngay bây giờ, ý tôi là, một vài người trong chúng ta đã thức khuya vào cuối đêm để chạy những thử nghiệm này).

Với tôi, đây là hai tính năng phân biệt: dễ sử dụngđã được chứng minh tỷ lệ.

Dễ sử dụng

  • MongoDB là dễ dàng. Trong một vài giờ, tôi đã chuyển từ máy tính trống sang một cá thể Mongo đang hoạt động với dữ liệu đã nhập từ MySQL và một vài bản đồ đã hoàn thành bị giảm.
  • Trong cùng một khoảng thời gian, nhóm Cassandra ngồi xung quanh việc biên dịch lại các tệp Java đang cố gắng để cấu hình Hadoop chạy trên thực hiện Cassandra hiện có để chúng có thể chạy bản đồ giảm.

đã được chứng minh Scaling

  • MongoDB sharding vẫn còn trong giai đoạn beta. Dự kiến ​​sẽ ra mắt trong vài tuần tới. Đó là khá chặt chẽ.
  • Tách Cassandra được chứng minh trên một số trường hợp rất lớn.

Vì vậy, tôi nghĩ câu trả lời thực sự sẽ cụ thể cho sở thích cá nhân của bạn. Tôi thành thật nghĩ rằng Cassandra có thể là một sản phẩm được chứng minh ổn định hơn &, nhưng tôi cũng biết từ kinh nghiệm rằng đường cong học tập và thiết lập là dốc hơn rất nhiều. Vì vậy, nó có thể là giá trị cố gắng một chút của cả hai.

+0

Tôi đồng ý với bạn. MongoDB thực sự dễ cài đặt nhưng tính năng tự động kích hoạt ở phiên bản beta và dường như không hoạt động với các bộ sưu tập có giới hạn như tôi đã nói ở trên. Đóng băng Cassandara sẽ hoạt động, vì nó dường như đang được sử dụng bởi một số công ty lớn. Nhưng thiết lập là một pita và tôi ghét file cấu hình xml với một niềm đam mê. Nhưng đó là sở thích cá nhân. Cảm ơn bạn đã nhập và tôi sẽ cho bạn biết cách thức hoạt động của chúng tôi. Hiện tại chúng tôi đang thử nghiệm MongoDB. Chúng tôi phải kiểm tra cái này sau cái kia vì tôi không thể chia thành các đội. :) – pst

Các vấn đề liên quan