Monit là một công cụ mã nguồn mở và rất hữu ích, giúp tự động theo dõi và quản lý tiến trình máy chủ, thư mục, quyền, và dịch vụ như Apache, Nginx, MySQL, FTP, SSH, Sendmail, v.v. và cung cấp một chức năng giám sát tuyệt vời và hữu ích cho các quản trị viên hệ thống.
Monit dùng để làm gì ?
Monit có khả năng start một dịch vụ nếu nó không chạy, khởi động lại một dịch vụ nếu nó không phản hồi và dừng một dịch vụ nếu nó sử dụng quá nhiều tài nguyên. Ngoài ra, bạn cũng có thể sử dụng Monit để giám sát các các dịch vụ trên VPS của mình. Với Monit, bạn có thể giám sát máy chủ từ xa cổng TCP/IP, giao thức máy chủ và ping. Monit giữ tệp nhật ký của riêng mình và cảnh báo về mọi tình trạng lỗi nghiêm trọng và trạng thái khôi phục.
Hướng dẫn cài đặt Monit
Bước 1: Cài đặt Monit
Để cài đặt Monit các bạn truy cập VPS thông qua SSH và chạy 2 lệnh sau
yum -y install epel-release yum -y install monit
Bước 2: Cấu hình Monit
Monit rất dễ cấu hình, các tệp cấu hình được tạo ra rất dễ đọc giúp người dùng dễ dàng cấu hình. Nó được thiết kế để giám sát các dịch vụ đang chạy mỗi 2 phút và lưu giữ log trong thư mục /var/log/monit.
Monit có giao diện web chạy trên cổng 2812 . Để kích hoạt giao diện web, bạn cần thay đổi tệp cấu hình monit. Tệp cấu hình chính của monit là tệp /etc/monitrc.
Để kích hoạt giao diện web các bạn mở file /etc/monitrc và tìm đến đoạn rule sau
set httpd port 2812 and use address localhost # only accept connection from localhost (drop if you use M/Monit) allow localhost # allow localhost to connect to the server and allow admin:monit # require user 'admin' with password 'monit'
Mặc định giao diện web của Monit có thể truy cập thông qua cổng 2812 và chỉ cho phép truy cập thông qua link localhost:2812 cũng như không cho phép connect từ bên ngoài vào.
Để có thể truy cập giao diện web của Monit các bạn sửa lại cấu hình thành như sau:
set httpd port 2812 and use address IP-Của-VPS # only accept connection from localhost (drop if you use M/Monit) #allow locahost # allow localhost to connect to the server and allow User-đăng-nhập:Mật-Khẩu-Đăng-Nhập # require user ‘admin’ with password ‘monit’
Trong đó:
- 2812 là port truy cập Monit. Các bạn có thể thay đổi port này theo ý muốn
- IP-Của-VPS: IP VPS của các bạn
- User-đăng-nhập: User dùng để đăng nhập Monit
- Mật-Khẩu-Đăng-Nhập: Mật khẩu đăng nhập Monit
Sau khi cấu hình xong các bạn tiến hành khởi động Monit
service monit start chkconfig monit on
Để truy cập Monit UI các bạn truy cập theo link sau: ip-vps:2812
- Lưu ý: Nếu sử dụng firewall các bạn cần mở port để có thể truy cập, ngoài ra các bạn nên thay đổi port không nên dùng port mặc định.
Bước 3: Thêm Monitoring Services
Để thêm các service cần Monitor vào Monit các bạn cần tạo các file cấu hình trong thư mục /etc/monit.d. Dưới đây mình sẽ ví dụ một số file cấu hình monitor Nginx, php-fpm và monitor System
- Monitor Nginx: Tạo file /etc/monit.d/nginx
check process nginx with pidfile /var/run/nginx.pid start program = "/usr/bin/systemctl start nginx" stop program = "/usr/bin/systemctl stop nginx" group nginx if failed host 127.0.0.1 port 80 then restart if cpu is greater than 40% for 2 cycles then alert if cpu > 60% for 5 cycles then restart if 5 restarts within 5 cycles then timeout
- Monitor php-fpm: Tạo file /etc/monit.d/php-fpm
check process php-fpm with pidfile /var/run/php-fpm/php-fpm.pid start program = "/usr/sbin/service php-fpm start" with timeout 60 seconds stop program = "/usr/sbin/service php-fpm stop" #if failed unixsocket /var/run/php-fpm.sock then restart if failed host 127.0.0.1 port 9000 type tcp for 3 cycles then restart if 5 restarts within 5 cycles then timeout
- Monitor System: Tạo file /etc/monit.d/php-fpm/system
check system $HOST if loadavg (5min) > 3 then alert if loadavg (15min) > 1 then alert if memory usage > 80% for 4 cycles then alert if swap usage > 25% for 4 cycles then alert if cpu usage (user) > 80% for 2 cycles then alert if cpu usage (system) > 30% for 2 cycles then alert if cpu usage (wait) > 80% for 2 cycles then alert if cpu usage > 200% for 4 cycles then alert
Ngoài ra các bạn có thể xem thêm các cách cấu hình khác tại đây: https://mmonit.com/wiki/Monit/ConfigurationExamples
Bước 4: Cấu hình email
Để có thể gửi mail thông báo khi có sự cố các bạn có thể sử dụng SMTP của Gmail. Để cấu hình các bạn mở file /etc/monitrc và tìm đoạn rule sau
# set mailserver mail.bar.baz, # primary mailserver # backup.bar.baz port 10025, # backup mailserver on port 10025 # localhost # fallback relay #
Sửa lại nó thành giống như dưới đây
set mailserver smtp.gmail.com port 587 username "example@gmail.com" password "Mật-khẩu-ứng-dụng" using tlsv1 with timeout 30 seconds
Trong đó:
- example@gmail.com: Thay bằng tài khoản gmail của bạn
- Mật-khẩu-ứng-dụng : Thay bằng mật khẩu ứng dụng
Tiếp theo các bạn tìm đến dòng và thay email muốn nhận mail thông báo của các bạn vào
# set alert sysadm@foo.bar
Sửa thành
set alert email-nhận-thông-báo
Khởi động lại Monit để cấu hình có hiệu lực
service monit restart
Như vậy chúng ta đã hoàn tất cài đặt Monit trên VPS centOS 7. Chúc bạn thành công