Supervision des process actifs

De la même façon que je voulais une supervision du nombre de sessions ouvertes sur mes serveurs distants, je voulais aussi superviser le nombre de process actifs. Je suis allé au plus simple en faisant un petit script qui me remonte les informations attendues par SNMP.


#!/bin/bash
# Plugin to check the number of process on the remote system
# by ramon

######################"

HOST=$1
WARNING=$2
CRITICAL=$3

PROCESS=$(snmpwalk $HOST -c public -v 1  1.3.6.1.2.1.25.1.6.0 -OvQ)
#echo "$PROCESS"

if [ "$PROCESS" -lt "$WARNING" ]
        then
                echo "OK : $PROCESS actives process"
                exit 0;
        else
                if [ "$PROCESS" -lt "$CRITICAL" ]
                        then
                                echo "Warning : $PROCESS actives process"
                                exit 1;
                        else
                                echo "Critical : $PROCESS actives process"
                                exit 2;
                fi
fi
 

Au passage, voici la configuration de la commande et du service pour Nagios.



define command{
        command_name    check_snmp_procs
        command_line    /usr/lib/nagios/plugins/check_process.sh $HOSTADDRESS$ '$ARG1$' '$ARG2$'
        }

define service {
        hostgroup_name                  debian-servers
        service_description             check_procs
        check_command                   check_snmp_procs!160!180
        use                             generic-service
}

 


Supervision du nombre de sessions ouvertes

Voulant superviser le nombre de sessions ouvertes sur mes serveurs, j’ai cherché un plugin Nagios qui remontait cette information par SNMP. Je n’ai pas trouvé de plugin vraiment satisfaisant pour moi.

Du coup, j’ai développé un petit script pour faire le boulot.


#!/bin/bash
# Plugin to check the number of connected users on the system
# by ramon

######################"

HOST=$1
WARNING=$2
CRITICAL=$3

USERS=$(snmpwalk $HOST -c public -v 1 .1.3.6.1.2.1.25.1.5.0 -OvQ)
#echo "$USERS"

if [ "$USERS" -lt "$WARNING" ]
        then
                echo "OK : Only $USERS connected"
                exit 0;
        else
                if [ "$USERS" -lt "$CRITICAL" ]
                        then
                                echo "Warning : $USERS connected"
                                exit 1;
                        else
                                echo "Critical : $USERS connected"
                                exit 2;
                fi
fi
 

Au passage, voici la configuration de la commande et du service pour Nagios.



define command{
        command_name    check_users
        command_line    /usr/lib/nagios/plugins/check_users.sh $HOSTADDRESS$ '$ARG1$' '$ARG2$'
        }

define service{
        use                             generic-service         ; Name of service template to use
        hostgroup_name                  debian-servers
        service_description             Current_Users
        check_command                   check_users!20!50
        }