[วิธีทำ] การตั้งค่า WhatsUp Gold ให้ส่งข้อความแจ้งเตือนผ่าน LINE โดยใช้ Python

admin

Staff Member
Administrator
#1
ปัจจุบันหลายๆ ที่ยกเลิกการส่งข้อความแจ้งเตือนผ่าน SMS โดยหันมาใช้ platform ที่ใช้งานกันอย่างแพร่หลาย เช่น LINE เนื่องจากประหยัดค่าใช้จ่ายเมื่อเทียบกับการใช้ SMS
วันนี้จะขอยกตัวอย่างการตั้งค่า WhatsUp Gold 2018 ให้สามารถ ส่งข้อความแจ้งเตือน (Alert) ผ่าน LINE เพื่อเป็นประโยชน์สำหรับบางท่านที่กำลังมองหาวิธีการกันอยู่ หรือบางท่านที่ยังไม่ทราบว่าทำได้ครับ
36779244_975284619299571_986374677301559296_n.png

  • ติดตั้ง Module “requests” โดยใช้ pip3.7.exe ที่ path ที่ติดตั้ง python ในตัวอย่างจะเป็น path = C:\Users\Administrator\AppData\Local\Programs\Python\Python37\Scripts จากนั้นทำการพิมพ์ “pip3.7 install requests”
ตัวอย่าง
C:\Users\Administrator\AppData\Local\Programs\Python\Python37\Scripts>pip3.7 install requestsCollecting requests Using cached https://files.pythonhosted.org/packages/65/47/7e02164a2a3db50ed6d8a6ab1d6d60b69c4c3fdf57a284257925dfc12bda/requests-2.19.1-py2.py3-none-any.whlRequirement already satisfied: idna<2.8,>=2.5 in c:\users\administrator\appdata\local\programs\python\python37\lib\site-packages (from requests) (2.7)Requirement already satisfied: certifi>=2017.4.17 in c:\users\administrator\appdata\local\programs\python\python37\lib\site-packages (from requests) (2018.4.16)Requirement already satisfied: urllib3<1.24,>=1.21.1 in c:\users\administrator\appdata\local\programs\python\python37\lib\site-packages (from requests) (1.23)Requirement already satisfied: chardet<3.1.0,>=3.0.2 in c:\users\administrator\appdata\local\programs\python\python37\lib\site-packages (from requests) (3.0.4)Installing collected packages: requestsSuccessfully installed requests-2.19.1

  • จากนั้นเริ่มทำการ Generate LINE Token โดยไปที่ https://notify-bot.line.me/en/ ทำการ Login แล้ว คลิ้กเลือก My Page
36772297_975301795964520_7707864612821008384_n.png

  • เลื่อนมาด้านล่างจะพบปุ่ม Generate Token
36803986_975300909297942_3040686611906953216_n.png

  • ตั้งชื่อ token แล้วเลือก Line Group หรือจะเลือกเป็นแบบ 1:1 กับ Line ก็ได้ จากนั้นทำการคลิ้ก Generate token
36785161_975305972630769_6426748032464715776_n.png

  • ทำการ Copy Token เพื่อที่จะนำไปใส่ใน Code Python
36800267_975309512630415_9086507161596461056_n.png

  • สร้างไฟล์ python ขึ้นมา สามารถ copy code ตามด้านล่างได้เลยครับ จากนั้นใส่ตัวแปร token = <token ของ LINE ที่เราได้เตรียมไว้>
#usage: SendLIINE.py <message>import requestsimport sysapi = 'https://notify-api.line.me/api/notify'token = 'RnRtl1UAaIlAleE4RxJzb4LvpRu1sEE2FwHNZo8SYWd'headers = {'content-type':'application/x-www-form-urlencoded','Authorization':'Bearer '+token}
msg = sys.argv[1]out = requests.post(api, headers=headers , data = {'message':msg})print(out.text)
  • ทำการ save ไฟล์ไว้ที่ path c:\ (หรือ path อื่นที่ต้องการ) จากนั้นทำการทดสอบการทำงานของ python
