Outils pour utilisateurs

Outils du site


Writing /app/www/public/data/meta/centreon/scripts-linux.meta failed
centreon:scripts-linux

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
centreon:scripts-linux [2023/07/05 12:47] michelcentreon:scripts-linux [2024/12/27 06:28] (Version actuelle) – modification externe 127.0.0.1
Ligne 429: Ligne 429:
 exit 3 exit 3
 fi fi
 +</code>
 +==== check_ilo_hp ====
 +<code>
 +# Get Token
 +#! /bin/bash
 +# Desc : Plugin to verify Ilo status on HP-OneView
 +# checks possible: server-hardware, server-profiles,
 +
 +# Vous pouvez decommanter la ligne ci-dessous si vous voulez voir le deroulement du script (debug)
 +#set -x
 +
 +# On suprime l'ancien fichier texte si il existe
 +rm -f "/usr/lib64/nagios/plugins/hp-oneview/$1-result.txt"
 +
 +# Variables
 +RESULT="/usr/lib64/nagios/plugins/hp-oneview/$1-result.txt"
 +HOST=$1
 +CHECK=$2
 +TOKEN=$(cat "$1-token.txt")
 +
 +# Check token and renew if necessary
 +CHECKTOKEN=$(curl -s -k -H 'accept: application/json' -H 'content-type: application/json' -H "auth: $TOKEN" -X PUT https://$HOST/rest/login-sessions  | jq -r '.sessionID')
 +
 +if [[ $CHECKTOKEN = "$TOKEN" ]]
 +then
 +TOKEN="$CHECKTOKEN"
 +
 +elif [[ $CHECKTOKEN != "$TOKEN" ]]
 +then
 +NEWTOKEN=$(curl -s -k -H 'accept: application/json' -H 'content-type: application/json' -d '{"userName":"sacentmoni","password":"M0n1toring1234"}' -X POST https://$HOST/rest/login-sessions | jq -r ".sessionID")
 +TOKEN="$NEWTOKEN"
 +fi
 +
 +# Ecriture du token dans le fichier text
 +echo $TOKEN > "/usr/lib64/nagios/plugins/hp-oneview/$1-token.txt"
 +
 +# On recupere la  liste des résultats
 +curl -s -k -H 'accept: application/json' -H 'content-type: application/json' -H "auth: $TOKEN" -X GET https://$HOST/rest/$CHECK  | jq -r '.members[] | "\(.status),\(.name),\(.state)"' >> "/usr/lib64/nagios/plugins/hp-oneview/$1-result.txt"
 +
 +# Variables resultats
 +CRITICAL=`grep "Critical" "$RESULT"`
 +WARNING=`grep "Warning" "$RESULT"`
 +OK=`grep "^OK" "$RESULT"`
 +
 +if [[ "$CRITICAL" != "" ]]
 +then
 +echo -e "$CRITICAL"'\n'"$WARNING"'\n'"$OK"
 +exit 2
 +
 +# Si warning
 +elif  [[ "$WARNING" != "" ]]
 +then
 +echo -e "$WARNING"'\n'"$OK"
 +exit 1
 +
 +# Si OK
 +else
 +echo "$OK"
 +exit 0
 +fi
 +</code>
 +==== check_ntp_stratum ====
 +<code>
 +#!/bin/bash
 +STATE_OK=0          # define the exit code if status is OK
 +STATE_WARNING=1     # define the exit code if status is Warning
 +STATE_CRITICAL=2    # define the exit code if status is Critical
 +STATE_UNKNOWN=3     # define the exit code if status is Unknown
 +STATE=""
 +STATUS=(OK WARNING CRITICAL UNKNOWN)
 +
 +set -e
 +
 +##########
 +## MAIN ##
 +##########
 +# Process user-provided parameters
 +while getopts "H:s:" OPT;
 +do
 +    case ${OPT} in
 +    H)    HOST=${OPTARG};;
 +    s)    EXPECTED_STRATUM=${OPTARG};;
 +    \?)
 +        echo ""
 +        echo "Please use options -H for hostname"
 +        echo "-s for exptected stratum"
 +        echo ""
 +        exit ${STATE_UNKNOWN}
 +        ;;
 +    esac
 +done
 +
 +if [ -z "$CRIT_THRESHOLD" ]; then
 + CRIT_THRESHOLD=2
 +fi
 +
 +#Debug
 +#set -x
 +
 +STRATUM=$(ntpq -c readlist $HOST | grep -Eo 'stratum=[0-9]*' | grep -Eo '[0-9]*')
 +
 +if [ -z "$STRATUM" ]; then
 + echo "Unable to get sysinfo from $HOST"
 + exit ${STATE_UNKNOWN}
 +fi
 +
 +if [ "$STRATUM" -eq "16" ]; then
 + STATE=1
 +elif [ "$STRATUM" -ne "$EXPECTED_STRATUM" ]; then
 + STATE=2
 +else
 + STATE=0
 +fi
 +
 +echo "${STATUS[$STATE]} Stratum $STRATUM - Exptected Stratum : $EXPECTED_STRATUM"
 +exit $STATE
 </code> </code>
 ==== check_netapp_lun_size ==== ==== check_netapp_lun_size ====
