Aller au contenu

Sujets conseillés

Posté

Hello !

J'ai un dédié chez OVH sous Debian. J'ai le minimum vital compilé, installé et configuré par mes soins (Apache, PHP, MySQL, etc.) et tout tourne à merveille. Néanmoins, mon dédié est entré depuis peu en phase "de production" et je n'ai pas encore de quoi évaluer à quel point je lui en demande beaucoup ou pas.

D'où ma venue en ces lieux : quels sont les outils de monitoring que vous utilisez pour vérifier tous les loads ? (CPU, trafic, connections, mémoire, etc.)

Attention, je ne pense pas à des outils d'affichage temps réel (comme la commande top) mais à des systèmes de logs avec historiques.

Merciiiiii

Antoine

Posté

Bonjour Antoine,

Basée sur Nagios, nous utilisons la solution Oreon :

Oreon Project

Open source, modulable et robuste (on l'a mise en prod chez un client pour monitorer un parc d'environ 300 serveurs).

Posté

Bonjour,

Il faut distinguer la supervision interne et externe.

Certes Nagios/Oreon est un bon produit mais il reste assez compliqué à comprendre et .. à mettre en place.

Pour votre information OVH propose un "petit" package pour MRTG : mrtg-sys. Il permet de superviser les éléments standard du serveur avec l'outil basic/standard MRTG.

En suite il y a la supervision externe du site web depuis une plate-forme externe afin de donner la vision internaute (en terme de dispo et de perf) du site web en question.

Il ne faut pas oublier la sauvegarde ! (avec rsync/ssh par exemple)

Bon courage.

Posté

Je plussoies concernant Oreon. Je viens de l'installer et c'est une sacré usine à gaz ! Et ce, d'autant plus que les pré-requis sont assez stricts : Apache 2.x et PHP 4.x. Concernant l'installation, mis à part un peu de tripatouillage de code, ça s'est fait assez rapidement. En revanche, pour comprendre l'interface et le fonctionnement, bah heu... faut quel diplôme ? :)

Je pense que c'est un outil adapté pour du monitoring "lourd". En ce qui me concerne, je suis un admin "simple", je veux juste suivre les éléments les plus standards sans me prendre la tête.

ozMonitor est bien, mais comme il est externe, il ne pourra pas me dire si j'abuse en mémoire ou en CPU load. Je vais jeter un coup d'oeil sur le package d'OVH et éventuellement le coupler avec ozMonitor.

En tous cas, merci à tous pour les infos.

Antoine

Posté

Salut,

Tu peux essayer d'installer sys_alive : http://scripts.twidi.com/script.cgi?script=./sys_alive.pl

En gros ça te permet de contrôler le load average, le swap, et le nombre de process, d'envoyer par mail une commande top + un server-status + la liste des process mysql au moment donné quand ça dépasse un certain seuil que tu as défini, et ça te permet également de redémarrer les process que tu veux (apache, mysql et bind de base) quand ça atteint un deuxième seuil. C'est très simple à mettre en place, ça ne consomme quasi rien en ressources et c'est plutôt pratique. Je pense aussi que c'est assez facilement customisable même si je n'ai jamais essayé. Pour pouvoir l'utiliser il te faut juste lynx, et le module server-status. Pour Debian il y a une explication pour l'installer sur le forum de sivit : http://forum.sivit.fr/viewtopic.php?id=6613 . @+

Posté (modifié)

Hello again,

Maintenant que j'ai mis en place mon système de monitoring, je vous fait un petit récapitulatif. Alors que j'étais parti pour faire du C/C++, plonger dans les entrailles du kernel, fabriquer des daemon à coups de GCC, et tout le toutim... je me suis rendu compte que c'est autrement plus simple, voire enfantin. :)

Comme beaucoup de choses sous Linux, il s'agit d'utiliser les outils existants et de les combiner entre eux afin d'obtenir ce qui nous intéresse. Et la structure hyper modulaire du système est vraiment adaptée à ce genre de jonglage. Ca peut paraître un peu "bancal" au début, mais finalement ça marche bien.

Personnellement, j'ai tout basé sur MRTG.

