Surveillance de l'utilisation de la mémoire
Je suis plutôt d'accord avec l'un des messages précédents qui mentionnait Cacti comme un excellent moyen de surveiller l'utilisation de la mémoire. Cependant, comme il semble que Cacti ne soit plus populaire dans le grand public, il existe une autre application graphique appelée Graphite.
Graphite est relativement facile à installer sur un serveur ubuntu et pour l'installer, vous pouvez consultez ce lien pour les procédures d'installation faciles à suivre.
Une fois graphite installé, vous pouvez lui envoyer des mesures de la mémoire, à l'intervalle de votre choix : toutes les 5 secondes, toutes les minutes, toutes les heures... etc.
Pour représenter graphiquement les métriques de la mémoire, comme déjà suggéré dans les posts précédents, vous pouvez écrire votre propre script en utilisant les outils du système pour rassembler les informations nécessaires sur la mémoire. Ou bien, vous pouvez utiliser un plugin snmp pré-écrit qui fera tout le travail pour vous.
Si vous souhaitez écrire votre propre script, il sera judicieux de vous assurer que vous tenez compte de la mémoire tampon et de la mémoire cache lors du calcul de la mémoire utilisée, sinon, vous finirez par recueillir des données erronées.
Si vous souhaitez plutôt utiliser un plugin snmp qui fait déjà tous les calculs nécessaires pour vous, voici un lien vers un qui fonctionne assez bien : checkMemoryviaSNMP .
Les avantages de SNMP :
J'ai installé snmp sur tous les nœuds distants que je surveille. Cela me permet de surveiller tous mes systèmes depuis un ou plusieurs serveurs centraux sans avoir à copier ou à installer un plugin sur les nœuds distants.
Les inconvénients de SNMP :
Vous devez vous assurer que le agent snmp est installé sur chacun des nœuds distants sur lesquels vous souhaitez surveiller la mémoire. Cependant, cette installation ne se fera qu'une seule fois. Si vous utilisez des outils d'automatisation tels que chef ou Puppet ou des outils similaires dans votre environnement, ce n'est pas un problème du tout.
Configuration de l'agent SNMP sur le(s) nœud(s) distant(s) :
Après l'installation de l'agent snmp, il suffit de vi le fichier /etc/snmpd/snmpd.conf et d'y ajouter cette ligne :
rocommunity (specify-a-community-string-aka-password-here)
Puis redémarrez l'agent snmpd, avec :
/etc/init.d/snmpd restart
Ensuite, sur votre serveur central, à partir duquel vous souhaitez surveiller tous vos autres serveurs, vous pouvez exécuter la commande suivante :
$ time ./checkMemoryviaSNMP -v2 public gearman001.phs.blah.com 30 90 graphite,10.10.10.10,2003,typical
WARNING: Used = [ 3.26154 GB ], Installed = [ 5.71509 GB ], PCT.Used = [ 57.069% ], Available.Memory = [ 2.00291 GB ]. Buffer = [ 137.594 MB ], Cached = [ 1.3849 GB ]. Thresholds: [ W=(30%) / C=(90%) ]. System Information = [ Linux gearman001.phs.blah.com 2.6.32-504.30.3.el6.x86_64 #1 SMP Thu Jul 9 15:20:47 EDT 2015 x86_64 ].
real 0m0.23s
user 0m0.03s
sys 0m0.02s