thomprofil Posté 7 Avril 2008 Posté 7 Avril 2008 Bonjour à tous, J'ai créé une petite page qui splite mon ecran en 6 blocs iframe. Ces 6 iframes sont des pages de test de mes 6 serveurs. Dedans, je teste : - HTTP - Mysql - SSH - SSL - FTP Pour cela, rien de bien méchant, j'utilise fsockopen(), voici une portion du code : $FTP = _AT_fsockopen(IP_THOR, 21, $errno, $errstr, 1);$SSH = _AT_fsockopen(IP_THOR, 22, $errno, $errstr, 1); $HTTP = _AT_fsockopen(IP_THOR, 80, $errno, $errstr, 1);$SSL = _AT_fsockopen(IP_THOR, 443, $errno, $errstr, 1);$SQL = _AT_fsockopen(IP_THOR, 3306, $errno, $errstr, 1);if ($FTP) { $a++; fclose($FTP); } else { $aError[] = 'FTP';}if ($SSH) { $a++; fclose($SSH);} else { $aError[] = 'SSH';}if ($HTTP) { $a++; fclose($HTTP);} else { $aError[] = 'HTTP';} Comme vous le comprendrez, je test chaque port et détermine à la fin si au moins 1 déconne pour me lancer une alerte. Problème, le test du port 3306 (MySQL) semble poser un souci d'après le prestataire, on a des soucis de processus. On a au bout d'un moment eu une erreur 1129 sur nos serveurs qui nous empêchait de nous connecter avec SQLYog ou PhpMyadmin mais les sites fonctionnent. Voici l'erreur : ERROR 1129: Host 'localhost.localdomain' is blocked because of many connection errors. Unblock with 'mysqladmin flush-hosts' Pensez vous vraiement que ce soit le fsocopen alors que je le fclose() proprement ? Merci d'avance.
Dan Posté 7 Avril 2008 Posté 7 Avril 2008 Est-tu certain que le message d'erreur reflète la réalité ? Souvent, le port 3306 n'est pas accessible au départ d'un autre host que 127.0.0.1 ....
thomprofil Posté 7 Avril 2008 Auteur Posté 7 Avril 2008 Je n'en sais rien mais le prestataire a du supprimer les processus pour que l'on puisse avoir de nouveaux Sqlyog qui fonctionne. Que cela peut-il être ? Et est-ce qu'un fsockopen peut créer ce genre de problème ?
Kioob Posté 7 Avril 2008 Posté 7 Avril 2008 Hello, c'est effectivement une sécurité de MySQL : ton fsockopen est considéré comme une tentative de connexion frauduleuse, et est donc blacklisté. Pour corriger ça il suffit de faire un "flush hosts" et non d'aller tuer les processus à l'arrache... Et pour ne pas provoquer ce problème, bah utilises un "vrai" mysql_connect() plutot qu'un fsockopen. De toutes façons le fait d'ouvrir le port est très loin d'être suffisant pour détecter les problèmes. J'ai une machine qui plante souvent pour manque de mémoire (un script malfichu), et bien même quand la machine est complètement en rade, tous les ports TCP restent ouverts.
thomprofil Posté 7 Avril 2008 Auteur Posté 7 Avril 2008 Merci à tous, c'est ce que j'allais faire (une bonne requete basique et je saurai de suite
Anonymus Posté 7 Avril 2008 Posté 7 Avril 2008 Au lieu d'un simple 'mysql_connect', tu créées une table, un champ, et tu appelles ce champs Là, tu auras non seulement l'accès, mais aussi le temps mis par cette requète Dans ton cas, peut être que l'ajax serait plus approprié que les iframes
Kioob Posté 7 Avril 2008 Posté 7 Avril 2008 Mouais, pour du monitoring MySQL je préfère largement utiliser "show status" et/ou "show variables". Ca n'accède pas aux données, mais au moins ça permet de générer un excellent suivi.
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant