Skip to content
Snippets Groups Projects
Select Git revision
  • 91c7be7df99784ea3135d09c6ccecefee1591270
  • master default protected
  • simple-task/7248-eol-check-add-node-22
  • 6877_check_iml_deployment
4 results

check_couchdb

Blame
  • check_timesync 3.23 KiB
    #!/bin/bash
    # ======================================================================
    #
    # NAGIOS CLIENT CHECK :: check if timesync with ntpd or timesyncd
    # is active
    #
    # ----------------------------------------------------------------------
    # script checks output of "timedatectl status" and shows status of
    # the sync service (systemd-timesyncd or chronyd)
    # - centos7
    # - debian8
    # - ubuntu16
    # ----------------------------------------------------------------------
    # 2018-10-26  v1.0  <axel.hahn@iml.unibe.ch>
    # 2020-03-05  v1.1  <axel.hahn@iml.unibe.ch> switch to ph.* helper functions
    # 2020-05-13  v1.2  <axel.hahn@iml.unibe.ch> update pre detect output of timedatectl
    # 2021-08-19  v1.3  <martin.gasser@iml.unibe.ch> update for chrony with timedatectl 
    
    # ======================================================================
    
    . `dirname $0`/inc_pluginfunctions
    myos=`ph.getOS`
    tmpfile=/tmp/check_timesync.tmp
    
    # ----------------------------------------------------------------------
    # pre check if timedatectl is available
    # ----------------------------------------------------------------------
    which timedatectl >/dev/null
    if [ $? -ne 0 ]; then
      ph.abort "timesync UNKNOWN: timedatectl was not found ... maybe your OS ${myos} is not supported"
    fi
    
    
    # ----------------------------------------------------------------------
    # check output of timedatectl command
    # ----------------------------------------------------------------------
    
    # ph.execIfReady "timedatectl status | grep '^NTP synchronized'" >/dev/null
    # echo ----- output of timedatectl status >$tmpfile
    # timedatectl status >>$tmpfile
    ph.execIfReady "timedatectl show >$tmpfile; grep '^NTPSynchronized' $tmpfile >/dev/null"
    
    cat $tmpfile | grep "^NTPSynchronized" >/dev/null
    if [ $? -ne 0 ]; then
      ph.setStatus "unknown"
      # ph.status "timesync: timedatectl has no line NTP synchronized ... maybe your OS ${myos} is not supported"
      ph.status "timesync: timedatectl has no line NTP synchronized"
      cat $tmpfile
    else
      cat $tmpfile | grep "^NTPSynchronized=yes" >/dev/null
      if [ $? -eq 0 ]; then
        ph.status "timesync: a timesync service is active on this ${myos} host"
      else
        ph.setStatus "critical"
        ph.status "timesync: there is no active timesync - you need to activate ntpd or timesyncd on this ${myos} host"
      fi
    fi
    # /timedatectl
    
    # ----------------------------------------------------------------------
    # detect sync service and show its output
    # ----------------------------------------------------------------------
    echo >>$tmpfile
    sSyncService=
    if [ -f /etc/systemd/timesyncd.conf ]; then
      sSyncService="systemd-timesyncd"
    fi
    if [ -f /etc/chrony.conf ]; then
      sSyncService="chronyd"
    fi
    if [ -f /etc/chrony/chrony.conf ]; then
      sSyncService="chronyd"
    fi
    if [ -z $sSyncService ]; then
      echo "REMARK: no sync service detected ... or this sensu check does not support it" >>$tmpfile
    else
      echo ----- output of systemctl status $sSyncService >>$tmpfile
      systemctl status $sSyncService >>$tmpfile
    fi
    
    
    # ----------------------------------------------------------------------
    # output & exit
    # ----------------------------------------------------------------------
    
    cat $tmpfile | grep "^NTPSynchronized"
    echo
    cat $tmpfile
    
    rm -f $tmpfile
    
    ph.exit
    
    # ----------------------------------------------------------------------