Astuces de Webmaster

DSI

Monitoring SMS (script PHP) : mettre en place en 20 minutes un système de suivi efficace

by Rom's on 01 mai 2009, under Architecture, DSI

Voici le système que j’utilise aujourd’hui pour le suivi de mes serveurs dédiés. Il s’agit d’un système très simple composé des briques suivantes :
- Dernière version de PHPWatch (voir le site)
- API SMS - Bêta - By Orange (Accéder à l’API Manager - voir notamment le lien dans le menu de gauche API SMS)
- Quelques modifications sur le cron pour l’envoi d’e-mails.

De base, cela ne monitore que si les services Apache (si on regarde le port 80 / http) sont up ou down et non si les pages sont fonctionnelles (on ne verra pas les erreurs PHP mais on va pouvoir trouver des solutions pour cela.. bientôt)

Chaque SMS envoyé coûtera 10 centimes débités sur le compte. Soit le prix d’un SMS que vous envoyez avec n’importe quel mobile.

0. Allez sur l’interface API SMS d’Orange, inscrivez-vous, créditez votre compte de 10€ pour le test (cochez éventuellement la case renouvellement automatique) et dans l’onglet “key”, notez bien votre clé API.
1. Mettez en ligne le script (cliquez ici pour télécharger) sur un serveur autre que celui que vous souhaitez monitorer et allez à son adresse en ajoutant /install/ à la fin et suivez les instructions (attention, il n’y a pas d’espaces de nom sur les tables…)
2. Allez dans la table “logs” et ajoutez une colonne “message”. Elle servira à reccueillir lors d’un problème un arrêté de l’e-mail envoyé. Cela peut toujours servir.
3. Ouvrez le fichier cron.php qui se trouve à la racine du répertoire PHPWatch et insérez le code suivant en lieu et place de l’existant :

<?php
// A qui on envoie des SMS en cas de problème ?
$contactsMonitoringSMS=Array(
‘RomainMobile’=>’33679241180′,
‘CollegueMobile’=>’336XXXXXX’,

);
// A qui on envoie un mail en cas de problème ? (en parallèle)
$contactsMonitoringEMAIL=Array(
‘RomainPerso’=>’monemail@gmail.com’
,’ServiceInformatique’=>’monemailpro@maboite.com’
);

define(’PATH_TO’, ‘./’);
require_once(PATH_TO . ‘common.php’);

$all = ServiceChecker::getReport();

