Nội dung bài viết
Để viết một script kiểm tra trạng thái hoạt động của MySQL và gửi thông báo qua Telegram khi MySQL bị Down, chúng ta có thể sử dụng các công cụ như systemctl
, mysqladmin
và curl
, cùng với việc sử dụng Telegram Bot API để gửi thông báo. Sau đây là một script đơn giản để thực hiện các tác vụ này:
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 MySQL, 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 check_mysql_status.sh
như sau:
vi check_mysql_status.sh ### Tạo và chỉnh sửa FIle
- Thêm đoạn script vào file vừa tạo
Thêm script sau vào và save lại.
#!/bin/bash
# Thay đổi các thông số này cho phù hợp với MySQL và Telegram Bot của bạn
MYSQL_USER="YOUR_MYSQL_USER"
MYSQL_PASSWORD="YOUR_MYSQL_PASSWORD"
TELEGRAM_BOT_TOKEN="YOUR_BOT_TOKEN"
TELEGRAM_CHAT_ID="YOUR_CHAT_ID"
# Kiểm tra trạng thái của MySQL bằng systemctl
if systemctl is-active mysql.service > /dev/null; then
# Nếu MySQL đang hoạt động, kiểm tra kết nối tới MySQL bằng mysqladmin
if mysqladmin ping -u "$MYSQL_USER" -p"$MYSQL_PASSWORD" > /dev/null 2>&1; then
# Nếu kết nối tới MySQL thành công, không làm gì cả
exit 0
fi
fi
# Nếu MySQL không hoạt động hoặc kết nối tới MySQL thất bại, gửi thông báo tới Telegram
MESSAGE="MySQL is down!"
curl -s -X POST "https://api.telegram.org/bot${TELEGRAM_BOT_TOKEN}/sendMessage" \
-d chat_id="${TELEGRAM_CHAT_ID}" \
-d text="${MESSAGE}"
Trong đó:
MYSQL_USER
vàMYSQL_PASSWORD
: là tên người dùng và mật khẩu để kết nối tới MySQL. (Bạn có thể điền thông tin root Mysql)TELEGRAM_BOT_TOKEN
: là mã token của bot Telegram của bạn.TELEGRAM_CHAT_ID
: là ID của cuộc trò chuyện (chat) mà bạn muốn gửi thông báo đến. Bạn có thể lấy ID này bằng cách gửi tin nhắn cho bot của mình và sử dụng API để lấy chat ID.
- Phần quyền thực thi File vừa tạo
chmod +x check_mysql_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/check_mysql_status.sh >/dev/null 2>&1
Khi MySQL 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.!