Hướng dẫn chạy và quản lý ứng dụng java với supervisor
Supervisor là một công cụ mã nguồn mở giúp giám sát và điều khiển các tiến trình (process) trên Linux.
Một số đặc điểm và lợi ích chính của Supervisor:
-
Giám sát và khởi động lại các tiến trình tự động nếu chúng bị dừng hoặc crash.
-
Cho phép khởi động, dừng, khởi động lại các tiến trình dễ dàng thông qua CLI hoặc giao diện Web.
-
Cấu hình đơn giản, dễ dàng tích hợp với các ứng dụng khác.
-
Ghi log đầu ra, lỗi của các tiến trình được giám sát.
-
Hỗ trợ nhiều môi trường: Python, Node.js, Java, C/C++,...
-
Mã nguồn mở, cộng đồng lớn, miễn phí.
-
Có thể chạy độc lập hoặc kết hợp với công cụ khác như systemd.
Vì vậy, Supervisor rất hữu ích trong việc giám sát các ứng dụng, dịch vụ trên server. Nó giúp tăng tính sẵn sàng và khả năng phục hồi của hệ thống. Ở phạm vi bài viết này mình sẽ hướng dẫn các bạn chạy ứng dụng java với supervisor một cách cơ bản nhất.
1.Cài đặt supervisor
a) Ubuntu/Debian:
sudo apt install supervisor
b) CentOS/RHEL:
sudo yum install supervisor
Kiểm tra xem supervisor hoạt động chưa bằng lệnh:
sudo systemctl status supervisor
Kết quả hiện ra như hình ( Nếu hoạt động bình thưởng sẽ thấy Active: active (running).
2.Cách sử dụng supervisor:
** Các file cấu hình ứng dụng java (*.conf) sẽ được lưu ở đường đẫn /etc/supervisor/conf.d
File .conf để chạy ứng dụng java sẽ có cấu trúc cơ bản như sau:
ví dụ với file server.conf
[program:army2]
directory=/root/army2
command=/usr/bin/java -jar army2.jar
autostart=true
autorestart=true
stdout_logfile=/root/log/army2-service.log
stderr_logfile=/root/log/army2_err.log
Trong đó:
- [program:army2]: Định nghĩa một chương trình có tên là army2 để giám sát
- directory=/root/army2: Thư mục làm việc mặc định của chương trình
- command=/usr/bin/java -jar army2.jar: Lệnh dùng để khởi chạy ứng dụng java
- autostart=true: Tự động khởi chạy ứng dụng java khi supervisor start
- autorestart=true: Tự động khởi động lại ứng dụng java nếu nó bị crash
- stdout_logfile=/root/log/army2-service.log: Đường dẫn tới file log của dứng dụng java
- stderr_logfile=/root/log/army2_err.log: Đường dẫn tới file log error của ứng dụng
3.Một số lệnh supervisorctl thường dùng:
- supervisorctl status : Kiểm tra trạng thái các process
- supervisorctl start [tên process]: Khởi động một process
- supervisorctl stop [tên process]: Dừng một process
- supervisorctl restart [tên process]: Khởi động lại một process
- supervisorctl reread: Đọc lại cấu hình mà không cần restart supervisor
- supervisorctl update: Khởi động lại cấu hình mà không cần restart supervisor
- supervisorctl reload: Khởi động lại cấu hình và restart supervisor
All rights reserved