Scripts nagios - exemples

De UnixManiax
Révision datée du 16 septembre 2013 à 14:38 par AdminWiki (discussion | contributions) (Page créée avec « Category: nagios Exemples de scripts nagios. ==Consommation cpu, mémoire et nombre de process - Solaris== Le script ci-dessous prend comme argument une chaine de ca... »)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à la navigation Aller à la recherche

Exemples de scripts nagios.

Consommation cpu, mémoire et nombre de process - Solaris

Le script ci-dessous prend comme argument une chaine de caractères qui doit correspondre à un ou plusieurs process qui tournent. Il va alors retourner le nombre de process correspondants trouvés, ainsi que la somme de leur consommation cpu et mémoire. Fonctionne sous Solaris.

#!/bin/ksh
#
# Script de surveillance pour nagios
# Affiche la consommation memoire et cpu des process passes en parametre
# ainsi que le nombre de process trouves


###################### Variables #################################
TEMP_FILE=/tmp/$$-1.tmp
MEM=0
CPU=0
PROCESS_NB=0
STATUS=0

###################### Fonctions #################################

usage() {
    echo "Usage: $0 process(es)-to-analyse"
}

##################################################################
# Programme principal                                            #
##################################################################

if [ "$#" -ne 1 ]
then
    echo "Wrong parameters number."
    usage
    exit 1
fi


PROCESS=$1
ps -edf > $TEMP_FILE
PROCESS_LIST=$(cat "$TEMP_FILE" |grep "$PROCESS"| grep -v "grep $PROCESS" | grep -v "$0 $1" |awk '{print $2}')


if [ "$PROCESS_LIST" == "" ]
then
    echo "Unable to find such running process."
    TEXT="No process"
    STATUS=2
else
    for p in $PROCESS_LIST
    do
        INFO=$(prstat -p $p 1 1 |grep $p|awk '{print $3 " " $9}') # mem=$3, cpu=$9
        MEM_INFO=$(echo "$INFO" | awk '{print $1}')
        CPU_INFO=$(echo "$INFO" | awk '{print $2}')
        MEM="$MEM""+"$(echo "$MEM_INFO" | sed "s/K/\*1024/g" | sed "s/M/\*1024\*1024/g" | sed "s/G/\*1024\*1024\*1024/g")
        CPU="$CPU""+"$(echo "$CPU_INFO" | sed "s/%//g")
        PROCESS_NB=$(($PROCESS_NB+1))
    done
    MEM=$(echo "$MEM"|bc)               # Memoire utilisee en octets
    CPU=$(echo "scale=1;$CPU"|bc)       # Cpu utilise en %

    TEXT="Status Ok"
fi


# On fait le menage
rm -f $TEMP_FILE

echo "${TEXT}|nb=${PROCESS_NB} mem=${MEM} cpu=${CPU}"
exit $STATUS

Exemple :

# ./check_process_ressources ftpd
Status Ok|nb=12 mem=50987008 cpu=0