Adding check_chrony
This commit is contained in:
parent
37a84a1d3e
commit
8ae639cb73
@ -22,6 +22,7 @@ command[check_memory] = /usr/local/bin/check_memory
|
||||
command[check_systemd] = /usr/local/bin/check_systemd
|
||||
command[check_service] = /usr/local/bin/check_service
|
||||
command[check_log] = /usr/local/bin/check_log
|
||||
command[check_chrony] = /usr/local/bin/check_chrony
|
||||
|
||||
# with sudo
|
||||
|
||||
|
114
conf/usr/local/bin/check_chrony
Executable file
114
conf/usr/local/bin/check_chrony
Executable file
@ -0,0 +1,114 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
################################################################################
|
||||
# BSD 3-Clause License
|
||||
#
|
||||
# Copyright © 2019 Aurélien Grimal - aurelien.grimal@tech-tips.fr
|
||||
# All rights reserved.
|
||||
#
|
||||
# Please see license file on root of this directory
|
||||
################################################################################
|
||||
|
||||
# !! GIT FILE !!
|
||||
# https://framagit.org/zorval/scripts/check-nrpe
|
||||
|
||||
################################################################################
|
||||
|
||||
WARNING_SECONDS=0.5
|
||||
CRITICAL_SECONDS=5
|
||||
|
||||
VAR_FILE=/etc/zorval/conf-check_chrony
|
||||
[ -f $VAR_FILE ] && source $VAR_FILE
|
||||
|
||||
DEBUG=${DEBUG:false}
|
||||
|
||||
cmd="chronyc -c tracking"
|
||||
CHRONYC_TRACKING=$($cmd)
|
||||
RC=$?
|
||||
|
||||
if [ $RC -ne 0 ]; then
|
||||
echo "[CRITICAL] Le code retour de '$cmd' vaut $RC !"
|
||||
exit 2
|
||||
fi
|
||||
|
||||
cmd="chronyc -c sources"
|
||||
CHRONYC_SOURCES=$($cmd)
|
||||
RC=$?
|
||||
|
||||
if [ $RC -ne 0 ]; then
|
||||
echo "[CRITICAL] Le code retour de '$cmd' vaut $RC !"
|
||||
exit 2
|
||||
fi
|
||||
|
||||
if echo "$CHRONYC_SOURCES" | grep -q ',\*,'; then
|
||||
CHRONYC_SOURCES=$(echo "$CHRONYC_SOURCES" | grep ',\*,')
|
||||
else
|
||||
CHRONYC_SOURCES=$(echo "$CHRONYC_SOURCES" | head -n 1)
|
||||
fi
|
||||
|
||||
read -r Reference_ID Reference_IP Stratum Ref_time System_time Last_offset RMS_offset \
|
||||
Frequency Residual_freq Skew Root_delay Root_dispersion Update_interval Leap_status \
|
||||
<<< $(echo "$CHRONYC_TRACKING" | sed 's/,/ /g')
|
||||
|
||||
read -r Source_mode Source_state Name_or_IP_address Stratum Poll Reach LastRx \
|
||||
Last_sample_adjusted_offset Last_sample_measured_offset Last_sample_estimated_error \
|
||||
<<< $(echo "$CHRONYC_SOURCES" | sed 's/,/ /g')
|
||||
|
||||
if [ "$DEBUG" = true ]; then
|
||||
echo "================="
|
||||
echo "CHRONYC_TRACKING=$CHRONYC_TRACKING"
|
||||
echo "================="
|
||||
echo "Reference_ID=$Reference_ID"
|
||||
echo "Reference_IP=$Reference_IP"
|
||||
echo "Stratum=$Stratum"
|
||||
echo "Ref_time=$Ref_time"
|
||||
echo "System_time=$System_time"
|
||||
echo "Last_offset=$Last_offset"
|
||||
echo "RMS_offset=$RMS_offset"
|
||||
echo "Frequency=$Frequency"
|
||||
echo "Residual_freq=$Residual_freq"
|
||||
echo "Skew=$Skew"
|
||||
echo "Root_delay=$Root_delay"
|
||||
echo "Root_dispersion=$Root_dispersion"
|
||||
echo "Update_interval=$Update_interval"
|
||||
echo "Leap_status=$Leap_status"
|
||||
echo "================"
|
||||
echo "CHRONYC_SOURCES=$CHRONYC_SOURCES"
|
||||
echo "================"
|
||||
echo "Source_mode=$Source_mode"
|
||||
echo "Source_state=$Source_state"
|
||||
echo "Name_or_IP_address=$Name_or_IP_address"
|
||||
echo "Stratum=$Stratum"
|
||||
echo "Poll=$Poll"
|
||||
echo "Reach=$Reach"
|
||||
echo "LastRx=$LastRx"
|
||||
echo "Last_sample_adjusted_offset=$Last_sample_adjusted_offset"
|
||||
echo "Last_sample_measured_offset=$Last_sample_measured_offset"
|
||||
echo "Last_sample_estimated_error=$Last_sample_estimated_error"
|
||||
fi
|
||||
|
||||
if [ "$Leap_status" != Normal ]; then
|
||||
echo "[CRITICAL] Leap status vaut '$Leap_status' au lieu de 'Normal' !"
|
||||
exit 2
|
||||
fi
|
||||
|
||||
if [ "$Source_mode" != '^' ]; then
|
||||
echo "[CRITICAL] Source mode vaut '$Source_mode' au lieu de '^' !"
|
||||
exit 2
|
||||
fi
|
||||
|
||||
if [ "$Source_state" != '*' ]; then
|
||||
echo "[CRITICAL] Source state vaut '$Source_state' au lieu de '*' !"
|
||||
exit 2
|
||||
fi
|
||||
|
||||
if (( $(echo "$System_time > $CRITICAL_SECONDS" | bc -l) )) || (( $(echo "$System_time < -$CRITICAL_SECONDS" | bc -l) )); then
|
||||
echo "[CRITICAL] Ce serveur a un décalage de $System_time secondes avec le serveur NTP !"
|
||||
exit 2
|
||||
elif (( $(echo "$System_time > $WARNING_SECONDS" | bc -l) )) || (( $(echo "$System_time < -$WARNING_SECONDS" | bc -l) )); then
|
||||
echo "[WARNING] Ce serveur a un décalage de $System_time secondes avec le serveur NTP !"
|
||||
exit 1
|
||||
else
|
||||
echo "[OK] Ce serveur a un décalage de $System_time secondes avec le serveur NTP"
|
||||
exit 0
|
||||
fi
|
Loading…
Reference in New Issue
Block a user