Ligne 529: Ligne 645:
 else else
 echo "Volume Usage is OK: $RESULT de $TOTAL" echo "Volume Usage is OK: $RESULT de $TOTAL"
 +fi
 +</code>
 +==== check_netapp_vfiler ====
 +<code>
 +#! /bin/bash
 +# Desc : Plugin to verify volume size on NETAPP
 +
 +# Decommentez la ligne ci-dessous pour debug
 +#set -x
 +
 +# On suprime l'ancien fichier texte si il existe
 +rm -f /usr/lib64/nagios/plugins/NETAPP-VFILER/$2.txt
 +rm -f /usr/lib64/nagios/plugins/NETAPP-VFILER/$2-result.txt
 +rm -f /usr/lib64/nagios/plugins/NETAPP-VFILER/$2-vol.txt
 +# Variables
 +CLU=$1
 +VFL=$2
 +WARN=$3
 +CRIT=$4
 +PERFO_FILE=/usr/lib64/nagios/plugins/NETAPP-VFILER/$VFL-result.txt
 +Volume=/usr/lib64/nagios/plugins/NETAPP-VFILER/$VFL-vol.txt
 +
 +# On recupere la  liste des volumes sur le Vfilers
 +curl -s http://127.0.0.1:9108/metrics > /usr/lib64/nagios/plugins/NETAPP-VFILER/$VFL-vol.txt
 +cat $Volume | grep '.*'$CLU'.*' | grep -oE 'netapp_volume_total_bytes.*' | grep -oE '.*'$VFL'.*' | grep -oE 'volume=.*'| cut -d '"' -f2 >> /usr/lib64/nagios/plugins/NETAPP-VFILER/$VFL.txt
 +
 +while read VOL;
 +do
 +  RESULT=$(cat $Volume | grep -oE 'netapp_volume_used_percentage.*' |  grep '.*'$CLU'.*' | grep -oE '.*'$VFL'.*' | grep -oE ''$VOL'\".*' | awk '{ split($0,a,/"/); print "Volume", a[1],"Used",$2,"%" }')
 +  TOTAL=$(cat $Volume | grep -oE 'netapp_volume_total_bytes.*' | grep '.*'$CLU'.*' | grep -oE '.*'$VFL'.*' | grep -oE ''$VOL'\".*' | awk '{ split($0,a,/"/); print "Volume", a[1],"Used",$2,"%" }' | awk '{ split($4,a,/e/); print a[1]*100,"GB"}')
 +  PRCT=`echo "$RESULT" | awk '{print $4}'`
 +
 +# Si critique
 +  if [[ $PRCT -gt "$CRIT" ]]
 +    then
 +      echo "CRITICAL volume $VOL used $PRCT% of $TOTAL" >> $PERFO_FILE
 +  elif  [[ $PRCT -gt "$WARN" ]]
 +    then
 +      echo "WARNING volume $VOL used $PRCT% of $TOTAL" >> $PERFO_FILE
 +  elif  [[ -z $PRCT  ]]
 +    then
 +      echo "UNKNOWN no response from plugin"
 +  else
 +      echo "OK volume $VOL used $PRCT% of $TOTAL" >> $PERFO_FILE
 +  fi
 +
 +done <  "/usr/lib64/nagios/plugins/NETAPP-VFILER/${VFL}.txt"
 +
 +#VAL=`cat "/usr/lib64/nagios/plugins/NETAPP-VFILER/$VFL-result.txt"`
 +VAL2=/usr/lib64/nagios/plugins/NETAPP-VFILER/$VFL-result.txt
 +
 +# Si critique
 +CRITICAL=`grep "^CRITICAL" "$VAL2"`
 +WARNING=`grep "^WARNING" "$VAL2"`
 +OK=`grep "^OK" "$VAL2"`
 +
 +if [[ $CRITICAL != "" ]]
 +then
 +grep "^CRITICAL" "$VAL2"
 +grep "^WARNING" "$VAL2"
 +grep "^OK" "$VAL2"
 +exit 2
 +# Si warning
 +elif  [[ $WARNING != "" ]]
 +then
 +grep "^WARNING" "$VAL2"
 +grep "^OK" "$VAL2"
 +exit 1
 +# Si OK
 +else
 +grep "^OK" "$VAL2"
 +exit 0
 +fi
 +</code>
 +==== check_netapp_lun_state ====
 +<code>
 +#! /bin/bash
 +# Desc : Plugin to verify LUN status on NETAPP
 +
 +# Decommentez la ligne ci-dessous pour debug
 +# set -x
 +
 +# Variables
 +USER=$1
 +PASS=$2
 +HOST=$3
 +FILTER=$4
 +
 +# Commande si filtrage de certaines LUNs
 +if
 +[[ ! -z $FILTER ]]
 +then
 +RESULT=$(curl -s -k -u $USER:$PASS -X GET 'https://'$HOST'/api/storage/luns?status.state=*' | jq '.' | grep -oE '"state":.*|"name":.*' | sed '/./N; s/\n/ /' | grep -Ewv  $FILTER)
 +
 +# Commande si pas de filtrage
 +else
 +RESULT=$(curl -s -k -u $USER:$PASS -X GET 'https://'$HOST'/api/storage/luns?status.state=*' | jq '.' | grep -oE '"state":.*|"name":.*' | sed '/./N; s/\n/ /')
 +fi
 +
 +# Si resultat vide
 +if
 +[[ -z $RESULT ]]
 +then
 +echo "WARNING: Pas de retour du script"
 +exit 3
 +fi
 +
 +# Si critique
 +CRIT=`echo -e "$RESULT" | grep -oE  '(.*"offline"|.*"foreign-lun-error"|.*"nvfail"|.*"space-error")'`
 +if [[ $RESULT != *"online"* ]]
 +then
 +printf "CRITICAL: $CRIT\n"
 +exit 2
 +
 +# Si OK
 +else
 +echo "OK: $RESULT"
 +fi
 +</code>
 +==== check_inode_size.sh ====
 +<code>
 +#!/bin/bash
 +# Vous pouvez decommanter la ligne ci-dessous si vous voulez voir le deroulement du script (debug)
 +# set -x
 +
 +# Desc : Plugin to verify INODE percent used on NETAPP
 +
 +# Variables
 +VSERV=/usr/lib64/nagios/plugins/NETAPP-VFILER/$1
 +VOL=$2
 +WARN=${3:-95}
 +CRIT=${4:-98}
 +
 +RESULT=$(cat $VSERV-vol.txt | grep -oE  '^netapp_volume_inode_files_used_percentage.*volume="'$VOL'".*'|cut -d '.' -f2-| cut -c 1-2)
 +
 +# Si critique
 +if [[ $RESULT -gt "$CRIT" ]]
 +then
 +echo "INODE Usage is CRITICAL: $RESULT%"
 +exit 2
 +fi
 +
 +# Si warning
 +if  [[ $RESULT -gt "$WARN" ]]
 +then
 +echo "INODE Usage is Warning: $RESULT%"
 +exit 1
 +
 +
 +# Si OK
 +else
 +echo "INODE Usage is OK: $RESULT%"
 fi fi
 </code> </code>