Le principe du monitoring avec un outil comme MRTG est vraiment très basique. MRTG est juste un soft dont le rôle est de générer des images de graphiques à partir de données qu'on lui donne à intervalle régulier. Un fichier de configuration permet d'indiquer comment obtenir les les données et comment les afficher.

Le fichier de configuration comprend notamment la commande à appeler pour obtenir les données à l'instant t. Et sous quelle forme doivent être les données ?

Première ligne : valeur 1

Deuxième ligne : valeur 2 (pour un graphique à double courbes)

Troisième ligne : uptime des données (temps de fonctionnement)

Quatrième ligne : nom de la source de données

Les deux dernières lignes n'ont rien à voir avec les calculs. C'est juste pour afficher "La source de données était alors en marche depuis uptime"

Maintenant que l'on sait comment donner à manger à MRTG, il faut savoir où aller chercher les données. Et là encore, on ne se complique pas la vie : on utilise les outils Linux qui retournent des informations en texte et on va pêcher ce dont on a besoin. Exemple concret, obtenir un graphique de l'espace disque restant au cours du temps.

Sous Linux c'est la commande "df -h" qui indique l'espace disque sous forme "human readable" en retournant ce texte :

Filesystem            Size  Used Avail Use% Mounted on
/dev/hda1             3.0G  2.8G   99M  97% /
/dev/hda2              34G   33M   32G   1% /home

Par un quelconque moyen on va récupérer le nombre qui nous intéresse. La plupart des scripts utilisent du Perl, mais rien n'empêche de passer par du PHP ou du C. C'est une question de goût. Voici un petit exemple (vite et mal codé) en php :

<?php
exec("df -h",$res);
$line = $res[2];
$t = split(" ",$line);

$j = 0;
for($i=0; $i < count($t); $i++)
{
 if ( $t[$i] != "" )
 {
       if ( $nchamp == 4 )
       {
         break;
       }
   $nchamp++;
 }
}

sscanf($t[$i],"%d%%",$avail);
echo $avail."\n";
echo "0\n";
echo "Espace disque restant\n";
echo "Disque hda2";
?>

Ce petit de code (immonde) récupère la sortie de la commande "df -h", prend la dernière ligne, puis extrait la valeur du champ "% Available". Et affiche ensuite les 4 lignes destinées à MRTG.

Le reste se situe au niveau de la configuration de MRTG avec notamment l'appel de la commande :

Target[monserveur_espace]: `php -f /srv/www/mrtg/df.php`

Le reste du fichier de configuration : taille du graphique, type de données (absolues, relatives, pourcentage), valeur maximum, affichage vers la droite ou la gauche, titres des abscisses et ordonnées, titres des légendes, etc, etc. Vous trouverez tout à cette adresse : http://people.ee.ethz.ch/~oetiker/webtools...ference.en.html

Une fois que tout cela est mis en place, il faut exécuter MRTG à intervalle régulier, donc, typiquement, par une crontab du genre :

*/5 * * * * /opt/bin/mrtg/bin/mrtg /srv/www/mrtg/mrtg.cfg

Pour conclure : il suffit d'extrapoler pour avoir des graphs sur tout et n'importe quoi. Vous trouvez facilement des scripts tout fait (en perl) pour les informations standards (CPU, mémoire, connexion TCP, etc.) mais rien ne vous empêche de générer vos propres graphiques qui correspondent à vos besoins spécifiques : graphs de ventes, cpu d'un user particulier, requêtes sql, etc.

Antoine

Modifié par AntoineViau
Posté (modifié)

slt

pour ceux qui ne veulent pas ou ont pas le temps de coder..

il y a aussi des outils tels que cacti qui permettent d'avoir un etat du serveur via SNMP...

sinon je confirme, Nagios est un excellent produit, mais plus pour un serveur dedie au monitoring de plusieurs autres serveurs.

l'interface Oreon permet de simplifier grandement son administration.

Modifié par glibre
Posté

Bonjour,

En effet, Cacti est beaucoup plus simple, mais ... il consomme un peu :-(

Attention a l'utilisation du snmp sur un serveur dédié accessible sur le Net !

A mon avis, n'utilisez que les scripts internes "simples" avec mrtg, cacti ou ... cricket ...

Cordialement,

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...