Statistiques

Compteur d'affichages des articles
1095555

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.

Menu Collection Methods

Page Data Input Methods

Cliquer sur Add.

Création Data Input Method

 

 

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.

Méthode créée

 

Nous allons maintenant créer les Input Fields.

Pour cela, cliquer sur Add dans le bandeau bleu Input Fields.

Input Filed hostaname

 

Le premier champ doit être le hostname. Cliquer sur Create.

Répéter l'opération pour le deuxième champ snmp_community.

snmp_community

 

Nous allons maintenant voir les champs de sortie.

En cours de création

Cliquer sur Add dans le bandeau bleu Output Fields.

Champ memAvailReal

 

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.

Fin de création

Votre méthode est maintenant créée.

6 - Création du Data Template

Menu Templates

Cliquer sur Data Templates.

Ajout Data Template

 

Cliquer sur Add pour créer un nouveau template.

Création du Data Template

 

Renseigner les champs comme ci-dessus et cliquer sur Create.

Data Template en création

 

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 :

Data Template Final

 

Voila le Data Template TS209_Memory.

7 - Création du Graph Template

Menu Templates

Cliquer sur Graph Templates.

Ajout du Graph Template

 

Cliquer sur Add.

Création du Graph Template

 

Seuls les champs Name et Title ont besoin d'être renseignés ou modifiés.

Cliquer sur Create.

Début de création du Graph Template

 

Nous allons maintenant définir les données d'affichage en cliquant sur Add dans le bandeau bleu Graph Template Items.

Item 1

 

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.

Impression de la dernière valeur

 

Cela affichera la dernière valeur de la mémoire totale.

Valeur minimale

Cela affichera la valeur la plus faible de la mémoire totale.

Valeur Maximale

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 :

 Free Real Memory

Le Graph Item Type doit être STACK.

La seconde concerne la mémoire totale libre.

Free Memory

 

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.

Graph Template fini

 

Cela nous donne la configuration ci-dessus.

8 - Rattachement du graphique à une machine

Menu Management

Pour créer une machine, cliquer sur Devices.

 Partie Devices

Cliquer sur Add.

Création du device

 

Renseigner le nom et l'adresse IP et ne pas choisir de Host Template.

Cliquer sur Create.

Device créé

 

Cliquer sur Create Graphs for this Host.

Choix du graphique

 

Choisir le template créé plus haut et cliquer sur Create.

Dans le menu Management cliquer sur Graph Trees.

Ajout d'une branche

 

Cliquer sur Add.

Création de l'arborescence

 

Saisir un nom et cliquer sur Create.

Dans le menu Management cliquer sur Graph Management.

Déplacement du graphique

Sélectionner le graphique, choisir la destination dans la liste déroulante et cliquer sur Go.

Avertissement

 

Cliquer sur Continue.

Allons voir notre graphique.

Menu du haut

 

Cliquer sur graphs.

 Menu de vos graphiques

Cliquer sur TS209.

Graphique de la mémoire du Qnap

 

Voila le graphique au bout de plusieurs cycles.