Tích hợp Rails giám sát các thông số hệ thống trên môi trường Linux

Hi all,

Đã lâu từ bài trước. Hôm nay chúng ta sẽ đến một nội dung khá thú vụ tiếp theo.

Đã bao giờ các bạn đặt câu hỏi về việc làm một page có thể xem các thông tin về RAM, SWAP hay dung lượng sử dụng của VPS  của mình trên Rails app chưa?

Trong một số bài trước mình có giới thiệu công cụ Monit để giám sát, tuy nhiên hôm nay ta sẽ build một cách khá thủ công và đơn giản thôi, tuy nhiên rất thú vị.

Hôm nay tôi cùng các bạn build một tính năng như vậy trong hệ thống nhé.

Trước tiên hãy cùng xem qua hình sau, đây là thành quả sau khi chúng ta thực hiện việc này

Selection_106Bước 1: Routes.rb

Add vào routes: 1 đường dẫn đến page này

Bước 2: Controller

Tại controller chúng ta thực hiện việc lấy thông tin ra như sau:

Ở đây ta chú ý với 2 lệnh: free-h và df -h

Free-h sẽ thông tin về RAM và SWAP.

Df-h sẽ lấy thông tin về dung lượng ổ cứng sử dụng.

Bạn có thể cần các thông tin khác như CPU có thể tìm trên mạng lệnh tương tự.

với

đây là cách thực thi một lệnh shell trên ruby, với cách này chúng ta có thể handler được output để có thể xử lý.

Bước 3: View (Table bootstrap 3)

Ở đây mình sử dụng slim, các bạn có thể chuyển qua haml, erb, liquid tùy ý nhé.

Mở rộng: Với cách này chúng ta cũng có thể cài một số cảnh báo khi hệ thống có vấn đề quá tải về RAM, ổ cứng thông qua rake với các lệnh trên được chạy cùng với crontab, khi một vài thông số đạt một vài ngưỡng nào đó thì hệ thống sẽ gởi mail hoặc có những xử lý phù hợp.

Bài viết đã xong, các bạn có thể áp dụng vào Rails app ngay, điểm còn chưa đạt của bài viết là chỉ còn giới hạn ở môi trường Linux, đối với các môi trường khác các bạn có thể tham khảo câu lệnh tương tự.

Thân,

 

Tiến An

Admin tại RubySG.com

You may also like...