foreach($all as $monitors)
{
foreach($monitors as $monitor)
{
$monitor['derniereFoisOffline']=date(”d/m/Y H:i:s”,$monitor['last_offline']);
// print_r($monitor);
if(!$monitor['online'])
{
$message = $monitor['host'] . ‘ HORS LIGNE. NOTIFICATIONS ENVOYEES. (/!\\ PHASE DE TEST, A VOIR SI C FIABLE)’;
echo $message;

foreach($contactsMonitoringSMS as $prenom=>$numero) {
$phone_number = $numero;
$contactsEmail=”"; foreach($contactsMonitoringEMAIL as $prenom=>$email) $contactsEmail.=” [".$prenom."] “;
$contactsSMS=”"; foreach($contactsMonitoringSMS as $prenom=>$numero) $contactsSMS.=” [".$prenom."] “;

// attention, on coupe le message à 155 caractères
$sms=$monitor['host'].” HS - SMS : “.$contactsSMS.” - @ : “.$contactsEmail;
if(strlen($sms)>159) $sms=substr($sms,0,154).’[...]‘;
$text_message = urlencode($sms);
$api_access_key = ‘dexxxx5ac’; // Mettez votre clé API - disponible sur l’API Manager
$url = “http://sms.alpha.orange-api.net/sms/sendSMS.xml?id=$api_access_key&to=$phone_number&content=$text_message”;
$response = file_get_contents($url);
$xml = simplexml_load_string($response);
echo “Status: “,$xml->status->status_msg;

}
foreach($contactsMonitoringEMAIL as $prenom=>$email) {
$to = $email;
$subject = $message;
ob_start();
echo $message;
echo “\nE-mails envoyes a :\n”;
print_r($contactsMonitoringEMAIL);
echo “\nSMS envoyes a :\n”;
print_r($contactsMonitoringSMS);
echo “\nDetails Erreur :\n”;
print_r($monitor);
$msg=ob_get_contents();
ob_end_clean();
$headers = ‘From: Roms Monitoring ‘.”\r\n”;
//$headers .= ‘Bcc: Moi ; lui ‘.”\r\n”;
$headers .= “\r\n”;
mail($to, $subject, $msg, $headers);
}
NotificationHandler::sendNotifications($monitor);
}

$requete=’INSERT INTO logs (monitor, timestamp, online, message) VALUES
(’ . $monitor['id'] . ‘, ‘ . time() . ‘, ‘ . ($monitor['online'] ? 1 : 0) . ‘, \”.addslashes($msg).’\')’;
$GLOBALS['PW_DB']->query($requete);
}
}
?>

4. Créez le cron qui va bien dans le crontab si vous avez un serveur dédié (autre que celui monitoré évidemment - en faisant un wget http://www.monsite.com/repertoirePHPWatch/cron.php).
Si vous avez un mutualisé chez OVH (type 60gp, 90plan,…), vous pouvez aller dans votre manager OVH, rubrique “Mutualisé” > “Hébergement” > Planificateur de tâches et créer une tâche qui lance le fichier cron.php chaque heure.
Si vous n’avez ni l’un ni l’autre, vous avez toujours WebCron.org ou ça..
Ou bien, si vous avez des amis qui ont un dédié, c’est le moment de les solliciter, c’est pas bien méchant un cron..
Réserves : attention, il s’agit d’une première version de développement, tous les composants sont en phase bêta. Vous aurez remarqué également que lorsqu’on dit dans le message envoyé “NOTIFICATIONS ENVOYEES”, on n’a pas vérifié que c’était effectivement le cas… Par ailleurs, on peut imaginer monitorer l’état réel d’un script en jouant avec les entêtes renvoyées ou avec des contenus de la page. Pour l’instant, cette version me convient.

Tous retours d’expérience bienvenus pour compléter ce tutoriel.

Laisser un commentaire :, , , Lien Permanent

Exemple de modèle de données pour un site Internet multilingue

by Rom's on 31 mar 2009, under DSI

http://www.codeproject.com/KB/aspnet/LocalizedSamplePart2.aspx#databasedesign

Laisser un commentaire :, Lien Permanent

Bien penser son moteur de recherche

by Rom's on 13 jan 2009, under DSI, Développement Web

Excellent article lu sur JDNet via Compario : Les axes de performance du moteur de recherche dans le secteur du e-commerce

L’auteur y explique les techniques actuelles pour répondre au mieux à toute requête d’un prospect sur un moteur de recherche type “one box”.

Morceaux choisis :
“Un chercheur transforme deux fois plus qu’un visiteur”

“73% des visiteurs de site e-commerce quittent le site au bout de deux minutes”

“40% des visiteurs d’un site marchand vont utiliser le moteur de recherche interne”

“lorsque l’internaute recherche TV, il s’attend à avoir la liste des télévisions disponibles sur le site en priorité et bien plus tard ou en marge, les accessoires qui se branchent sur la Télévision”

“[La navigation à facettes] s’appuie sur une recherche simple, sans mention de critères. En réponse, le moteur va présenter une vue de la répartition de l’ensemble des réponses selon diverses catégories ainsi que le nombre d’occurences. L’internaute choisit alors la facette qui l’intéresse, et va ainsi restreindre les résultats à ceux qui correspondent à son choix.”

“es sources d’erreur dans la recherche d’un article ou d’un produit sont multiples (faute d’orthographe, recherche de référence mal saisie…) et leurs effets sur l’acte d’achat sont en général rédhibitoires” (lire à ce sujet notre article sur la distance de levenshtein)

“La question de l’intégration d’un module de langage naturel doit se poser lorsque l’on se trouve sur un service présentant une offre dont plus de 3 caractéristiques semblent indispensables à la définition des produits : ex : l’immobilier ou l’achat de véhicule. L’internaute va recherche un appartement de 100m2 avec terrasse et 3 chambres.”

“Le principe [de la suggestion orthographique] est donc de proposer en lien, une orthographe approchante de celle saisie par l’internaute, en reformulant exactement la recherche avec les termes corrigés.”

“[L'autocomplétion] permet de compléter en live la saisie de l’internaute dans la boîte de recherche. Cela permet de lui suggérer des recherches avant même qu’il ait terminé de l’exprimer”

“il faudra plutôt envisager la suggestion d’articles au sein des réponses afin de compléter l’offre et d’enrichir le panier. “

Laisser un commentaire :, , , Lien Permanent

Task Coach : un gestionnaire de tâches intelligent

by Rom's on 30 déc 2008, under DSI

A découvrir sur Framasoft :

Task Coach est un gestionnaire de tâches permettant d’organiser facilement son travail en le découpant en tâches et sous-tâches. Les tâches peuvent être classées par catégorie et un outil permet de comptabiliser le temps passé sur chaque tâche.

En savoir plus sur : http://www.framasoft.net/article4805.html

A noter que c’est compatible avec Funambol (voir le précédent billet)

Laisser un commentaire :, , Lien Permanent

EVOLUTION : le logiciel messagerie Windows et Mac compatible Exchange

by Rom's on 29 déc 2008, under DSI

Découverte intéressante faite ce jour.

Le client de messagerie Evolution (Novell), principalement utilisé sous Linux existe également en version Windows (ça date de 2005) :
Aperçu EVOLUTION pour Windows

Contrairement à Thunderbird, ce logiciel est full compatible et ne se contente pas de récupérer les e-mails en IMAP.

Le site du projet : http://projects.gnome.org/evolution/
Le site de téléchargement de la version Windows : http://www.dipconsultants.com/evolution/
La description sur Wikipédia : http://fr.wikipedia.org/wiki/Novell_Evolution

Existe également pour Mac : http://forge.novell.com/modules/xfcontent/downloads.php/evolution/builds/osx-evolution-2.6/

Il n’est pas encore répertorié chez Framasoft mais on en parle sur leur forum.

A noter qu’il y a un des gars de chez Novell qui a planché sur ce projet qui avait bossé sur The Gimp il y a quelques temps..

Laisser un commentaire :, , , , Lien Permanent

Synchronisation via SyncML - Carnet d’adresses, Calendrier, …

by Rom's on 29 déc 2008, under DSI

Présentation selon ubuntu-fr.org

Funambol est une suite logicielle permettant la synchronisation de données telles qu’un carnet d’adresses, un calendrier ou des emails, entre plusieurs ordinateurs et/ou périphériques portables (PocketPC, Smartphone, iPod, …). Il fait donc partie des logiciels de type PIM (Personal Information Manager), acronyme qui désigne par extension les données personnelles gérées. … [Lire la suite]

Le site officiel est là : https://www.forge.funambol.org/download/

Voir aussi : ScheduleWorld

2 Comments :, , , Lien Permanent

Trouver son fichier de configuration PHP.ini

by rjanot on 19 déc 2008, under Architecture, DSI, Développement Web

Petite astuce pour les personnes recherchant leur fichier PHP.INI, en général sur les serveurs dédiés. Si vous n’êtes pas très ami avec la syntaxe de Tux, cette commande va vous aider:

php -i | grep php.ini

En espérant vous avoir aidé !

Laisser un commentaire Lien Permanent

Quelques commandes SSH utiles / Serveurs dédiés

by Rom's on 15 déc 2008, under Architecture, DSI, Développement Web

Quelques commandes SSH utiles pour tout adminstrateur de serveurs dédiés :

Pour utiliser SSH, utilisez Putty sur Windows, ou le terminal sur Mac et Linux; Sur le terminal, entrez la commande “ssh userSSH@ipServeur” ce qui vous invitera à entrer le mot de passe de l’utilisateur “userSSH”.

top
=> indique les processus appelés
=> pendant l’exécution, taper “A” pour avoir des informations sur les tâches, “U” pour classer les processus par %CPU
=> faire ctrl+C (même sur Mac) pour en sortir

time wget URL
=> vous indique le temps pris pour exécuter telle URL

ps aux
affiche des informations sur les processus en cours
==> ps aux | grep ssh vous permet d’afficher les utilisateurs SSH connectés
NB : Cet article va être complété au fur et à mesure du temps et des besoins, n’hésitez pas à proposer des commandes en commentaires

Alsacreations a mis pas mal de commandes utiles aussi, voir ici : http://www.alsacreations.com/tuto/lire/613-Monitoring-serveur.html

Laisser un commentaire :, Lien Permanent

Tableau blanc, n’est-ce pas le bonheur ?

by Rom's on 05 déc 2008, under DSI

http://www.speechi.net/fr/index.php/home/tableau-interactif/tableau-interactif-ebeam-projection/

Être au tableau et interagir avec son ordinateur sur la projection.. n’est-ce pas le rêve de tous les conférenciers ?

Laisser un commentaire :, , Lien Permanent

Mettre sur papier les processes d’une organisation

by Rom's on 05 déc 2008, under DSI

Process
Process, une chaîne éditoriale pour la diffusion des processus de fonctionnement d’une organisation
La chaîne éditoriale Process : qu’est-ce que c’est ?

La chaîne éditoriale Process, dédiée à la diffusion des processus, permet d’inscrire la qualité dans l’activité quotidienne des acteurs.
Objectifs

* Capitaliser les documents qualité en stockant les contenus dans un format (xml).
* Avoir une vision globale du fonctionnement de la structure.
* Accéder à la description précise des activités en navigant graphiquement dans les procesus.
* Visualiser sa propre activité et la positionner par rapport aux activités des autres acteurs.
* Accéder aux documents et aux modèles de documents qui leur permettront de mener à bien leur activité.

A lire sur : http://scenari-platform.org/projects/process/fr/pres/co/
Et pour la documentation logicielle : http://scenari-platform.org/projects/dokielguide/fr/pres/co/

Laisser un commentaire :, , Lien Permanent

Vous cherchiez ?

Recherche rapide :

Vous ne trouvez toujours pas ? Laissez un petit commentaire sur un article, qu'on puisse regarder ça de plus près !