Ligne 751: Ligne 1019:
 echo "Value is $state: $RESULT|connections=$RESULT;$WARN;$CRIT;$MIN;$MAX;" echo "Value is $state: $RESULT|connections=$RESULT;$WARN;$CRIT;$MIN;$MAX;"
 exit $output exit $output
 +</code>
 +==== check_sla_dispo_process_Linux.sh ====
 +<code>
 +#!/bin/bash
 +####################################################
 +# Script pour verifier qu'au moins un process
 +# precis tourne sur un ou plusieurs serveurs Linux
 +# By adex036137
 +####################################################
 +
 +# Vous pouvez decommanter la ligne ci-dessous si vous voulez voir le deroulement du script (debug)
 +# set -x
 +
 +# On definit les variables et on fait une boucle pour chaques serveurs demandes
 +FICHIER=$()
 +for VAR in $2; do
 +HOST=$VAR
 +COMM=$1
 +#HOST=$2
 +SERV=$(snmpwalk -c $COMM -v 2c $HOST HOST-RESOURCES-MIB::hrSWRunName | grep -w "$3" | awk -F '[.=]' '{print $2}')
 +WARN=${4:-1}
 +CRIT=${5:-0}
 +FICHIER+=($(snmpwalk -c $COMM -v 2c $HOST HOST-RESOURCES-MIB::hrSWRunStatus | grep "$SERV" | cut -d ":" -f4))
 +done
 +RESULT=$(printf "%s\n" "${FICHIER[@]}" | grep "runn" | wc -l)
 +
 +# Remontee des alertes
 +# Si critique
 +if [[ "$RESULT" = $CRIT ]]
 + then
 +  echo "Critique: aucuns services $3 ne tourne pour la HA"
 + exit 2
 +fi
 +
 +# Si warning
 +if [[ "$RESULT" < "$WARN" ]]
 + then
 +  echo "Warning: moins de $WARN services $3 ne tourne pour la HA"
 + exit 1
 +
 +# Si OK
 +else
 + echo "OK: $RESULT services: $3 'UP'"
 +exit 0
 +fi
 +</code>
 +==== check_sla_dispo_services_windows.sh ====
 +<code>
 +#!/bin/bash
 +####################################################
 +# Script pour verifier qu'au moins un service
 +# precis tourne sur un ou plusieurs serveurs Windows
 +# By adex036137
 +####################################################
 +
 +# Vous pouvez decommanter la ligne ci-dessous si vous voulez voir le deroulement du script (debug)
 +# set -x
 +
 +# On definit les variables et on fait une boucle pour chaques serveurs demandes
 +FICHIER=$()
 +for VAR in $2; do
 +HOST=$VAR
 +COMM=$1
 +#HOST=$2
 +SERV=$3
 +WARN=${4:-1}
 +CRIT=${5:-0}
 +FICHIER+=($(snmpwalk -c $COMM -v 2c $HOST 1.3.6.1.4.1.77.1.2.3.1.1 | grep "$SERV" | cut -d ":" -f4 | wc -l))
 +done
 +RESULT=$(printf '%s\n' ${FICHIER[@]} | grep 1 | wc -l)
 +# Remontee des alertes
 +# Si critique
 +if [[ "$RESULT" = "$CRIT" ]]
 + then
 +  echo "Critique: aucuns services $SERV ne tourne pour la HA"
 + exit 2
 +fi
 +
 +# Si warning
 +if [[ "$RESULT" < "$WARN" ]]
 + then
 +  echo "Warning: moins de $WARN services $SERV ne tourne pour la HA: $RESULT"
 + exit 1
 +
 + Si OK
 +else
 + echo "OK: $RESULT services: $SERV 'UP'"
 +exit 0
 +fi
 </code> </code>
 ==== check_snmp_dell_equalogic ==== ==== check_snmp_dell_equalogic ====
