Tôi thấy rất nhiều người sử dụng monit kết hợp với runit. Điều đó có thừa không? Điểm của việc sử dụng runit là gì? Có phải vì nó đáng tin cậy hơn khi giao dịch với các dịch vụ (vì nó không phụ thuộc vào pidfiles)?
Cảm ơn!
Tôi thấy rất nhiều người sử dụng monit kết hợp với runit. Điều đó có thừa không? Điểm của việc sử dụng runit là gì? Có phải vì nó đáng tin cậy hơn khi giao dịch với các dịch vụ (vì nó không phụ thuộc vào pidfiles)?
Cảm ơn!
Câu trả lời:
Tôi chưa bao giờ nghe nói về runit , nhưng tôi là một người dùng Monit nặng ...
Nhìn vào runit
, tôi thấy rằng đó là một sự thay thế init. Tôi tranh luận rằng hầu hết các hệ thống doanh nghiệp đều gắn bó với Sys V init hoặc Upstart mặc định của họ . Tôi không nghĩ rằng đó là một thực tế phổ biến để thay đổi nó.
Tuy nhiên, mối quan hệ ở đây có thể là runit cung cấp một cách thuận tiện để sinh ra Monit và đảm bảo nó vẫn chạy. Có lẽ tương tự như chạy Monit từ inittab. Về cơ bản, đó là "xem người theo dõi" hoặc giám sát hệ thống giám sát của bạn.
Trong thực tế, tôi sử dụng Monit như một daemon và không có vấn đề gì với việc nó bị rơi hoặc bị giết. Có lẽ sự hấp dẫn của runit
nó là nó cung cấp một số bảo vệ bổ sung.
Đối với Monit, nó hoạt động tốt với khớp mẫu tên quy trình thay vì các tệp PID .
runit rất phù hợp để kiểm soát các dịch vụ và đăng nhập và cũng dính vào unix-way: dễ dàng kết hợp các phần đơn giản khi bạn cần. Nó có thể thực hiện một số kiểm tra và xử lý sự kiện bắt đầu / dừng dịch vụ nhưng bạn sẽ phải tự viết kịch bản tất cả những thứ này. Lưu ý: runit không hoạt động nếu dịch vụ của bạn không thể chạy ở nền trước.
monit vẫn ổn để kiểm soát các dịch vụ (nhưng không tốt bằng runit vì bạn sẽ phải tự xử lý và ghi nhật ký) và cũng hoạt động tốt với các quy trình tự tạo da nếu chúng phơi bày pidfile chính xác. Mặt khác, nó thực sự tuyệt vời để xem các dịch vụ: xử lý sự kiện, kiểm tra rò rỉ bộ nhớ và như vậy. Ngoài ra, nó có bảng điều khiển đẹp cho các trạng thái dịch vụ duyệt web (cả dựa trên dòng lệnh và dựa trên web) và bảng điều khiển thương mại m / monit để nhận dữ liệu từ một số máy chủ.
Cách này sử dụng runit + monit trở thành như sau: