Scripts nagios - exemples
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... »)
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