Warning: chmod() [function.chmod]: Operation not permitted in /home/about-gnulinux.info/dotclear/inc/clearbricks/common/lib.files.php on line 313

A propos de GNU/Linux

Blog parlant technique au sujet des systèmes libres GNU/Linux.

Monitoring efficace avec Mon - Alertes via mail

Voici un petit logiciel bien sympa que je viens de découvrir. Il permet de faire du monitoring ("surveillance" en français) efficace sur différents services sur différents serveurs.

Son installation sous debian et sa configuration sont très simples une fois le principe de configuration compris !

Nous allons dans ce qui suit surveiller le serveur B, à partir du serveur A.

I - Installation du paquet sur le serveur A

Via aptitude :

aptitude install mon

II - Configuration sur le serveur A

Le fichier de configuration est : /etc/mon/mon.cf

Alors commençons par le début :

alertdir = /usr/lib/mon/alert.d

ici se trouvent les templates pour le mail (par exemple) "type" envoyé pour les alertes

mondir = /usr/lib/mon/mon.d

se trouvent ici les codes sources des alertes (allez y jetter un oeil !)

logdir = /var/log/mon

le repertoire de log

Maintenant, nous devons créer un "host" (le serveur à surveiller) que nous allons appeler TESTB avec pour ip : 192.168.1.5

hostgroup TESTB 192.168.1.5

La configuration de cet host commence ici, nous enchainons deux services, ping du serveur + vérification du service FTP du serveur distant :

watch TESTB
  service ping
      interval 15s
      monitor ping.monitor
      period wd {Mon-Sun}
         alert mail.alert -S "The serve is down !" VOTRE_EMAIL
         upalert mail.alert -S "The server is now up !" VOTRE_EMAIL
         alert hb_standby
         alertafter 5s
         alertevery 10m
  service ftp
       interval 30s # intervalle entre chaque vérification 
       monitor ftp.monitor -p 21 TESTB.org # le port + l'adresse du FTP
       period wd {Mon-Sun} # surveillance du lundi au dimanche
       alert mail.alert -S "The FTP server is down !" VOTRE_EMAIL, VOTRE_SECOND_EMAIL
       alert hb_takeover
       upalert mail.alert -S "The FTP server is now up" VOTRE_EMAIL, VOTRE_SECOND_EMAIL
       alertafter 5s # alerter 5 secondes après la vérification (que le service soit devenu down ou up)
       alertevery 10m # alerter toutes les 10 minutes si le service est down

Attention, j'ai eu le droit à un problème de taille : les services que j'ai mis dans le fichier de conf n'étaient pas surveillés pour la bonne raison qu'il ne faut apparemment pas séparer les lignes (il faut tout coller, comme dans mon exemple). D'ailleurs, un résumé du fichier de configuration est disponible .

Mon fichier de configuration est ici plus que court, mais libre à vous d'ajouter des services en allant jetter un coup d'oeil dans le dossier "/usr/lib/mon/mon.d" ! D'ailleurs pour ce qui est des alertes, j'ai lu qu'il était peut-être possible de lançer des scripts (un script pour envoyer un sms ?), à approfondir...

précédemment

Afficher toutes les requêtes lancées sur les bases MySQL

Voici une petite astuce bien utile, il est tout à fait possible d'obtenir via des fichiers de logs toutes les requêtes qui ont été lancées sur les bases MySQL. L'astuce se trouve dans le fichier de configuration principal de MySQL, mais elle est par défaut commentée.

Ouvrez donc votre fichier /etc/mysql/my.cnf, puis, décommentez ceci pour voir toutes les requêtes :

log             = /var/log/mysql/mysql.log

Pour voir les requêtes prenant beaucoup de temps pour être totalement executées (les requêtes lentes) :

log_slow_queries        = /var/log/mysql/mysql-slow.log

Par contre, si vous n'en avez pas besoin, n'activez pas, car si vous avez beaucoup de requêtes, vos logs vont être vite lourds.

Problèmes de dépendances avec aptitude

Si vous rencontrez des soucis avec aptitude/apt au niveau des dépendances logicielles (parce que vous avez fait un peu n'importe quoi, ou suite à une mise à jour ratée), il existe plusieurs solutions, plus ou moins radicales.

Voici le problème rencontré pour ma part en essayant d'installer mplayer (mais ça arrive aussi avec n'importe quel autre paquet) :

# aptitude install mplayer
The following packages are BROKEN:
  libavcodec52 mencoder 
The following NEW packages will be installed:
 libbs2b0{a} libcelt0-0{a} libdirac-decoder0{a} libdirac-encoder0{a} libdirectfb-1.2-9{a} libfaad2{a} libggi-target-x{a} libggi2{a} libggiwmh0{a} 
 libggiwmh0-target-x{a} libgii1{a} libgii1-target-x{a} libopencore-amrnb0{a} libopencore-amrwb0{a} liborc-0.4-0{a} libvdpau1{a}  libx264-92{a} mplayer 
The following packages will be REMOVED:
 acl{u} comerr-dev{u} evince{u} evolution{u} evolution-common{u} evolution-webcal{u} gnome-panel-dbg{u} gnome-pilot{u} gnome- pilot-conduits{u} 
 gstreamer0.10-gnomevfs{u} gstreamer0.10-plugins-base-dbg{u} gstreamer0.10-plugins-ugly-dbg{u} kaboom{u} kde-icons-oxygen{u}  kdebase-runtime-data{u} 
 kdelibs-bin{u} kdelibs5{u} kdelibs5-data{u} latex-xft-fonts{u} libatk1.0-dbg{u} libatspi-dbg{u} libclucene0ldbl{u} libcups2-dev{u}  libdb4.6-java{u} 
 [BLABLA, des centaines de paquets listés]
