Nội dung bài viết
Để kiểm tra các dịch vụ Mysql, webserver, php trên Linux và gửi thông báo về Telegram khi chúng bị tắt, chúng ta có thể sử dụng script shell. Đầu tiên, chúng ta cần cài đặt một số gói cần thiết để script có thể chạy đúng:
- mysql-client: cho phép kết nối và thực thi lệnh với MySQL server.
- curl: cho phép script gửi request đến API của Telegram.
- jq: cho phép script xử lý JSON.
Sau khi cài đặt các gói này, chúng ta sẽ thực hiện theo các bước sau:
I. Tạo Bot Telegram
Đầu tiên các bạn hãy tạo Bot Telegram để nhận thông báo về trạng thái hoạt động của VPS, nếu chưa biết cách tạo bạn có thể tham khảo bài viết bên dưới
– Hướng dẫn tạo Bot Telegram vô cùng đơn giản
II. Viết Script cảnh báo
Bước 1: Viết Script cảnh báo
- Tạo File cảnh báo
Bạn tạo một file ví dụ tên service_status.sh
như sau:
#!/bin/bash
# Set up Telegram bot API and chat ID
BOT_API_KEY="YOUR_BOT_API_KEY"
CHAT_ID="YOUR_CHAT_ID"
# Check if MySQL service is running
if ! systemctl is-active --quiet mysql.service; then
# If not running, send message to Telegram
MESSAGE="MySQL service is down!"
curl -s -X POST https://api.telegram.org/bot$BOT_API_KEY/sendMessage -d chat_id=$CHAT_ID -d text="$MESSAGE"
fi
# Check if Apache web server is running (Thay bằng dịch vụ webserver trên VPS của bạn)
if ! systemctl is-active --quiet apache2.service; then
# If not running, send message to Telegram
MESSAGE="Apache web server is down!"
curl -s -X POST https://api.telegram.org/bot$BOT_API_KEY/sendMessage -d chat_id=$CHAT_ID -d text="$MESSAGE"
fi
# Check if PHP service is running (Thay bằng dịch vụ PHP trên VPS của bạn)
if ! systemctl is-active --quiet php.service; then
# If not running, send message to Telegram
MESSAGE="PHP service is down!"
curl -s -X POST https://api.telegram.org/bot$BOT_API_KEY/sendMessage -d chat_id=$CHAT_ID -d text="$MESSAGE"
fi
Trong script này, chúng ta sử dụng lệnh systemctl is-active
để kiểm tra trạng thái của các dịch vụ. Nếu dịch vụ không hoạt động, chúng ta sẽ gửi thông báo về Telegram sử dụng API của Telegram.
Trong đó:
YOUR_BOT_API_KEY
: là mã token của bot Telegram của bạn.YOUR_CHAT_ID
: là ID của cuộc trò chuyện (chat) mà bạn muốn gửi thông báo đến.- Phần quyền thực thi File vừa tạo
chmod +x service_status.sh ### Phân quyền thực thi File
- Thiết lập Cron để chạy Script
Sau khi chỉnh sửa các thông số trên, bạn có thể thực thi nó định kỳ bằng cách sử dụng cron
. Ví dụ, để chạy script này mỗi 10 phút, bạn có thể thêm một dòng sau vào crontab của bạn (bằng cách chạy lệnh crontab -e
):
*/10 * * * * /path/to/service_status.sh >/dev/null 2>&1
Khi có dịch vụ nào trên VPS Down thì bạn sẽ nhận được thông báo về Telegram như hình dưới:
Chúc các bạn thực hiện thành công.!