Net-snmp
Un article de Wiki SOS-ADMIN.
Sommaire |
Compréhension et installation de Net-SNMP
Le but de ce wiki est de vous donner les clefs pour installer le daemon snmpd sur vos serveurs en quelques minutes. Dans un autre article, je vous proposerai d'utiliser cacti pour récupérer ces informations.
Comprendre le protocole SNMP
SNMP signifie Simple Network Management Protocol
Comment ça marche SNMP, RFC SNMP
SNMP utilise le protocole UDP (protocole non connecté, sans contrôle d'erreur) sur le port 161
Comment ça marche UDP, RFC UDP
Installer Net-SNMP
Vous trouverez la documentation (en anglais) ainsi que les sources ici
Pour installer sur une gentoo
emerge net-analyzer/net-snmp rc-update add snmpd default
C'est tout pour gentoo :o) Glissez ici : Configurer Net-SNMPD.
Pour installer sur une debian
apt-get install snmpd
C'est tout pour debian :o) Glissez ici : Configurer Net-SNMPD.
Pour installer sur un système redhat (version dite '7.2' d'un hébergeur français par exemple)
cd /usr/src/ wget http://prdownloads.sourceforge.net/net-snmp/net-snmp-5.3.pre4.tar.gz?download tar -zxf net-snmp-5.3.pre4.tar.gz rm -f net-snmp-5.3.pre4.tar.gz cd net-snmp-5.3.pre4 #compilation par defaut (modifiez les quelques paramètres) ./configure \ --with-default-snmp-version="3" \ --with-sys-contact="adresse_email@domaine.com" \ --with-sys-location="nsxxx at xxx" \ --with-logfile="/var/log/snmpd.log" \ --with-persistent-directory="/var/net-snmp" make && make install
Il faut ensuite créer le script pour démarrer snmtpd, copiez le texte ci-dessous et enregistrez le dans /etc/init.d/snmpd
#!/bin/sh
#
# snmpd This shell script takes care of starting and stopping
# the net-snmp SNMP daemon
#
# chkconfig: - 26 74
# description: snmpd is net-snmp SNMP daemon.
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0
RETVAL=0
name="snmpd"
prog="/usr/local/sbin/snmpd"
[ -x $prog -a -f /etc/snmp/snmpd.conf ] || exit 0
start() {
# Start daemons.
echo -n $"Starting $name: "
daemon $prog -c /etc/snmp/snmpd.conf
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/$name
return $RETVAL
}
stop() {
# Stop daemons.
echo -n $"Shutting down $name: "
killproc $prog
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$name
return $RETVAL
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status $name
RETVAL=$?
;;
restart|reload)
stop
start
RETVAL=$?
;;
condrestart)
if [ -f /var/lock/subsys/$name ]; then
stop
start
RETVAL=$?
fi
;;
*)
echo $"Usage: $0 {start|stop|restart|condrestart|status}"
exit 1
esac
exit $RETVAL
Modification des droits
chown root:root /etc/init.d/snmpd chmod 755 /etc/init.d/snmpd
Pour que snmpd démarre automatiquement lors du boot :
chkconfig --add snmpd
Configurer Net-SNMPD
Editons le fichier de configuration :
nano /etc/snmp/snmpd.conf
syslocation "nsxxx at xxx"
syscontact "adresse_email@domaine.com"
com2sec privateUser localhost private
com2sec privateUser 82.243.x.x private
com2sec privateUser 82.243.y.y private
group privateGroup v2c privateUser
view all included .1
access privateGroup "" any noauth exact all none all
Ce fichier de configuration est trés simple, il donne tout les droits en lecture à la communauté 'private' depuis localhost, 82.243.x.x et 82.243.y.y .
Le protocole 2 est obligatoire (v2c dans le fichier de configuration).
Personne n'a le droit de lire depuis une autre machine et encore moins d'écrire. Par contre au niveau sécurité cela est à peu près équivalant à 0. Le configuration du protocole en version 3 pourrait améliorer un petit peu les choses mais je n'ai pas compris comment faire.
Il ne reste plus qu'à lancer le service :
#/etc/init.d/snmpd start Starting snmpd: [ OK ] #
Vérifions ça cela fonctionne :
snmpwalk -v 2c -c private localhost .1
Vous devez recevoir quelques milliers de lignes car nous avons demandé à recevoir à partir de .1
Mais heureusement nous pouvons demandes de commencer à un endroit plus précis de l'arborescence, voire même à ne recevoir qu'une seule information. Le kernel par exemple :
#snmpwalk -v 2c -c private localhost .1.3.6.1.2.1.1.1 SNMPv2-MIB::sysDescr.0 = STRING: Linux nsxxxx 2.4.31grs-piv-ipv4 #1 Fri Sep 2 15:01:46 CEST 2005 i686
Malgré les quelques 5000 lignes retournées, peu d'informations nous sont utiles. Nous verrons dans le prochain épisode comment ajouter un programme pour surveiller des logiciels et en particulier mysql.

