Cảnh báo cho server khi quá tải

  • Thread starter Thread starter AdminAdmin is verified member.
  • Start date Start date
Admin

AdminAdmin is verified member.

Well-Known Member
Staff member
Administrator
Mã nguồn sẽ gửi thông báo về email cho bạn khi server đang quá tải.

Thông báo chi tiết:
- Top 20 process sử dụng cao nhất
- Top 10 process sử dụng cao nhất
- Trạng thái Memory và Swap hiện tại
- Các network đang hoạt động
- Chi tiết HDD

Đầu tiên bạn tạo tập tin loadalert.sh có thể dùng "nano" hoặc "vi" để dán mã nguồn ở dưới.

PHP:
#!/bin/bash
EMAIL="admin@server.com" // Email cua ban
SUBJECT="Alert $(hostname) load average is $L05"
TEMPFILE="/tmp/$(hostname)"
TOPLOAD="10" // Neu server load avarage qua 10 se thong bao cho ban
echo "Load average Crossed allowed limit." >> $TEMPFILE
echo "Hostname: $(hostname)" >> $TEMPFILE
echo "Local Date & Time : $(date)" >> $TEMPFILE
echo "| Uptime status: |" >> $TEMPFILE
echo "-------------------------------------------" >> $TEMPFILE
/usr/bin/uptime >> $TEMPFILE
echo "-------------------------------------------" >> $TEMPFILE
echo "| Top 20 CPU consuming processes: |" >> $TEMPFILE
ps aux | head -1 >> $TEMPFILE
ps aux --no-headers | sort -rn +2 | head -20 >> $TEMPFILE
echo "| Top 10 memory-consuming processes: |" >> $TEMPFILE
ps aux --no-headers| sort -rn +3 | head >> $TEMPFILE
echo "-------------------------------------------" >> $TEMPFILE
echo "| Memory and Swap status: |" >> $TEMPFILE
/usr/bin/free -m >> $TEMPFILE
echo "-------------------------------------------" >> $TEMPFILE
echo "| Active network connection: |" >> $TEMPFILE
echo "-------------------------------------------" >> $TEMPFILE
/bin/netstat -tnup | grep ESTA >> $TEMPFILE
echo "-------------------------------------------" >> $TEMPFILE
echo "| Disk Space information: |" >> $TEMPFILE
echo "-------------------------------------------" >> $TEMPFILE
/bin/df -h >> $TEMPFILE
echo "-----------------THE END-------------------" >> $TEMPFILE
L05="$(uptime|awk '{print $(NF-2)}'|cut -d. -f1)"
if test $L05 -gt $TOPLOAD
then
mail -s "$SUBJECT  $L05" "$EMAIL" < $TEMPFILE
fi
rm -f $TEMPFILE

Chạy lệnh này để thêm cron vào crontab

PHP:
crontab -e

Dán dòng lệnh này ở dòng cuối và thoát ra.

PHP:
* * * * * /root/loadalert.sh >/dev/null 2>&1

Xong, hãy kiểm tra email thường xuyên để biết server đang quá tải
Theo learncpanel
 
Nên dùng Cacti, NagiOS hoặc Zabbix để monitoring các services và server thay vì dùng các script như thế này, thiếu nhiều chức năng và không quản lý tập trong được
 

Facebook Comments

Similar threads

Admin
Replies
0
Views
1K
AdminAdmin is verified member.
Admin
Admin
Replies
0
Views
759
AdminAdmin is verified member.
Admin
Admin
Replies
0
Views
984
AdminAdmin is verified member.
Admin
Admin
Replies
0
Views
1K
AdminAdmin is verified member.
Admin
Admin
Replies
0
Views
1K
AdminAdmin is verified member.
Admin
Back
Top