Server Down รู้ได้ทันทีผ่าน SMS แถมฟรีด้วย

mrgill   | December 11, 2009   |   18,060 Views

 

update 2015 ตอนนี้ google ยกเลิกนโยบายส่ง sms เข้ามือถือแล้วครับ เพราะ smart phone เป็นที่แพร่หลาย

update 27/09/2012 ครับ เนื่องด้วยมีผู้ใช้งาน script ผ่าน blog ของผมเป็นจำนวนมากทำให้ cpu ของเครืื่อง server hosting ทำงานหนักผมจึงขอเอาไฟล์ gsms.php ออกจาก blog นะครับใครต้องการใช้ script สามารถโหลดเอาไปติดตั้งกันได้เองตามตอนท้ายบทความได้เลยครับ

ีupdate status 06/03/2012 script ยังใช้งานได้ครับ

ก่อนอื่นขอหาวยาวๆ ก่อนกล่าวสวัสดีท่านผู้อ่านทุกท่าน  เมื่อคืนบ้าพลังอะไรไม่รู้อยากเขียน script ส่ง sms เตือนเมื่อ server down ที่จริงชาวบ้านเค้าก็ทำขายกันเยอะแยะ แต่หลังจากที่ผมได้ใช้ Google Calendar แล้วให้มันส่ง sms เตือนแถมฟรีอีก ก็เลยคิดอยากใช้ประโยชน์จากมันเพิ่มเติมก็ค้นๆ  Google อีกเช่นเคยครับ ไปเจอบทความใน ThaiAdmin เรื่อง google calendar sms ที่ท่าน smartsoft เขียนไว้ก็เลยลองโหลด Libraries Google Calendar SMS มาเล่นดูบ้าง ซึ่งเมื่อลองดูแล้วก็ถือว่าใช้งานง่ายทีเดียวเลยเอามาโมต่อ โดยให้ Shell Script เป็นตัว Submit form แทน

ความสามารถของ 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/

Share/Save

Comments

comments

Powered by Facebook Comments

Category : Internet,Linux,Programming,Security,Server,Technology,Ubuntu,Windows

Tags: , , , , , , , , ,

โน๊ต อุดม แต้พานิช ในรายการ ตี 10 (1,8 ธันวาคม 2552) Shell Script แจ้งเตือน SMS เมื่อ Hard Disk ใกล้เต็มแบบฟรีๆ


Recent Entries

Random Posts

Social Network

Tag Cloud

Calendar

December 2009
S M T W T F S
« Nov   Jan »
 12345
6789101112
13141516171819
20212223242526
2728293031  

Twitter: imrgill

RSS LinuxToday

RSS HowToForge

RSS UbuntuClub

RSS Blognone

RSS PowerWindowsBlog

Tag

Categories

Archives

Blogroll