1 - Préambule
Nous allons voir dans cet article comment superviser la mémoire de notre serveur Nas Qnap TS-209.
La méthode employée doit servir de base de travail pour votre cas personnel.
2 - Pré-requis
Nous avons besoin d'un serveur Cacti, dans cet article nous utiliserons notre serveur EON.
L'installation de EON 3.1 est décrite ici : Installation EON V3.1
Sa customisation ici : Customisation EON 3.1.
L'installation de net-snmp sur le Qnap TS-209 : Qnap TS-209 SNMP.
3 - OID utilisées
Nous utiliserons le résultat de la requête SNMP sur l'OID : .1.3.6.1.4.1.2021.4
C'est une suite de valeur qui correspond à la gestion de la mémoire par le Qnap TS-209 avec net-snmp.
Si nous lançons la commande : snmpwalk -v1 -c EyesOfNetwork 192.168.0.213 .1.3.6.1.4.1.2021.4
Le résultat est :
UCD-SNMP-MIB::memIndex.0 = INTEGER: 0
UCD-SNMP-MIB::memErrorName.0 = STRING: swap
UCD-SNMP-MIB::memTotalSwap.0 = INTEGER: 530040
UCD-SNMP-MIB::memAvailSwap.0 = INTEGER: 529912
UCD-SNMP-MIB::memTotalReal.0 = INTEGER: 126208
UCD-SNMP-MIB::memAvailReal.0 = INTEGER: 2024
UCD-SNMP-MIB::memTotalFree.0 = INTEGER: 531936
UCD-SNMP-MIB::memMinimumSwap.0 = INTEGER: 16000
UCD-SNMP-MIB::memBuffer.0 = INTEGER: 35604
UCD-SNMP-MIB::memCached.0 = INTEGER: 26052
UCD-SNMP-MIB::memSwapError.0 = INTEGER: 0
UCD-SNMP-MIB::memSwapErrorMsg.0 = STRING:
Nous voyons qu'il y a comme données :
- memTotalSwap = la taille de la mémoire swap
- memAvailSwap = la taille de la mémoire swap non utilisée
- memTotalReal = la taille de la mémoire Real
- memAvailReal = la taille de la mémoire Real non utilisée
- memTotalFree = le total de la mémoire non utilisée
- memBuffer = la taille du buffer utilisé
- memCached = la taille de la mémoire en cache
Il nous manque la taille de la mémoire totale que l'on peux obtenir en additionnant memTotalSwap avec memTotalReal.
4 - Script utilisé
Nous allons écrire un script qui va lancer cette commande snmpwalk et formater les valeurs en sortie pour quelles soient utilisables par Cacti.
#!/bin/bash # by Gmarin <www.prestaopen.com> # version 1.0 declare -a memIndex=(); memIndex=`snmpwalk -v 2c -c $2 $1 .1.3.6.1.4.1.2021.4 -OQv`; for i in ${memIndex[@]}; do memIndex=("${memIndex[@]}" "$i"); done; memtotal=$(( ${memIndex[3]} + ${memIndex[5]})); memIndex=("${memIndex[@]}" "${memtotal}" ) printf "memAvailReal:${memIndex[6]} memAvailSwap:${memIndex[4]} memBuffer:${memIndex[9]} memCached:${memIndex[10]} memTotal:${memIndex[12]} memTotalFree:${memIndex[7]}\n" ;
Explications :
declare -a memIndex=(); = Déclaration d'une variable tableau.
memIndex=`snmpwalk -v 2c -c $2 $1 .1.3.6.1.4.1.2021.4 -OQv`; = la variable memIndex est égale au résultat de la commande. $1 est l'adresse IP du Qnap. $2 est la communauté utilisée.
for i in ${memIndex[@]};
do memIndex=("${memIndex[@]}" "$i");
done; = On rempli le tableau avec les valeurs du résultat.
memtotal=$(( ${memIndex[3]} + ${memIndex[5]})); = On défini la valeur de la taille totale de la mémoire.
memIndex=("${memIndex[@]}" "${memtotal}" ) = on insère cette valeur dans la tableau.
printf "memAvailReal:${memIndex[6]} memAvailSwap:${memIndex[4]} memBuffer:${memIndex[9]} memCached:${memIndex[10]} memTotal:${memIndex[12]} memTotalFree:${memIndex[7]}\n" ; = On formate les valeurs pour Cacti en piochant dans le tableau.
Ce script est à copier dans le répertoire Scripts de Cacti sur votre serveur.
5 - Création Data Input Method
Dans Cacti, cliquer sur Data Input Methods.
Cliquer sur Add.
Renseigner le nom de la méthode, choisir comme type Script/Command et saisir la commande : <path_cacti>/scripts/snmp_ts209.sh <hostname> <snmp_community>
Cliquer sur Create.
Nous allons maintenant créer les Input Fields.
Pour cela, cliquer sur Add dans le bandeau bleu Input Fields.
Le premier champ doit être le hostname. Cliquer sur Create.
Répéter l'opération pour le deuxième champ snmp_community.
Nous allons maintenant voir les champs de sortie.
Cliquer sur Add dans le bandeau bleu Output Fields.
Donner comme nom le nom du champ de votre script et donner une explication.
Cliquer sur Create.
Refaire cette manipulation pour toutes les valeurs renvoyées par le script.
Votre méthode est maintenant créée.
6 - Création du Data Template
Cliquer sur Data Templates.
Cliquer sur Add pour créer un nouveau template.
Renseigner les champs comme ci-dessus et cliquer sur Create.
Valider le champ Output Field en choisissant la bonne valeur dans la liste déroulante et en cliquant sur Save.
Pour ajouter les autres valeurs, il suffit de cliquer sur New autant de fois que nécessaire.
Au final :
Voila le Data Template TS209_Memory.
7 - Création du Graph Template
Cliquer sur Graph Templates.
Cliquer sur Add.
Seuls les champs Name et Title ont besoin d'être renseignés ou modifiés.
Cliquer sur Create.
Nous allons maintenant définir les données d'affichage en cliquant sur Add dans le bandeau bleu Graph Template Items.
Choisir le Data Source, la couleur, le type de graphe et renseigner la zone Text Format.
Cliquer sur Create.
Cet item défini l'apparence des données graphiques de la mémoire totale.
Ajoutons l'affichage des valeurs en bas du graphique.
Cela affichera la dernière valeur de la mémoire totale.
Cela affichera la valeur la plus faible de la mémoire totale.
Cela affichera la valeur maximale de la mémoire totale. Ne pas oublier de cocher Insert Hard Return pour forcer un retour à la ligne.
Il suffit maintenant de définir les mêmes items pour les autres valeurs.
La première particularité est pour le graphique de la mémoire Real libre :
Le Graph Item Type doit être STACK.
La seconde concerne la mémoire totale libre.
Peu importe la couleur et le type de graphique, il faut définir l'opacité à 0%.
Les graphiques des mémoires cache et buffer seront de type LINE1.
Cela nous donne la configuration ci-dessus.
8 - Rattachement du graphique à une machine
Pour créer une machine, cliquer sur Devices.
Cliquer sur Add.
Renseigner le nom et l'adresse IP et ne pas choisir de Host Template.
Cliquer sur Create.
Cliquer sur Create Graphs for this Host.
Choisir le template créé plus haut et cliquer sur Create.
Dans le menu Management cliquer sur Graph Trees.
Cliquer sur Add.
Saisir un nom et cliquer sur Create.
Dans le menu Management cliquer sur Graph Management.
Sélectionner le graphique, choisir la destination dans la liste déroulante et cliquer sur Go.
Cliquer sur Continue.
Allons voir notre graphique.
Cliquer sur graphs.
Cliquer sur TS209.
Voila le graphique au bout de plusieurs cycles.