Syntax ของ Script นี้ คือ​
# python <ไฟล์ py> <ข้อความ>​

  • ทำการทดสอบโดยการ Run Python ตามตัวอย่างด้านล่าง
C:\Users\Administrator\AppData\Local\Programs\Python\Python37>python c:\SendLINE.py "I'm WhatsUp Gold!!!"{"status":200,"message":"ok"}
  • หลังจากทดสอบจะพบว่า Status = 200 (ถ้าถูกต้อง) และเราจะได้รับข้อความจาก LINE ตามที่เราพิมพ์
36806990_975319025962797_1286542627289694208_n.png

  • เปิด WhatsUp Gold จากนั้นไปที่ SETTING > Actions & Alerts > Action and Policies
36810563_975321475962552_315654408056602624_n.png

  • สร้าง New Action Library จากนั้นเลือก Program Action
36782648_975324495962250_7314011851170250752_n.png

  • กรอกข้อมูลให้ครบถ้วน จากนั้นกด OK
Name: LINE-Alert
Program file name: <path ของ python.exe>
Program argurments: C:\SendLINE.py "%Device.ActiveMonitorDownNames is %Device.State on %Device.Role: %Device.HostName (%Device.Address). Details: Monitors that are down include: %Device.ActiveMonitorDownNames Monitors that are up include: %Device.ActiveMonitorUpNames Notes on this device (from device property page): %Device.Notes ---------------------------------------- This message was sent on %System.Date at %System.Time Ipswitch WhatsUp Gold"
ตัวอย่าง
36774242_975332909294742_6695005217257160704_n.png


  • สร้าง New Action Policy โดยตั้งชื่อและกด Add
36821227_975327539295279_3799307102011260928_n.png

เลือก Action Library = LINE-Alert (จากที่ได้สร้างก่อนหน้านี้) - เลือก Execute On Down
36784687_975327829295250_580236926204772352_n.png

  • เลือก Execute On Up ตามเงื่อนไข
36781667_975328669295166_524176113954455552_n.png


  • เราจะได้ Action policy จากนั้นจึงทำการกด OK
36894710_975329872628379_3570569689425772544_n.png

  • หลังจากสร้าง Action Policy เรียบร้อยแล้ว ต่อไปเราจะ assign policy ให้กับ Device ที่เราต้องการ โดยไปที่ Device Properties > Edit (ตามภาพด้านล่าง)
36786343_975341725960527_9025100884589150208_n.png

  • เลือก Action Policy = LINE_Alert และกด OK
36763504_975341292627237_7966401135571369984_n.png

  • หลังจากเลือก Action Policies แล้ว เราจะเห็นว่า Action Policies จะผูกกับ Device นี้ โดยจะแสดงดังภาพด้านล่าง
36789682_975343115960388_1613551983984115712_n.png

  • ทดสอบทำให้ Device Down เพื่อดู LINE Alert (ตัวอย่างจะใช้วิธีการเปลี่ยน IP แทน)
36765641_975351332626233_8834053656861999104_n.png

  • ..จากนั้น รอ 5 นาทีตาม Policy
36861978_975351682626198_7742643810580037632_o.png

  • หลังจากรอ 5 นาทีพบว่ามี LINE ส่ง Alert มา
36813545_975355789292454_6256512120309940224_n.png

  • จากนั้นทดสอบ การ Alert Up กันต่อ โดยการเปลี่ยน iP กลับมาเป็น 8.8.8.8 เหมือนเดิม
36818874_975357182625648_7053523965863526400_n.png

  • เนื่องจากเรา Setup ไว้ว่า ถ้า Up ให้ส่งทันที ดังนั้นเราจึงได้รับ LINE หลังจากระบบ Up ขึ้นมาทันที
36785191_975357932625573_5243329206334521344_o.png

หากเรามีความรู้เกี่ยวกับ Script Python นี้ เราสามารถจะประยุกต์ใช้กับระบบ Monitor อื่นๆ เช่น PRTG, Solarwind, Zabbix หรือระบบอื่นๆ ได้ เช่นกัน​
 

แฟนเพจ

โพสต์ล่าสุด


Top