Zabbix Web Monitoring
๒๔ มีนาคม ๒๕๖๔
ไหน ๆ ก็เขียนเรื่องการ monitor certificate ของ web server แล้ว เขียนต่อเรื่องการ monitor performance ของ web server ต่อเลยแล้วกันครับ
พอดีเคยได้รับแจ้งมาว่าให้ทำตัว monitor response time ของบาง url ว่ามันช้าหรือเปล่า ตอนนั้นใช้เครื่องมือ APM (Application Performance Monitoring) ในการดู แต่บางระบบที่ไม่มี APM ใช้ก็ไม่รู้จะดูยังไง เพราะไม่สามารถลง APM ทุกเครื่องได้ เนื่องจากราคาค่อนข้างสูง มีคนมาแนะนำว่าใช้ Zabbix ดูก็ได้ แต่ให้ไปหาวิธีทำใน youtube เอาเองนะ (เอิ่ม…. 😠)
เอาล่ะก็ทำได้แล้ว เลยมาเขียนไว้เผื่อให้คนที่ต้องการใช้ได้เอาไปทำกัน จะได้ไม่ต้องไปหาวิธีใน youtube เองอีกเหมือนผม
ก่อนอื่นเราต้องเลือกก่อนว่าเราจะใช้เครื่องไหนในการใช้ monitor web ที่เราต้องการ การสร้างจะได้เป็นระเบียบเรียบร้อย โดยในครั้งนี้ผมเลือกใช้เครื่อง zabbix server เป็นเครื่องที่ทำหน้าที่ในการ monitor web
การ monitor web ของ zabbix จะแบ่งเป็น 2 ประเภท คือ web scenario และ web scenario step โดยข้อมูลของ 2 ประเภทจะต่างกันดังนี้
อ้างอิงจาก document ของ zabbix https://www.zabbix.com/documentation/current/manual/web_monitoring
“Web Scenario” จะเป็น group ของ web ที่เราสนใจจะ monitor
ส่วน “Web Scenario Step” จะเป็น url ของ web ที่เราจะ monitor ว่าเราจะ monitor url อะไรบ้าง ยกตัวอย่างเช่น หากเราต้องการ monitor web e-commerce เราก็อาจจะสนใจ monitor url ในการ login, search, reserve, payment เป็นต้น
หลังจากเลือกเครื่องได้แล้วก็มาเริ่มทำกันเลย
ให้เลือกที่เมนู Configuration แล้วเลือก Hosts แล้วเลือกที่ “Web”
จากนั้นให้เลือกที่ “Create Web Scenarios”
ตั้งชื่อ Web Scenario ว่า “Avalability of google”
New application ใส่เป็น “Web Check” เพื่อใช้สำหรับเป็นเงื่อนไขในการหา
เสร็จแล้ว ยังไม่ต้องกดที่ปุ่ม Add นะครับ เราจะต้องไปใส่ Steps เพิ่มก่อนถึงจะ Add ได้
จากนั้นให้กดที่ “Steps”
โดยใน scenario นี้ (Avalability of google) เราจะ monitor 2 steps ตามนี้
เริ่มแรกเราจะยังไม่มี step อะไร ให้กดที่ปุ่ม add
(Add ตัวบนนะครับ ไม่ใช่ที่ปุ่มด้านล่าง)
ตั้งชื่อ step แรกว่า Home โดยให้ monitor ที่ url www.google.com โดยต้องการให้ response code เป็น 200 (หมายความว่า web ทำงานได้ปกติ) แล้วกดปุ่ม add
จากนั้นกดที่ add อีกครั้งเพื่อเพิ่ม step ในการ monitor หน้า about
ตั้งชื่อ step เป็น “About” ใส่ url ต่อด้วย response code แล้วกด add
เสร็จแล้วก็กดปุ่ม Add ได้เลย
เสร็จแล้วจะแสดงสถานะให้เราเห็นว่าการ add สำเร็จ และมี web scenario เพิ่มเข้ามาให้
จากนั้นให้เราลองเพิ่มอีก 1 scenario โดยครั้งนี้เราจะ monitor web e-commerce รายหนึ่ง 😄 “24shopping.co.th”
โดยเราจะ monitor 2 urls คือ Home กับ Contact
ครั้งนี้เราเลือก Application เป็น “Web Check” โดยไม่ต้องไปใส่ในช่อง New application แล้ว เพราะเราได้สร้าง Application ชื่อ Web Check แล้วจากขั้นตอนก่อนหน้านี้
จากนั้นก็เพิ่ม steps
เสร็จแล้วก็กดปุ่ม Add
ก็จะมี 2 web scenarios แล้ว
คราวนี้ก็มาดูผลกันว่าสามารถจะ monitor ได้หรือไม่ โดยให้ไปที่เมนู Monitoring เลือก Latest data จากนั้นในช่อง Hosts ให้เลือกเป็น “Zabbix server” ช่อง Application ให้ใส่ “Web Check” จะได้แสดงเฉพาะข้อมูลที่ต้องการออกมา (ไม่งั้นจะเยอะจนหาไม่เจอ) เสร็จแล้วกด Apply
เราก็จะเห็นข้อมูลต่าง ๆ ตามภาพ หากในช่อง Last value ขึ้นมาให้เห็นก็แสดงว่าสำเร็จแล้ว 😄
คราวนี้มาลองดูกราฟ response time ดูว่าเป็นยังไง โดยการกดที่ check box หน้ากราฟที่ต้องการจะดู เช่น เราต้องการดูค่า response time ของหน้า home ของ google กับ 24Shopping เราก็ check ที่ตามนี้
แล้วกดปุ่ม display graph
tada….. กราฟมาแล้ว
แต่คราวนี้ถ้าหากต้องการจะดูรายงาน web response time ทุกครั้ง แล้วต้องมาทำแบบนี้ก็คงจะไม่สะดวก งั้นเรามาสร้างเป็นกราฟเก็บไว้เรียกใช้ทีหลังดีกว่า
งั้นตอนการทำก็เป็นตามนี้
ให้เลือกเมนู Configuration แล้วเลือก Hosts จากนั้นให้กดที่ Graphs
กด Create graph
ตั้งชื่อว่า “Web Response Time” แล้วกดที่ Add (กดให้ถูกอันนะ)
จากนั้นให้เลือกข้อมูลที่ต้องการ (response time ของหน้า home ของ google กับ 24Shopping) เสร็จแล้วกดปุ่ม select
จะเห็นว่า graph เราจะแสดงค่า response time ของ 2 steps ตามที่เราเลือกมา
เสร็จแล้วก็กดปุ่ม “Add” เป็นอันเสร็จขั้นตอนการสร้าง
คราวนี้ลองมาใช้กันบ้างว่าจะใช้ยังไง
ให้เลือกเมนู Monitoring แล้วเลือก Hosts แล้วเลือก Graphs
จะเห็นว่ามี graph ต่าง ๆ ขึ้นมาเต็มไปหมด ให้เรากดที่ปุ่ม “Filter”
เลือก graph ที่เราสร้างขึ้นมา แล้วกดปุ่ม Apply
คราวนี้ก็จะมีแต่ graph ที่เราต้องการดูแล้วครับ
เป็นอันจบการทำตัว monitor web ครับ ขอให้สนุกกับการใช้ zabbix นะครับ 😙