Header Ads Widget

Ticker

6/recent/ticker-posts

Hướng dẫn xây dựng phần mềm giám sát và tắt mở service trên một hoặc nhiều máy ubuntu

Keyword: How to install supervisor software for service on ubuntu
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 supervisor
Sau đó 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_server
Tiế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@abcd
Sau đó thực hiện restart lại service
service supervisor restart
Sau 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-Monitor
Bằ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ửa
cp /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.php
thự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

Post a Comment

0 Comments