ในบทความนี้เราจะแสดงวิธีตั้งค่าการ Monitor Network Devices แบบ ICMP โดยใช้ ping ใน Zabbixx นี่คืองาน Agentless Monitoring ที่ง่ายที่สุดและนิยมมากที่สุด เมื่อคุณต้องการตรวจสอบ Availability ของ Remote Server, Website หรือ Network Device จาก Monitoring Server ของคุณ Zabbix สามารถส่ง ICMP Requests ไปยัง Host และหากไม่ได้รับคำตอบ Response Time ยาวเกินไป หรือสูญเสีย Packets เยอะเกินไป จะแสดง Warning บน Dashboard โปรโตคอล ICMP ใช้ส่วนใหญ่สำหรับตรวจสอบ Availability ของ Network Hosts เครื่องมือ Ping และ traceroute/tracert ทำงานผ่านโปรโตคอล ICMP เช่นกัน
วิธีเปิด Port สำหรับ ICMP Ping บน Windows Server และ Linux
โดย Default ICMP Ping ถูก Allow บน Windows Server แต่หากถูก Disable ไปด้วยเหตุผลใดเหตุผลหนึ่ง คุณสามารถ Enable ได้โดยใช้ netsh หรือ PowerShell รัน Command Prompt เป็น Administrator และใส่คำสั่งต่อไปนี้:
netsh advfirewall firewall add rule name="ICMP Allow“ protocol=icmpv4:8,any dir=in action=allow
นี่คือคำสั่ง PowerShell เดียวกัน (ใช้ Built-in NetSecurity Module):
Set-NetFirewallRule -Name FPS-ICMP-ERQ-In -Enabled True -Profile Any -Action Allow
คำสั่งเหล่านี้จะสร้าง Firewall Rule อนุญาต Inbound ICMP Echo Requests
Inbound ICMP Traffic ยังถูก Allow ใน Linux Distros สมัยใหม่ หากถูก Disable ไปด้วยเหตุผลใด ให้เพิ่ม Rules เหล่านี้ลง iptables รันคำสั่งต่อไปนี้ภายใต้ Root/Sudo:
# iptables -I INPUT -p icmp --icmp-type echo-request -j ACCEPT
# iptables -I OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT
ดังนั้น คุณจะเพิ่ม Rules อนุญาต ICMP Requests ไปที่จุดเริ่มต้นของ iptables Rule Chain
หากคุณใช้ Firewalld จัดการ Firewall Rules คุณสามารถอนุญาต ICMP Ping Reply ได้ดังนี้:
# firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 -p icmp -s 0.0.0.0/0 -d 0.0.0.0/0 -j ACCEPT
วิธีติดตั้ง Fping และตั้งค่า Paths ใน Zabbix
Fping ถูกใช้ใน Zabbix เพื่อดำเนินการ ICMP Checks ใน Linux Distros ส่วนใหญ่ Utility นี้ Pre-installed อยู่แล้ว ดังนั้นตรวจสอบก่อนว่ามันมีอยู่ใน OS หรือไม่ ไปที่ Zabbix Server ของคุณและรันคำสั่งนี้:
fping -v
หากไม่มี Tool นี้ ให้ติดตั้งโดยใช้ Package Manager:
- ใน Ubuntu:
apt install fping - ใน CentOS คุณจะต้อง Connect EPEL Repository ก่อนแล้วค่อยติดตั้ง Tool:
yum install fping
โดย Default Tool ถูกติดตั้งใน /usr/bin/fping หากมีปัญหากับ fping ให้ตรวจสอบว่ามันอยู่ใน /usr/bin/fping หากอยู่ใน Directory อื่น ให้เปลี่ยนบรรทัดต่อไปนี้ใน zabbix_server.conf โดยระบุ Path ที่ถูกต้องไปยัง fping
FpingLocation=/usr/bin/fping Fping6Location=/usr/bin/fping6
ICMP Ping Template ใน Zabbix
โดย Default มี Template Module ICMP Ping ใน Zabbix (อาจมีชื่อต่างกันไปขึ้นอยู่กับ Zabbix Version) เราจะใช้มันเพื่อ Monitor Network Hosts โดยใช้ ICMP Ping Template ประกอบด้วย 3 Checks:
- ICMP ping – Node Availability ผ่าน ICMP;
- ICMP loss – เปอร์เซ็นต์ของ Lost Packets;
- ICMP response time – ICMP Ping Response Time ใน Milliseconds

ดูที่คอลัมน์ Key: icmpping, icmppngloss และ icmppingse นี่คือ Built-in Keys ใน Zabbix พวกมันเป็น Simple Checks หมายความว่า Zabbix Agent ไม่ได้ถูกใช้เพื่อดำเนินการเหล่านี้
ดูรายการ Simple Checks ทั้งหมดที่ไม่ต้องการการติดตั้ง Zabbix Agent: https://www.zabbix.com/documentation/current/manual/config/items/itemtypes/simple_checks
Template ประกอบด้วย 3 Triggers ที่ Track Keys ที่อธิบายไว้ข้างต้นและ Values ของพวกมัน

บาง Triggers เช่น High ICMP Ping Response Time ใช้ Template Macros คุณสามารถเปลี่ยนค่า Macro ในแท็บ Macros
ค่าที่จะ Trigger การแจ้งเตือน:
- Package Loss Percentage ของ ICMP Ping Loss ($ICMP_LOSS_WARN) สำหรับ 5 นาทีล่าสุด มากกว่า 20
- ค่า Response Time ($ICMP_RESPONSE_TIME_WARN) เกิน 150 Milliseconds สำหรับ 5 นาทีล่าสุด

สร้าง Host ใน Zabbix และเชื่อมต่อ ICMP Ping Template
ในบทความนี้ผมจะตั้งค่า Monitoring ของ Host ที่รัน Windows Server มาเพิ่ม Host นี้ใน Zabbix ไปที่ Configuration -> Hosts -> Create Host
ใส่ Host Name เลือก Group และใส่ IP Address ของ Host ของคุณใน Agent Interfaces

หมายเหตุ Zabbix Groups ช่วยจัดเรียง Hosts ชื่อ Group ไม่ส่งผลต่อ Monitoring
เปิดแท็บ Templates คลิก Select และเลือก Template Module ICMP Ping

คลิก Add ในฟอร์ม Template Selection และ Add เพื่อเสร็จสิ้นการสร้าง Host

Templates ทั้งหมดที่เชื่อมต่อกับ Host จะแสดงในคอลัมน์ Templates

จากนั้นตรวจสอบว่า Monitoring ทำงานอย่างไร ไปที่ Monitoring -> Latest Data คลิก Select ถัดจาก Hosts และเลือก Host ที่คุณเพิ่งสร้าง
Latest Data ที่ได้รับจาก Host แสดงในคอลัมน์ Last Value

นอกจากนี้ คุณสามารถดู Graph สำหรับค่าเฉพาะ เช่น ICMP Response Time คลิก Graph

ในกรณีที่มีปัญหา คุณจะเห็น Notification บน Zabbix Dashboard

ICMP Ping เป็น Basic Check ที่ง่ายที่สุดสำหรับ Availability ของ Network Device ของคุณ หากคุณต้องการข้อมูลเพิ่มเติมเกี่ยวกับ Device คุณสามารถตั้งค่า Device Monitoring โดยใช้ Zabbix Agent, SNMP หรือ Protocols อื่นๆ