Script #2: Watchdog – Khởi động lại dịch vụ không hoạt động và thông báo qua email, Telegram

30/12/2020

Khi dùng một máy chủ, ta cần giám sát một số dịch vụ trên máy chủ đó. Vì một số lý do, đôi khi một vài dịch vụ quan trọng có thể bị tắt.

Dưới đây Onet sẽ giới thiệu đến các bạn một script đơn giản kiểm tra trạng thái dịch vụ. Nếu kiểm tra thấy dịch vụ bị tắt, nó sẽ khởi động lại dịch vụ và gửi thông báo đến bạn qua email và Telegram.

Tạo một file script tại thư mục /opt với tên watchdog.sh

cd /opt nano watchdog.sh

Nội dung file như sau:

#!/bin/bash  SERVICES="ssh apache2 mysql"                         #Danh sách các dịch vụ được giám sát DATE=$(date '+%d-%m-%Y %H:%M:%S') TOKEN="1203313564:AAHa7Sb5Yd0Ty5aOuS6criY-cHLW9BY0yme"          #Token bot Telegram ID="1002837412"                                      #Chat ID bot Telegram URL="https://api.telegram.org/bot$TOKEN/sendMessage"  for SERVICE in ${SERVICES}  do    /etc/init.d/$SERVICE status 2>&1>/dev/null          #Kiểm tra trạng thái dịch vụ     if [ $? -ne 0 ];       then         /etc/init.d/$SERVICE restart         echo -e "Khởi động dịch vụ $SERVICE"          #Gửi mail. Thêm địa chỉ IP         (echo -e "Subject:Khởi động lại dịch vụ  $SERVICEnDịch vụ $SERVICE không hoạt động trên host $HOSTNAME! Khởi động lại.";) | /usr/sbin/ssmtp -v  yourmail@something.com          #Thông báo Telegram         /usr/bin/curl -s -X POST $URL -d chat_id=$ID -d text="$DATE Dịch vụ $SERVICE không hoạt động trên host $HOSTNAME! Khởi động lại."       else         echo -e "$SERVICE OK"     fi done

Chú ý thay thế email của bạn với yourmail@something.com tại dòng /usr/sbin/ssmtp -v yourmail@something.com

Ở đây tôi giám sát các dịch vụ ssh, apache2, mysql. Bạn có thể thêm các dịch vụ khác tùy theo ý mình vào danh sách dịch vụ tại dòng “SERVICES” trên script.

Phân quyền cho script:

chmod u+x watchdog.sh

Để có thể gửi mail được các bạn sử dụng SSMTP. Hướng dẫn cài đặt tại đây.

Để có thể gửi được thông báo qua Telegram, bạn cần tạo một con bot trên Telegram. Các bạn tham khảo cách tạo bot tại đây. Hoặc tại đây.

Tôi sẽ dừng dịch vụ mysql và chạy thử script. Kết quả:

  • Một thông báo được gửi đến Telegram
  • Một email thông báo được gửi đến địa chỉ mail của tôi

Đặt crontab để cứ 10 phút chạy script một lần.

crontab -e

Thêm vào nội dung

*/10 * * * * /opt/watchdog.sh > /dev/null 2>&1

Lưu ý: Mục đích chính của script là để dùng với crontab. Nhưng crontab không hỗ trợ gọi dịch vụ bằng lệnh mà phải gọi bằng đường dẫn cụ thể. Các đường dẫn này sẽ không giống nhau trên các hệ thống khác nhau (Centos, Ubuntu). Nên script trên không đảm bảo sẽ hoạt động với tất cả các dịch vụ trên tất cả các hệ thống. Vì thế bạn cần chú ý đường dẫn đến dịch vụ mà bạn cần giám sát và sửa lại đường dẫn ở phần khởi động lại dịch vụ trên script cho hợp lý với hệ thống của mình.

Kết luận

Như vậy chúng tôi đã hướng dẫn cho bạn sử dụng một script kiểm tra trạng thái dịch vụ cần thiết. Khởi động lại nếu dịch vụ bị tắt, gửi thông báo.

Chúc các bạn thành công!

Tham khảo: https://ixnfo.com/en/watchdog-script.html

ONET IDC thành lập vào năm 2012, là công ty chuyên nghiệp tại Việt Nam trong lĩnh vực cung cấp dịch vụ Hosting, VPS, máy chủ vật lý, dịch vụ Firewall Anti DDoS, SSL… Với 10 năm xây dựng và phát triển, ứng dụng nhiều công nghệ hiện đại, ONET IDC đã giúp hàng ngàn khách hàng tin tưởng lựa chọn, mang lại sự ổn định tuyệt đối cho website của khách hàng để thúc đẩy việc kinh doanh đạt được hiệu quả và thành công.
Bài viết liên quan

[Cobbler] Tổng quan về Kickstarts Installation

Rất nhiều system administrator hiện nay ưa thích sử dụng những phương pháp tự động hóa trong vận...
30/12/2020

[Zabbix] Cấu hình Zabbix Server gửi cảnh báo qua gmail

Việc gửi cảnh báo tình trạng của hệ thống là một điều không thể thiếu với mỗi công cụ...
30/12/2020

HOW TO FIX CENTOS 6 ERROR: YUMREPO ERROR: ALL MIRROR URLS ARE NOT USING FTP, HTTP[S] OR FILE

In this article I will show how to fix CentOS 6 error: YumRepo Error: All mirror URLs are not using ftp, http[s] PROBLEM When...
15/01/2021
Bài Viết

Bài Viết Mới Cập Nhật

mua Proxy riêng ở đâu, và nó đem lại lợi ích gì cho người sử dụng
22/11/2022

Hướng dẫn sử dụng Proxy Helper Fakeip khi thuê proxy
21/11/2022

PROXY NUÔI TÀI KHOẢN FACEBOOK – KINH NGHIỆM FAKE IP – THUÊ PROXY GIÁ RẺ
14/11/2022

Mua Proxy Nuôi Zalo Giá Rẻ Tại Onet.com.vn
14/11/2022

BẢNG GIÁ MUA PROXY VIỆT NAM và PROXY US Onet.com.vn
14/11/2022