Récupérer le nombre de sessions root ouvertes sur un serveur avec SNMPv3

Introduction

Nous souhaitons savoir comment récupérer l'information du nombre de sessions root ouvertes sur un serveur Debian (SRV-WEB, 10.10.20.2) et monitorer l'information depuis un serveur de supervision (ex: Nagios, 10.10.10.4) avec SNMPv3.


Étape 1 : Préparation du script sur SRV-WEB

Configurer l'agent SNMPv3

apt update

apt install snmp snmpd -y

mv /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf.bak

Créez un nouveau fichier /etc/snmp/snmpd.conf contenant uniquement ces lignes essentielles pour SNMPv3 :

# Autoriser uniquement SNMPv3 sécurisé
agentAddress udp:161

# Création utilisateur SNMP v3 avec authentification (SHA) et chiffrement (AES)
createUser monUtilisateur SHA "MonAuthPassword" AES "MonPrivPassword"

# Définir droits d'accès pour l'utilisateur
rouser monUtilisateur priv

# Limiter l'accès SNMP uniquement depuis le serveur NAGIOS (10.10.10.4)
com2sec -Cn myContext monUtilisateur 10.10.10.4
systemctl restart snmpd
systemctl enable snmpd

Étape 2 : Préparation du script sur SRV-WEB

Créez un script shell sur le serveur SRV-WEB, par exemple /usr/local/bin/root_sessions.sh :

#!/bin/bash
who | grep -c "^root "

Rendez ce script exécutable :

chmod +x /usr/local/bin/root_sessions.sh

Étape 3 : Ajouter une configuration SNMP étendue sur SRV-WEB

Éditez votre fichier de configuration SNMP (/etc/snmp/snmpd.conf) et ajoutez-y la ligne suivante :

extend rootSessions /usr/local/bin/root_sessions.sh

Cette commande active l'extension SNMP, permettant d'exécuter ce script via SNMP.

Redémarrez ensuite le service SNMP pour appliquer la modification :

systemctl restart snmpd

Étape 4 : Vérification depuis le superviseur Nagios

Depuis votre serveur Nagios (10.10.10.4), vérifiez que l'information SNMP est accessible à distance :

snmpwalk -v3 -u monUtilisateur -l authPriv \
-a SHA -A MonAuthPassword \
-x AES -X MonPrivPassword \
10.10.20.2 NET-SNMP-EXTEND-MIB::nsExtendOutputFull

Vous devriez obtenir un résultat similaire à :

NET-SNMP-EXTEND-MIB::nsExtendOutputFull."rootSessions" = STRING: X

Étape 5 : Supervision depuis Nagios XI

Créez ensuite un nouveau service Nagios XI avec la commande suivante pour récupérer spécifiquement la valeur du nombre de sessions root ouvertes :

/usr/local/nagios/libexec/check_snmp -H 10.10.20.2 -P 3 -U monUtilisateur \
-a SHA -A MonAuthPassword \
-x AES -X MonPrivPassword \
-L authPriv -o 'NET-SNMP-EXTEND-MIB::nsExtendOutputFull."rootSessions"'

Cette commande récupère directement le nombre de sessions ouvertes en tant que root via SNMPv3.


⬆️ Retour en haut de la page