Le TwiBlog

The one with Twidi

Aller au contenu | Aller au menu | Aller à la recherche

jeudi 4 décembre 2008

sys_alive 1.5.3 ajout d'alertes sur la ram utilisée

J'ai oublié d'écrire ici pour parler de la version 1.5.3 de sys_alive, petite mise à jour qui consiste à ajouter des seuils (pour les alertes de niveau 1 et 2) concernant la mémoire réellement utilisée (ne tenant pas compte du cache par exemple)

Pour cela il suffit de rajouter, dans la conf, la clé ram_used dans %seuil_alertes et %seuil_alertes_niveau2, en indiquant une quantité de RAM en ko

lundi 26 novembre 2007

sys_alive 1.5.2 : correction d'un bug bloquant

Dans la version précédente de sys_alive, avec le système forçant de manière brutale la fin d'un démon qui ne voulait pas s'arrêter, j'ai rendu l'arrêt de mysql terriblement mauvais pour lui-même.

En effet il lui fallait alors un bon paquet de minutes avant de redémarrer, devant reconstruire je ne sais plus quel fichier dont il avait besoin.

J'ai donc rajouté un bloc dans la configuration (demons_brute_stop) qui permet de spécifier pour quels démons on utilise cette fonctionnalité, et combien de tentatives auront lieu au maximum.

J'en ai profité pour rajouter une ligne dans le bloc des process à ne pas tuer si trop long (process_to_keep) :

'sys_alive', # on ne kill pas sys_alive

Voilà tout.

jeudi 22 novembre 2007

Passage en version 1.5.1 de sys_alive : mode demon amélioré

Très peu de temps après la version 1.5, sys_alive passe en version 1.5.1

Pas de gros changements dans cette version, juste quelques petits remaniements dans le fonctionnement du mode démon pour que sys_alive puisse être utilisé dans les scripts de démarrage de linux (sous debian, ubuntu... : /etc/init.d/sys_alive.pl et /etc/rcX.d/Ssys_alive.pl via update-rc.d)

Je renseignerai prochainement le wiki du trac associé à sys_alive pour expliquer tout ça plus en détail, sachez juste qu'en mode demon, sys_alive se lance avec comme paramètre start ou stop.

PS : le téléchargement se passe sur http://scripts.twidi.com

mercredi 21 novembre 2007

sys_alive passe en version 1.5 : fonctionnement mode demon, et mise en place de trac

