Tự động giám sát và khởi động lại dịch vụ khi chết trên Linux

Khi bạn vận hành website WordPress trên VPS hoặc server riêng, việc dịch vụ như nginx, php-fpm hay mysql đột ngột chết sẽ gây gián đoạn truy cập. Trong bài viết này, mình sẽ hướng dẫn cách cấu hình hệ thống tự giám sát và tự động khởi động lại dịch vụ khi cần, hoàn toàn không cần cài thêm phần mềm nặng nề.

Tự động giám sát và khởi động lại dịch vụ khi chết trên Linux

1. Sử dụng systemd để tự khởi động lại

Nếu dịch vụ bạn dùng là systemd unit (như hầu hết hiện nay), chỉ cần sửa hoặc tạo override:

sudo systemctl edit nginx

Thêm vào nội dung sau:

[Service]
Restart=on-failure
RestartSec=5

Sau đó reload lại systemd:

sudo systemctl daemon-reexec
sudo systemctl restart nginx

Lưu ý: Bạn có thể thay nginx bằng php8.3-fpm, mysql hoặc bất kỳ service nào.

2. Kiểm tra thủ công bằng cron + bash script

Nếu không dùng systemd (hoặc muốn kiểm tra ping đến site), bạn có thể dùng cron job và một đoạn shell script như sau:

#!/bin/bash
URL="https://tenmiencuaban.com"
STATUS=$(curl -o /dev/null -s -w "%{http_code}" "$URL")

if [[ "$STATUS" -ne 200 ]]; then
    echo "$(date): Trang lỗi với mã $STATUS, khởi động lại nginx" >> /var/log/site_monitor.log
    systemctl restart nginx
fi

Lưu lại file, ví dụ: /usr/local/bin/monitor-site.sh và cấp quyền thực thi:

chmod +x /usr/local/bin/monitor-site.sh

Thêm cron mỗi 5 phút:

crontab -e
*/5 * * * * /usr/local/bin/monitor-site.sh

3. Kiểm tra nhiều dịch vụ cùng lúc

Có thể dùng một script tổng quát để kiểm tra nhiều service:

for service in nginx php8.3-fpm mysql; do
    systemctl is-active --quiet $service || systemctl restart $service
done

Kết luận

Việc giám sát và tự động xử lý các sự cố nhỏ sẽ giúp website hoạt động ổn định hơn, tránh downtime bất ngờ. Với các bước trên, bạn đã có thể thiết lập cơ chế tự phục hồi dịch vụ nhanh chóng, hiệu quả mà không cần dùng công cụ bên ngoài.

Bình luận


  • Không có bình luận.

Init Toolbox

Nhấn Ctrl + \ trên máy tính, hoặc vuốt sang trái ở bất kỳ đâu trên mobile.

Đăng nhập





Đang tải...