สามารถชดเชย NTPได้ด้วยไพพ์ไลน์ UNIX ต่อไปนี้:
/usr/sbin/ntpq -pn | /usr/bin/awk 'BEGIN { offset=1000 } $1 ~ /^\*/ { offset=$9 } END { print offset }'
สามารถรับจำนวนเพียร์ NTPด้วยไพพ์ไลน์ UNIX ต่อไปนี้:
/usr/sbin/ntpq -pn | egrep -c '^\*|^\+'
สำหรับOffset NTPเราใช้:
- เตือน> 250 มิลลิวินาที
- สำคัญ> 500ms
สำหรับจำนวนNTP ของเพียร์เราใช้:
- ไม่มีเกณฑ์การเตือน
- วิจารณ์ <1
การตรวจสอบ NTP สำหรับ Zabbix พร้อม (ที่มา: Joyent):
# NTP
UserParameter=ntp.offset,/usr/sbin/ntpq -pn | /usr/bin/awk 'BEGIN { offset=1000 } $1 ~ /^\*/ { offset=$9 } END { print offset }'
UserParameter=ntp.peers,/usr/sbin/ntpq -pn | egrep -c '^\*|^\+'
ปลั๊กอินการตรวจสอบ NTP พร้อม Nagios:
check_ntp_offset:
#!/bin/bash
# thresholds
thresh_warn=250
thresh_crit=500
# metric
ntp_offset=$(/usr/sbin/ntpq -pn | /usr/bin/awk 'BEGIN { offset=1000 } $1 ~ /^\*/ { offset=$9 } END { print offset }')
# Exit codes
STATE_OK=0
STATE_WARNING=1
STATE_CRITICAL=2
STATE_UNKNOWN=3
if [[ ! "$ntp_offset" =~ ^[0-9]+$ ]] ; then
# NTP offset could not be read successfully
echo "NTP OFFSET UNKNOWN - $ntp_offset"
exit $STATE_UNKNOWN
elif [[ "$ntp_offset" -gt "$thresh_crit" ]] ; then
# NTP offset is higher than the critical threshold
echo "NTP OFFSET CRITICAL - ${ntp_offset}ms (> ${thresh_crit}ms)"
exit $STATE_CRITICAL
elif [[ "$ntp_offset" -gt "$thresh_warn" ]] ; then
# NTP offset is higher than the warning threshold
echo "NTP OFFSET WARNING - ${ntp_offset}ms (> ${thresh_warn}ms)"
exit $STATE_WARNING
else
# NTP offset is within thresholds
echo "NTP OFFSET OK - ${ntp_offset}ms (< ${thresh_warn}ms)"
exit $STATE_OK
fi
check_ntp_peers:
#!/bin/bash
# thresholds
thresh_warn=1
thresh_crit=1
# metric
ntp_peers=$(/usr/sbin/ntpq -pn | egrep -c '^\*|^\+')
# Exit codes
STATE_OK=0
STATE_WARNING=1
STATE_CRITICAL=2
STATE_UNKNOWN=3
if [[ ! "$ntp_peers" =~ ^[0-9]+$ ]] ; then
# NTP peers could not be read successfully
echo "NTP PEERS UNKNOWN - $ntp_peers"
exit $STATE_UNKNOWN
elif [[ "$ntp_peers" -lt "$thresh_crit" ]] ; then
# NTP peers is lower than the critical threshold
echo "NTP PEERS CRITICAL - $ntp_peers (< $thresh_crit)"
exit $STATE_CRITICAL
elif [[ "$ntp_peers" -lt "$thresh_warn" ]] ; then
# NTP peers is lower than the warning threshold
echo "NTP PEERS WARNING - $ntp_peers (< $thresh_warn)"
exit $STATE_WARNING
else
# NTP peers is within thresholds
echo "NTP PEERS OK - $ntp_peers (> $thresh_warn)"
exit $STATE_OK
fi
ฉันควรปล่อยให้เกณฑ์การเตือนและวิกฤติที่สำคัญในสคริปต์ Nagios สามารถกำหนดค่าได้ด้วย -w และ -c พวกเขายังไม่พร้อมปลั๊กอินโดยสมบูรณ์ คำแนะนำเพิ่มเติมเกี่ยวกับเรื่องนี้ในบทช่วยสอนที่นี่:
http://www.kernel-panic.it/openbsd/nagios/nagios6.html