Một buổi sáng tươi đẹp với một bài viết chất lượng nào, service là gì ? thì các bạn cũng biết nó là các dịch vụ chạy ngầm trong hệ thống và để đảm bảo service hoạt động ổn định, chúng ta không thể nào hằng ngày cứ vào gõ câu lệnh để xem status của nó được, lúc này phải cần có một giải pháp nào đó chuyên nghiệp hơn, giúp cho việc giám sát service tốt hơn
Cái mình muốn giới thiệu ở đây sẻ là Supervisor dịch vụ giám sát service cho Linux, thôi nói nhiều gì tầm này nữa, thực hiện luôn đi nào
Bước 1: Cài đặt Supervisor cho Linux của chúng ta ở đây mình sử dụng Ubuntu
Các bạn thực hiện chạy câu lệnh sau để cài đặt nhéapt-get install supervisorSau đó thực hiện tạo file cấu hình service bạn muốn chạy, ở đây mình sẻ lấy thằng pub_server làm ví dụ, vì khi muốn chạy pub_server thì mình luôn phải giữ câu lệnh sau một cách liên tục dart /root/pub_server/pub_server/example/example.dart -d /root/pub_server/package-db đồng nghĩa với việc khi mình tắt câu lệnh đó đi thì coi như pub_server cũng sẻ tắt nên vì vậy mình sẻ tạo 1 file cấu hình cho pub_server như sau, các bạn truy cập vào đường dẫn sau và tạo file có tên là pub_server.conf
cd /etc/supervisor/conf.d vi pub_server.conf
Bước 2: Chúng ta sẻ thêm cấu hình sau vào file mới tạo nhé
[program:pub_server]
command=/usr/bin/dart /root/pub_server/pub_server/example/example.dart -d /root/pub_server/package-db
autostart=true
autorestart=true
startretries=3
stderr_logfile=/root/log/supervisor/pub_server/pub_server.err.log
stdout_logfile=/root/log/supervisor/pub_server/pub_server.out.log
Để mình giải thích sơ qua một vài thứ đầu tiên phần [program:pub_server] nghĩa là tên chương trình, mình đã đặt tên cho nó là pub_serverTiếp đến là phần command đây là nơi chứa đựng câu lệnh để chạy service, câu lệnh chạy pub của mình là như phía trên, phần autostart nghĩa là nó sẻ tự động khởi động service khi PC mở máy, autorestart là để khi thoát ứng dụng nó sẻ khởi động lại, đơn nhiên nó sẻ có các tùy chọn false và true để cho mình lựa chọn thủ công hay là tự động
stderr_logfile=/root/log/supervisor/pub_server/pub_server.err.log
stdout_logfile=/root/log/supervisor/pub_server/pub_server.out.log
Còn đây là nơi chứa log khi xảy ra vấn đề gì đó, tiếp đến phần cấu hình file supervisord.conf trong thư mục /etc/supervisor chúng ta sẻ thêm đoạn này vào bên trong phía trước phần [unix_http_server]
[inet_http_server] port = 10.0.1.161:9001 username = admin password = 1234@abcdSau đó thực hiện restart lại service
service supervisor restartSau khi thực hiện xong chúng ta sẻ truy cập đường dẫn IP của nó để xem kết quả http://10.0.1.161:9001/, trường hợp nó service đó đang chạy thì nó sẻ lỗi ở phần supervisor nên các bạn check cẩn thận
Bước 3: Xây dựng multi supervisor service
Như các bạn thấy mình đã thực hiện thành công rồi, nhưng với cách trên mình chỉ chạy và run ở một pc thôi, nếu như mình muốn giám sát nhiều pc thì mình phải làm bằng cách nào ? điều có phương pháp cả các bạn thực hiện tải tools application sau về để giám sát nhé Supervisord-MonitorBằng cách truy cập vào /var/www/html/ và git nó về
cd /var/www/html git clone https://github.com/mlazarov/supervisord-monitor.git cd supervisord-monitor composer install
Bước 4: Copy file cấu hình và thực hiện cấu hình trang
Sau đó thực hiện copy file supervisor.php.example và sửa tên thành supervisor.php để tiện cho việc chỉnh sửacp /var/www/html/supervisord-monitor/application/config/supervisor.php.example /var/www/html/supervisord-monitor/application/config/supervisor.php vi /var/www/html/supervisord-monitor/application/config/supervisor.phpthực hiện tiếp vi đến file supervisor và sửa theo như cấu hình của mình nhé
<?php // Dashboard columns. 2 or 3 $config['supervisor_cols'] = 2; // Refresh Dashboard every x seconds. 0 to disable $config['refresh'] = 10; // Enable or disable Alarm Sound $config['enable_alarm'] = true; // Show hostname after server name $config['show_host'] = false; $config['supervisor_servers'] = array( 'mixture-server' => array( 'url' => 'http://10.0.1.161/RPC2', 'port' => '9001', 'username' => 'admin', 'password' => '1234@abcd' ), 'server02' => array( 'url' => 'http://10.0.1.161/RPC2', 'port' => '9001', 'username' => 'admin', 'password' => '1234@abcd' ), 'server03' => array( 'url' => 'http://10.0.1.161/RPC2', 'port' => '9001', 'username' => 'admin', 'password' => '1234@abcd' ), ); // Set timeout connecting to remote supervisord RPC2 interface $config['timeout'] = 3; // Path to Redmine new issue url $config['redmine_url'] = 'http://redmine.url/path_to_new_issue_url'; // Default Redmine assigne ID $config['redmine_assigne_id'] = '69';Nhớ chú ý phần url phải có RPC2 nhé kẻo nó lại không hiện ra được gì đâu haha, chúc các bạn thành công
Nguồn: itblognote.com
0 Comments
Vài lời muốn nói:
* Không được nhận xét thô tục bởi mình biết các bạn là những người văn minh.
* Pass giải nén mặt định là itblognote hoặc itblognote.com nếu có Pass khác thì mình sẽ ghim trong bài viết.
* Click vào quảng cáo và chia sẻ bài viết để mình có thêm động lực viết bài nhé.