Catégories: "Systèmes"

Live monitoring a web server

Today I learnt to sort of monitor my webserver live. And I learnt it the hard way... :-/

The LAMP servers kept crashing every 2 hours and I could not even log on with SSH. I had to hard reset them.

Here's how I managed to watch them dying in real time. I opened an SSH window running top -S -d 2 so I could see when the load average was going unusually high, what process was actually causing it. I was suspecting the IMAP server, but actually it was simpler than that: PHP & MySQL! :|

With a second SSH window (you HAVE to open these BEFORE things get bad or you just won't be able to log in then) I ran a tail acces_log -f on the Apache logs and I could see what requests were actually generating the high loads. 8|

It was a little tricky because those were not requests on huge PHP pages with lotsa SQL requests. No, those were rather plenty of requests on basic PHP pages with an average number of requests. It's just that at some times there were too many of the same requests (on the same tables) at the same time. :o

Well, I'm not precisely a Unix guru, so there might actually be a more efficient way to find that kind of problems... but if you can't find a better way, this one works.

Hum... something else I'd love to have would be a real time grapher that would show (in Windows) how the load average of several remote servers is evolving, and send out alerts if things get hot... Gotta look at that some day... ;)

Apple Design a encore frappé! :P

Apple Mighty Mouse

Je crois qu'on peut désormais affirmer sans trop de risques, qu'aux côtés de Jonathan Ive, Apple a définitivement réuni la meilleure team de design industriel de ce début de siècle! :yes:

Eh bien ils ont encore frappé: voici Mighty Mouse! En réponse à ceux qui réclament une souris à 2 boutons pour le Mac, Apple présente une souris sans boutons qui agit comme si elle en avait 4! Plus molette de défilement multi-directionnelle!

On peut cliquer à gauche, à droite, au mileu, sur les côtés et surtout: on peut faire défiler la petite boule grise que l'on voit sur le dessus, et ce dans n'importe quel sens, pas seulement vers le haut et le bas comme avec la plupart des souris "évolués" que nous connaiss(i)ons!

Apple avait besoin du clic droit pour convaincre les utilisateurs Windows de migrer vers le Mac. ("je sais de quoi je parle": j'ai essayé d'utiliser DreamWeaver sur le Mac de ma copine avec un seul bouton... c'est in-sup-por-ta-ble! Et même iTunes sans clic droit c'est pénible pour mettre à jour les infos!).

Mais là où c'est très fort, c'est qu'en plus du clic-droit, en plus du scroll multi-directionnel, en plus du design épuré... Apple propose aux utilisateurs Windows d'utiliser ce petit bout du "Apple Concept" dès à présent sur leur machine Windows! Apparemment les drivers sont fournis!

Je suis vraiment impressionné par la stratégie marketing: Apple nous vend des périphériques géniaux (le premier étant l'iPod) comptabiles PC jusqu'à ce qu'il ne reste plus que l'unité centrale... à remplacer par un Mac mini à 529€ pas cher seulement!

Je suis sûr que ça va marcher. Personnellement j'ai de plus en plus de mal à résister! :)

C'est quoi le prochain périphérique blanc compatible Windows? Un clavier évolué avec un design moins grotesque que ces horreurs de chez Logitech ou Microsoft? Des enceintes 5.1 sans fil? Un casque pour Skype?

Crypter les fichiers sur un serveur XP

Attributs avancés

Crypter les fichiers sur le disque dur, ça a pour unique but que si on vous vole la machine on ne puisse pas lire vos données (mots de passe ou autre) en analysant le disque dur. Windows XP intègre un système pour celà: propriétés du fichier > attributs > avancé... > cochez la case "crypter". C'est gratuit et ça marche. Pensez-y avant de partir en vacances! :P (Pensez aussi à faire un backup! ;D)

Le problème c'est que ça ralentit aussi l'accès aux fichiers puisque Windows doit en permamence crypter/décrypter à la volée. Un peu le même problème qu'avec les antivirus qui scannent tout en permanence...

Alors pourquoi faire ça sur un serveur plutôt que de mettre le serveur sous clef... et pui surtout déjà: pourquoi avoir un serveur sous Windows XP!? :!::?:

C'est simple: ici (au bureau) on a des serveurs web (Apache/PHP/MySQL) sur les machines de développement, et on s'en sert pour tester les modifications en temps réel. Mais évidemment, ces machines de développement sont plus exposées au vol que les serveurs. (Et je vous parle pas des portables...)

Et on ne voudrait pas donner nos codes sources à n'importe qui, n'est-ce pas? :roll:

A partir de là, crypter les bases de données et les fichiers PHP pose deux problèmes...

Tout d'abord, une fois les fichiers cryptés, les services Apache et MySQL ne peuvent plus y accéder! Solution: changer la configuration des services en question pour les faire tourner sous le nom de l'utilisateur qui à crypté les fichiers. Moi, ou vous, en l'occurrence! :P [ Service > Propriétés > Connexion ].

Ensuite, il y a un problème de performances assez ahurissant. Crypter le fichier InnoDB de MySQL semble avoir un impact limité. En revanche, crypter l'ensemble des fichiers PHP peut (par le jeu des include) multiplier le temps de génération des pages web par 6 ! :(

La seule solution que j'ai trouvée à ce problème pour l'instant, c'est de ne crypter que des fichiers choisis. Les fichiers de config en particulier (ceux qui contiennent des mots de passe en premier lieu) ainsi que d'autres fichiers stratégiquement choisis pour qu'on ne puisse pas faire grand chose sans eux.

Une solution qui serait peut être plus intéressante serait d'avoir un script qui crypte l'ensemble des codes sources le soir en partant et les redécrypte le matin en arrivant... en partant du principe que les PCs ont moins de risques de vol aux heures de bureau qu'en dehors. Je me demande s'il existe des solutions élégantes pour ça... :?:

Pour finir, une petite astuce pour avoir l'option Crypter/Décrypter directement dans le menu contextuel du fichier: avec RegEdit, il faut aller dans HKEY_LOCAL_MACHINE\ SOFTWARE\ Microsoft\ Windows\ CurrentVersion \Explorer\ Advanced puis créer une Valeur DWORD nommée EncryptionContextMenu et lui assigner la valeur 1.

Quelques ressources supplémentaires:

Un grand écran, ça compte énormément!

Configuration 2 écrans sous Windows XP

J'ai passé presque deux ans à développer b2evolution sur un écran plat de 15" en 1024*768. Et j'ai passé presque deux ans à croire que j'étais bien équipé! (Juste parce que je n'avais plus à subir la fatigue visuelle des tubes cathodiques du XXème siècle!) Arf' :roll:

Je me suis retrouvé comme un con ce week-end à essayer de débugguer ledit b2evolution depuis chez moi avec ledit petit écran que je croyais grand! Il faut dire qu'entre temps j'étais passé au double écran 18/19" 2 fois 1280*1024 au bureau. C'est à dire un bureau de 2560 * 1024 pixels, c'est à dire 2,6 millions de pixels, c'est à dire 3,32 fois plus que chez moi. Et ça fait une vraie différence!

Vous vous demandez pourquoi je parle en pixels et pas en pouces ou en centimètres? Parce que seuls les pixels déterminent la quantité d'informations que vous pouvez afficher simultanément!

Vous vous demandez pourquoi mon 19" ne fait que 1208*1024 et pas 1600*1200 ? Parce que j'aime bien que lesdits pixels soient d'une taille respectable. Trop de pixels sur une trop petite surface et vous pouvez effectivement afficher beaucoup d'informations, mais tout est écrit tellement petit, que ça fait mal aux yeux!

Concernant le deuxième écran, au début je ne l'ai branché que par curiosité, pour m'amuser un peu, pour essayer les possibilités de la carte graphique de mon PC, et surtout parce que personne ne se servait de cet écran ce jour là...

Aujourd'hui je serais prêt à mordre quiconque voudrait me le reprendre! :P

Bien sûr on travaille difficilement avec un oeil sur chaque écran! Je pense qu'on finit irrémédiablement avec un écran principal en face de soi et un écran annexe à côté. Mais cet écran annexe est incroyablement utile! Et pas seulement pour y laisser trainer une horloge et un player mp3!

Personnellement j'utilise cet écran avec 2 fenêtres principales: la console Javascript de Firefox et les résultats de recherche de PhpED. Lorsque l'on fait du développement Web, il est tout simplement indispensable de garder un oeil sur la console Javascript, faute de quoi on se retrouve avec des sites ou des applis pourris de bugs "qu'on avait pas vus"... et justement... J'hallucine en voyant le nombre d'erreurs qui viennent se logguer dans cette fenêtre en visitant des sites grand public... même développés par des SSII a priori respectables. (pas de noms, c'est pas le sujet! :P)

De même, les résultats de recherche dans une fenêtre sur le côté, ça permet de garder l'écran principal pour scroller dans le code, et l'écran annexe pour scroller dans la recherche. Avec des gros codes source, c'est pas superflu!

Idem avec Photoshop ou Dreamweaver: à chaque fois, le simple fait de pouvoir déplacer certaines palettes d'outils ou de résultats sur l'écran d'à côté, ça permet de libérer de place extrêment utile pour voir le document principal.

Pour finir, j'ambitionne également de garder un oeil sur la santé de mes serveurs avec quelques petites fenêtes de monitoring sur le deuxième écran... mais je n'ai pas encore trouvé l'appli adaptée...

Le côté obscur de tout ça: quand on ouvre un grand nombre de fenêtres simultanément, on est vite perdu dans la multitude de boutons dans la barre de tâches en bas de l'écran... idem avec Alt+Tab! Va aussi falloir se pencher sur ce problème là...

The Unofficial Fedora FAQ

Most useful Fedora rundown I came accross this week B)