The following packages will be upgraded:
  libjack0 
1 packages upgraded, 18 newly installed, 149 to remove and 336 not upgraded.
Need to get 9640kB of archives. After unpacking 694MB will be freed.
The following packages have unmet dependencies:
  mencoder: Depends: libdirac0 (>= 1.0.2) but it is not installable
  libavcodec52: Depends: libdirac0 (>= 1.0.2) but it is not installable
The following actions will resolve these dependencies:

Plusieurs remèdes sont possibles après un bon aptitude update : aptitude upgrade apt-get upgrade (ou si ça ne fonctionne pas) apt-get -f install (idem)

Si cela ne fonctionne vraiment pas, alors voici une bonne solution :

aptitude -Pv full-upgrade

Tous les problèmes de dépendances seront résolus ainsi que tous les paquets seront mis à jour. Direction le man d'aptitude pour les options, concernant l'option full-upgrade, elle est en fait un peu plus radicale qu'un simple "aptitude upgrade", bien utile ! (c'est fait sur une sid, donc c'est vraiment pratique)

Des commandes bash pures et dures

Je trouve que beaucoup d'utilisateurs de bash ne connaissent pas certaines astuces utiles liées à des commandes usuelles, parce qu'elles ne sont pas assez mises en avant dans les documentations. Nous allons donc voir ici quelques commandes/astuces bash que tout le monde ne connait pas.

Les expressions : utlisation de "?" :

  • Afficher tous les répertoires/fichiers comportant un seul caractère après le point :
ls *.? # ajoutez autant de "?" que vous souhaitez (??? pour trois caractères)
  • Afficher tous les répertoires/fichiers comportant 5 caractères :
ls ? # adaptez le nombre de "?"
  • Afficher tous les fichiers/répertoires dont le nom débute par "a" ou "b" :
ls [ab]* # vous pouvez remplacer les lettres, et même en ajouter/supprimer

Redirections :

  • Rediriger les erreurs renvoyées par une commande :
macommande 2> erreur.file # vous pouvez faire 2>> pour ne pas écraser le erreur.file si il existe
  • Rediriger les erreurs renvoyées par une commande vers "nul part" :
macommande 2> /dev/null
  • Rediriger le résultat d'une commande dans un fichier qui n'existe pas :
 ls | tee my_file

ou

 ls > my_file
  • Rediriger le résultat d'une commande dans un fichier qui existe (on veut concaténer) :
 ls | tee -a my_file

ou

 ls >> my_file
  • Rediriger le résultat de plusieurs commandes dans un fichier, en restant dans le shell courant :
(cd /root/ ; pwd ; ls) > file
  • Rediriger le résultat de plusieurs commandes dans un fichier, en allant dans /root :
{ cd /root/ ; pwd ; ls ;} > file

Voilà globalement des astuces bien utiles mais trop peu utilisées !

Faire du multi-écrans avec xrandr

Vous allez voir dans cet article comment utiliser deux écrans affichant la même chose avec un même écran (c'est ce que nous appellons le "multi-écrans"). Nous allons utiliser xrandr, ce dernier est normalement déjà sur votre système.

Hypothèses : vous avez un pc portable (ou de bureau) avec un écran, et vous souhaiteriez y ajouter un second écran affichant les mêmes choses. Tout peut être fait en tant que simple utilisateur.

Obtenir des informations sur l'écran de votre pc portable :

xrandr

Voici la sortie de la commande :

$ xrandr 
Screen 0: minimum 320 x 200, current 1280 x 1024, maximum 1600 x 1600
VGA disconnected (normal left inverted right x axis y axis) 338mm x 270mm
LVDS connected 1280x800+0+0 (normal left inverted right x axis y axis) 331mm x 207mm
  1280x800       60.0*+   60.0  
  1280x768       60.0  
  1024x768       60.0  
  800x600        60.3  
  640x480        59.9  
TV disconnected (normal left inverted right x axis y axis)

LVDS : ceci représente l'écran du pc..
VGA : ceci représente le second écran (pas encore branché).

Ajouter le second écran :

Nous allons ajouter le second écran. Le premier et le second n'ont pas la même résolution (dans mon cas). Je dois donner deux résolutions différentes aux écrans. A noter que vous ne pouvez ajouter que les résolutions indiquées avec la commande "xrandr". Une commande suffit :

xrandr --output VGA --mode 1280x1024 --output LVSD --mode 1280x768

Détails :

--output VGA --mode 1280x1024

Ceci est pour la résolution du second écran.

 --output LVSD --mode 1280x768

Ceci est pour la résolution de l'écran du pc.

Ajouter des résolutions (c'est possible !) :

Si la résolution que vous voulez n'est pas disponible, vous devez ajouter un "mode", lisez cet article (en) pour plus d'informations.

Déconnecter un écran :

Si vous ne voulez pas utiliser l'écran du pc :

xrandr --output VGA --mode 1280x1024 --output LVDS --off

Et pour le second écran :

xrandr --output LVDS --mode 1280x768 --output VGA --off

Logiciel graphique :

Un logiciel avec une interface graphique pour gérer tout cela est disponible : lxrandr.