sys_alive passe en version 1.5 (téléchargeable sur http://scripts.twidi.com)

Au menu des nouveautés :

  • fonctionnement possible en mode démon à la place du mode cron
  • force l'arrêt de certains démons qui n'auraient pas été stoppés correctement via l'appel de la commande en conf
  • mise en place de trac (sys_alive étant géré via svn depuis la version 1.2.8)

A propos du mode démon

sys_alive tournait jusque là en cron toutes les minutes (ou autre selon votre paramétrage). Ce qui induisait, chaque minute, un process cron et un process perl...

Finalement, un sys_alive qui tourne en démon a plusieurs avantages :

  • moins de process, donc moins de charge induite (notamment en cas de forte charge du serveur, j'ai déjà vu une bonne vingtaine de cron et de perl+sys_alive tourner)
  • paramétrage du délai plus fin (par défaut à 60 secondes, peut être changé en conf)

La contrepartie c'est que maintenant sys_alive a besoin de deux modules perl : Proc::Daemon et File::Pid (disponibles tous les deux via cpan)

Au niveau de la configuration, un bloc a été rajouté :

 %mode_demon = (
   'actif'    => 1,                            # 0 pour fonctionnement classique en cron, 1 pour fonctionnement en demon
   'pid_file' => '/var/run/sys_alive.pid',     # emplacement du fichier pid (
   'wait'     => 60,                           # délai (en secondes) d'attente entre deux analyses
 );

PS : ce mode démon m'a donné plein d'idées pour une version 2 ;)

dimanche 2 septembre 2007

Récupérer la liste des modules perls à installer

Réinstallant une machine, j'ai eu besoin de connaître tous les modules perl à réinstaller.

Quelques find, grep et sed suffisent :

find ./ \( -name '*.pm' -or -name '*.pl' -or -name '*.cgi' \) -exec grep -io '\(^\|\s\|;\)use\s\(\w\+::\)*\w\+' {} \; | grep -v 'use \(Exporter\|Carp\|constant\|lib\|vars\|base\|POSIX\|strict\)$' | sed "s/^[[:space:]]*use[[:space:]]*//i" | sort | uniq

De là vous faut retirer vos propres modules.

lundi 7 mai 2007

Petites modifications de sys_alive

sys_alive passe en version 1.2.8 avec quelques petites modifications :

  • possibilité de stocker les fichiers de conf, data et log dans des répertoires séparés
  • affichage par défaut du résultat de "ps faux" au lieu de "top" dans le mail d'alerte (commande entièrement modifiable en configuration)

Pour rappel, sys_alive est un outil (script perl) de surveillance de serveur web linux, développé dans le but de maintenir un serveur "en vie", téléchargeable ici

mardi 22 août 2006

sys_alive, version 1.2.7

sys_alive est mis à jour et passe à la version 1.2.7

Cette nouvelle version corrige un bug présent uniquement avec les noyaux 2.6. En effet, le changement de format du fichier /proc/meminfo (en fait la suppression des trois premières lignes) rendait toute la partie "gestion de la mémoire" complètement inopérante. J'ai donc recodé la partie analysant /proc/meminfo de telle sorte que ce soit compatible avec les noyaux 2.4 et 2.6.

J'en ai profité pour refaire la tabulation du script, et pour passer les fichiers .conf et .pl en UTF8.

Le téléchargement se fait toujours à l'adresse suivante : http://scripts.twidi.com/script.cgi ?script=./sys_alive.pl

sys_alive : surveillance de serveur web

sys_alive est un outil (script perl) de surveillance de serveur web linux, développé dans le but de maintenir un serveur "en vie" en réalisant les tâches suivantes :

  • envoi d'alerte (mail, sms) en cas de surcharge (load average, swap ou nombre de process) avec nombre d'informations nécessaires (cause de l'alerte, process en cours, état de la mémoire, état d'apache et de mysql, dernières lignes du fichier log)
  • second niveaau d'alerte avec arrêt de certains serveurs (par exemple apache, mysql) pour une durée définie à l'avance dans un fichier de configuration complet et documenté
  • en temps normal, relance les serveurs absents (suite par exemple à un plantage de apache, ce dernier sera relancé)
  • arrête les process trop long (utile sur un serveur d'hébergement par exemple pour éviter les scripts clients trop gourmand en temps CPU)
  • enregistre en log toutes les actions effectuées

Ce script est utilisé depuis des années sur tous mes serveurs, en production ou non, ainsi que par plusieurs autres personnes d'origines diverses.

Vous trouverez cet outil sous license GPL à l'adresse suivante : http://scripts.twidi.com/script.cgi?script=./sys_alive.pl

lundi 14 novembre 2005

Apache et mod_perl sous debian : probleme avec Apache::Request (libapreq.so)

Entamant le développement d'un nouveau projet, j'ai passé le week-end à lire la doc de mod_perl (enfin plutôt le "guide"), et à expérimenter tout ça.

Bien sur, comme d'habitude, rien ne marche parfaitement du premier coup.

Le paquet debian (ou tout du moins ubuntu breezy) du module Apache::Request (qui permet notamment de récupérer les paramètres GET et POST à la manière du module CGI) ne marche pas.

Voici l'erreur obtenue quand on veut l'utiliser :

Can't load '/usr/lib/perl5/auto/Apache/Request/Request.so' for module Apache::Request: libapreq.so: cannot open shared object file: No such file or directory at /usr/lib/perl/5.8/DynaLoader.pm line 225. at /usr/lib/perl5/mod_perl.pm line 14

La solution est la suivante : désinstaller le paquet libapache-request-perl et installer via CPAN le module Apache::libapreq

Il est nécessaire d'avoir le paquet debian apache-dev d'installé sinon la compilation via CPAN ne fonctionnera pas.