Ligne 1691: Ligne 2048:
 fi fi
 </code> </code>
 +==== check_vs-certif_f5 ====
 +<code>
 +#!/bin/bash
 +# set -x
 +# Variable
 +HOST=$1
 +URL=${2:-.*}
 +COM=${3:-public}
 +VER=${4:-2c}
  
 +
 +# On recupere l'id de l'url
 +OID=$(snmpwalk -c $COM -v $VER $HOST .1.3.6.1.4.1.3375.2.1.15.1.2.1.1 | grep $2 | awk '{print $1}' | cut -d '.' -f10-)
 +
 +# On recupere le temps restant
 +TMP=$(snmpwalk -c $COM -v $VER $HOST 1.3.6.1.4.1.3375.2.1.15.1.2.1.5 | grep $OID | awk '{print $4}')
 +
 +# Calcul entre la date actuelle et la date du certif. RESULT= date unix convertie en date lisible.
 +TODAY=$(date +%s)
 +RESULT=$(date -d @$TMP +'%Y-%m-%d')
 +DIFF=$(echo "($TMP-$TODAY)/86400" | bc)
 +
 +# Si pas de retour
 +if [[ -z $OID ]]
 +then
 +echo "L'url ou le F5 ne sont pas bien renseigne"
 +exit 3
 +
 +# Si moins de 15 jours
 +elif [[ "$DIFF" -lt "15" ]]
 +then
 +echo "Critique $URL expire le $RESULT dans moins de $DIFF jours"
 +exit 2
 +fi
 +
 +# Si moins de 30 jours
 +if [[ "$DIFF" -lt "30" ]]
 +then
 +echo "Alerte $URL expire le $RESULT dans moins de $DIFF jours"
 +exit 1
 +
 +# Si OK
 +else
 +echo "OK $URL expire le $RESULT"
 +exit 0
 +fi
 +</code>
centreon/scripts-linux.1688561273.txt.gz · Dernière modification : 2024/12/27 06:28 (modification externe)