Server Down รู้ได้ทันทีด้วย SMS ฟรี!!
ก่อนอื่นต้องขอขอบคุณเจ้าของบทความครับ http://imrgill.com/2009/12/11/monitor-server-with-sms-alert-shell-script.html ที่ copy มาแบบก็เพระว่าเกิดวันใดวันนึงเว็บพี่เค้าดาวน์ไปคงจะหาบทความดีๆ แบบนี้ไม่ได้แล้ว หุหุ
ความสามารถของ Script
1. ส่ง sms แจ้งเตือนเมื่อ ping ไม่เจอ server
2. เก็บ log ในตัว เพราะทุกครั้งที่มันส่ง sms มันจะไปเพิ่ม Event ใน Google Calendar ทำให้เราเข้าไปตรวจสอบย้อนหลังได้
3. ไม่ต้องเสียเงินค่าส่ง SMS แม้แต่น้อย (พี่ Google เค้าใจดี)
มาดูขั้นตอนการทำกัน
ก่อนอื่นเราก็ต้องไป Verify เบอร์มือถือใน Google Calendar ก่อนครับ ขออนุญาตท่าน smartsoft ทำรูปใหม่นะครับ
1. ขั้นแรก ล็อกอินเข้า Google Calendar http://www.google.com/calendar ก็ใช้ User ของ Gmail นั้นแหละครับ
ล็อกอินแล้วคลิกที่ Settings เพื่อไปปรับเมนูให้เป็นภาษาไทย (หากใครเป็นภาษาไทยอยู่แล้วข้ามไปขั้นตอนต่อไปได้เลย)

คลิก Settings
2. เลือก Language ให้เป็น ภาษาไทย แล้วกด Save

เลือก ภาษาไทย
3. กลับมาหน้าปฏิทินคลิกที่ การตั้งค่า

4. คลิกที่ ตั้งค่าอุปกรณ์เคลื่อนที่

5. กรอกเบอร์โทรศัพท์มือถือของคุณลงไป จากนั้นกดปุ่ม ส่งรหัสยืนยัน

6. รอสักครู่ Google จะส่ง SMS รหัสยืนยันมาให้ เมื่อได้รับรหัสยืนยันแล้วนำมากรอกในช่อง รหัสยืน ยัน จากนั้นคลิก สิ้นสุดการตั้งค่า
กรอกรหัสยืนยันลงไป
สถานะจะเปลี่ยนเป็นสีเขียวหลังยืนยันหมาย เลขโทรศัพท์สำเร็จแล้ว
7. คลิกที่แท็บ ปฎิทิน แล้วคลิกที่ การแจ้ง

8. เลือก การแจ้งเตือนกิจกรรม ให้เป็น SMS แล้วกด บันทึก (** สำคัญมาก คุณต้องเลือกให้เป็น SMS เป็นอันดับแรก)
ตั้งเวลาตามใจชอบเลยครับ(ตรงนี้ไม่เกี่ยวกับ SMS Alert ใน Script ครับ)
เสร็จสิ้นสำหรับส่วนของ Google Calendar ครับต่อไปมาถึงตัว Shell Script กันบ้าง
ผมได้เอา Script ของ Vivek Gite แห่ง cyberciti.biz มาแก้ไขนิดหน่อยครับ ต้นฉบับอยู่ที่ http://bash.cyberciti.biz/monitoring/monitor-windows-linux-server-with-ping-script/
ผมตั้งชื่อ Shell Script ตัวนี้ว่า observman.sh <<กดดาวน์โหลด
#!/bin/bash # Simple SHELL script for Linux and UNIX system monitoring with # ping command # ------------------------------------------------------------------------- # Copyright (c) 2006 nixCraft project # This script is licensed under GNU GPL version 2.0 or above # Modify by mrGilL # ------------------------------------------------------------------------- # This script is part of nixCraft shell script collection (NSSC) # Visit http://bash.cyberciti.biz/ for more information. # ------------------------------------------------------------------------- # Setup SMS User below # See URL for more info: # http://www.cyberciti.biz/tips/simple-linux-and-unix-system-monitoring-with-ping-command-and-scripts.html # http://imrgill.com/2009/12/11/monitor-server-with-sms-alert-shell-script/ # ------------------------------------------------------------------------- # add ip / hostname separated by blank space HOSTS="192.168.1.2 eng.ru.ac.th imrgill.com www.pca.co.th" # no ping request COUNT=5 # Set SMS Username (Google Calendar) GCUSER="user@gmail.com" GCPASSWD="gmail-passwd" for myHost in $HOSTS do count=$(ping -c $COUNT $myHost | grep 'received' | awk -F',' '{ print $2 }' | awk '{ print $1 }') if [ $count -eq 0 ]; then # 100% failed wget --force-html --recursive --no-check-certificate -nd --delete-after "https://imrgill.com/google_sms/gsms.php?username=$GCUSER&password=$GCPASSWD&title=Server $myHost Down" fi done
ใส่ IP หรือชื่อ Host ของ Server ที่ต้องการ Monitor ลงไป หากมีหลายเครื่องให้คั่นด้วยเว้นวรรค
ต่อมาแก้ไข GCUSER และ GCPASSWD เป็นของท่าน(Gmail ของท่าน)
อย่าลืมกำหนดสิทธิ์ให้มันรันได้ด้วยนะครับ
root@mrgill-laptop:/root# chmod +x observman.sh
สุดท้ายจับ Shell Script ของเราใส่ใน Crontab โดย
root@mrgill-laptop:~# crontab -e
ผมตั้งให้มันเช็คทุก 15 นาทีครับ
# m h dom mon dow command 0-59/15 * * * * /root/observman.sh > /dev/null
ลองทดสอบง่ายๆ ดูครับ ใช้ไอพีเครื่องในวงแลนคุณก็ได้ จากนั้นไป disable การ์ดแลนหรือจะถอดสายแลนของเครื่องที่คุณต้องการ Monitor ก็ได้ รอประมาณ 2 นาทีจะมี SMS ส่งจาก Google มาหาคุณ
ภาพตัวอย่างหากแก้ไขถูกต้องครับ

จะมี event add เข้าไปใน google calendar

ภาพข้อความจาก google sms
*หมายเหตุ : มีคนถามมาว่าทำไมต้องส่งข้อมูลผ่าน blog ผมด้วย ส่งเข้า Google เลยไม่ได้เหรอ คำตอบก็คือมันต้องมี API ติดต่อไปยัง Google Calendar ครับ ซึ่งผมได้ฝังไว้บน blog ของผมเอง และหากใครกังวลเรื่องความปลอดภัยผมเองก็มีไฟล์ API ให้โหลดเอาไว้ติดตั้งบน Server ตัวเองได้ครับซึ่งสามารถดาวน์โหลดได้จากที่นี่ google_sms.tar.bz2 โหลดเสร็จแล้วก็เอาไปแตกไว้ใน wwwroot และอย่าลืมไปแก้ URL ใน Shell Script ด้วยนะครับ
หวังว่าบทความนี้คงเป็นประโยชน์กับผู้อ่าน
แหล่งข้อมูล : http://www.thaiadmin.org/board/index.php?topic=114285.0
http://bash.cyberciti.biz/monitoring/monitor-windows-linux-server-with-ping-script/
| Print article | This entry was posted by admin on เมษายน 8, 2010 at 4:36 pm, and is filed under Linux. Follow any responses to this post through RSS 2.0. You can leave a response or trackback from your own site. |
