Theo dõi và quản lý Service với Monit trên CentOS
Giới Thiệu Monit Là Gì?
Monit là một công cụ giám sát mã nguồn mở miễn phí cho Unix và Linux. Hiện tại mình thấy Monit khá là tiện lợi, tự động, dễ sử dụng. Nó có thể dùng để quản lý và theo dõi mọi thứ như: check programs, check files, check directories, check host, v.v…
Đối Tượng Để Monitor
1. Processes
Monit theo dõi các process chạy nền như: mysql, apache, nginx, v.v…. Với Monit chúng ta có thể start service nếu nó không chạy, restart service nếu nó không phản hồi, hoặc có thể kill service khi chúng tốn quá nhiều tài nguyên như: CPU, RAM….
Cú pháp:
2. Files, Directories, Filesystem
Ta cũng có thể dùng Monit để kiểm tra các thay đổi của files, thư mục như: thời gian thay đổi, dung lượng, v.v….
Cú pháp:
3. Network connections
Bạn có thể dùng Monit để gửi dữ liệu và kiểm tra phản hồi từ Server.
Cú pháp:
4. Programs
Monit có thể thực hiện 1 chương trình, hay chạy 1 script tại một số thời điểm như crontab. Ngoài ra, bạn có thể kiểm tra giá trị trả về của một chương trình hay script thực thi.
Cú pháp:
5. System
Monit cũng có thể theo dõi các tài nguyên của máy như: CPU, RAM, v.v….
Cú pháp:
Monit Action
Monit cung cấp ta một số action trong việc theo dõi như:
- Alert : gửi cảnh báo cho người dùng qua email.
- Restart : khởi động lại service và gửi cảnh báo.
- Start : khởi động service và gửi cảnh báo.
- Stop : dừng service và gửi cảnh báo.
- Exec : thực thi 1 chương trình và gửi cảnh báo.
- Unmonitor : ngừng theo dõi và gửi cảnh báo.
Cài Đặt
Để cài đặt ta dùng lệnh
Sau đó start Monit với lệnh:
Kiểm tra trạng thái của Monit:
Chú ý: các bạn muốn cho Monit nó tự động start khi restart lại máy thì dùng lệnh sau:
(ví dụ trên CentOS 6)
Kiểm tra xem đã start cùng với máy chưa
Config Monit
Tiếp theo là config Monit, bằng cách edit file /etc/monit.conf
Trong file config có nhiều setting, những setting mình đã dùng qua như:
Kiểm tra service sau mỗi 2 phút. Số ở đây mình tính bằng giây.
Set file log của Monit để theo dõi. Mình có thể thay đổi bằng directory khác như /var/log/monit.log
Set mail khi monit alert
Có thể thêm email để nhận mail alert. Có thể thêm nhiều mail nhận alert
Seting email-format như sau:
Giao Diện WEB của Monit
Mình cũng setting trong file /etc/monit.conf
Như config trên thì Monit sẽ lắng nghe ở port 2812 với user là admin
và pass là monit
Reload lại Monit với lệnh
Tại giao diện web bạn có thể thực hiện những action như: Start service, Stop service, Restart service, Disable monitoring
Config để Monitor Service
Các bạn chú ý ở file config /etc/monit.conf
, cuối file có include
Nên những file config các bạn thêm vào thì mình để trong /etc/monit.d/
để dễ quản lý
Một vài config để check như:
Check curent disk space
Như config dưới đây thì khi disk space sử dụng quá 80% sẽ báo mail alert
Check server system load monitoring
Như config dưới đây thì khi memory usage trên 95%, CPU dùng trên 95%, average load is >4 for at least 5 min thì báo mail alert
Check process
Ví dụ như với process của nginx, ta có thể kiểm tra như: start, stop, kiểm tra nếu không tồn tại thì restart lại,
hoặc mình cũng có thể thực thi một bath script tùy ý với nội dung trong file file_script_bath.sh
Sau khi thêm config thì mình test lại với lệnh:
Kết quả:
Tiếp theo là restart lại Monit để apply config mới
Có nhiều config mẫu, các bạn có thể tham khảo thêm ở đây Monit Configuration Examples
Bài viết đến đây là hết. Còn rất nhiều nội dung khác các bạn có thể tham khảo tại đây Monit Document. Hẹn các bạn ở các bài viết sau.
Chúc các bạn code zui zẻ.