Reboot d'un serveur

Eléphant du PHP | 351 Messages

04 avr. 2008, 17:29

Daccord, par contre, je comprend pas le fonctionnement du code bash...
Il faut quoi là? D'où vient test.html ?

Merci de m'éclairer.

EDIT : Ou alors faire une tache cron, qui vérifie si Apache est down ou pas, et en fonction, le redémarre?

Eléphant du PHP | 351 Messages

05 avr. 2008, 16:50

Salut,

donc, j'ai fait cette tache cron :
0 * * * * /etc/init.d/apache restart
Certe c'est barbare, mais est-ce que ca marche ca?

ViPHP
ViPHP | 5924 Messages

05 avr. 2008, 19:15

C'est inutilement barbare en effet. Tu prends des risques de perte de données, de rupture de service, ou d'instabilité…

Mammouth du PHP | 1885 Messages

06 avr. 2008, 05:19

Tourne toi vers monit: http://www.tildeslash.com/monit/

Il faut l'installer sur le serveur à surveiller. Monit pourra redémarrer et/ou t'avertir en cas de problème.

Si tu veux du monitoring "externe", tu peux toujours utiliser Nagios: http://www.nagios.org/
La programmation est l'expression de la poésie d'un programmeur
Génération PHP

Eléphant du PHP | 351 Messages

06 avr. 2008, 11:07

Merci beaucoup, je vais regarder cela.

Donc, en fait, c'est bien apache qui plante, mais comment apache peut planter? trop de demande?

Merci

Mammouth du PHP | 1885 Messages

06 avr. 2008, 20:30

Merci beaucoup, je vais regarder cela.

Donc, en fait, c'est bien apache qui plante, mais comment apache peut planter? trop de demande?

Merci
- Est-ce que le MaxClients a été atteint?
- Est-ce que la taille maximale des fichiers logs a été atteintes?
- Est-ce que le serveur a suffisament de mémoire?
- Est-ce que tu es en mesure de dire si ton serveur a conservé son intégrité? (hacks)
- As-tu vérifié le fichier error_log?
- As-tu vérifié les logs dans /var/log/messsages?

Il y a plusieurs choses à vérifier et questions à se poser. Vérifie à ce niveau.
La programmation est l'expression de la poésie d'un programmeur
Génération PHP

Eléphant du PHP | 351 Messages

07 avr. 2008, 09:19

Bonjour,

donc je ne sait pas, ce que je sait c'est que Apache plante, et on va prendre un serveur plus puissant, car celui-ci doit souffir,

sinon, pourriez-vous me dire, comment faire une tache cron qui redémarre apache toutes les heures? (ce que j'ai fais plus haut ne fonctionne pas).

Merci

Mammouth du PHP | 684 Messages

07 avr. 2008, 17:58

donc je ne sait pas, ce que je sait c'est que Apache plante, et on va prendre un serveur plus puissant, car celui-ci doit souffir,
C'est radicale mais ca peut marcher. Je regarderais tout de meme tous mes logs de mon serveur.
Il faut regarder les logs d'apache mais aussi du serveur lui meme (/var/log/message).
Peut etre regarder les ressources processeur et memoire avec les commandes : 'top', 'ps aux', 'pstree'.
Le faire en pleine journee ou il y a de l'influence et quand il y en a moins pour voir si ca vient de la.
Regarder le notre de socket ouvertes (netstat devrait etre ton ami).
sinon, pourriez-vous me dire, comment faire une tache cron qui redémarre apache toutes les heures? (ce que j'ai fais plus haut ne fonctionne pas).

Code : Tout sélectionner

* 0-23/1 * * * /etc/init.d/apache2 restart
j'avoue ne pas connaitre les script bash, et dans plesk, pour mettre la commande de ma crontab, il me porpose qu'une seule ligne, que mettre?
Tu n'a qu'une ligne effectivement dans ta crontab mais tu peux facilement creer un script bash
(fichier qui peut se nommer comme tu veux, ATTENTION faut prevoir de le mettre en EXECUTABLE
pour les droits) qui contiendra plusieurs instructions.
Daccord, par contre, je comprend pas le fonctionnement du code bash...
Il faut quoi là? D'où vient test.html ?

Merci de m'éclairer.
En premier, il faut creer le fichier 'test.html' que tu place sur le serveur que tu veux examiner dans
son repertoire DocumentRoot du serveur Apache (ex : /var/www/html). La je peux pas etre plus precis :)

Ce que fait mon script :
1 - Il essaye de recuperer le fichier http://www.mondomaine.fr/test.html que tu as place juste avant
dans ton site web et comme indiquer dans mon code, a la racine du serveur (peut etre mis ailleur).
2 - Le script verifie SI le fichier a put etre telecharger sur le serveur.
SI OUI alors, je fait rien (etape logique vu que le serveur a bien servit la page).
SI NON alors, je relance Apache.
3 - J'efface le fichier test.html que j'ai telecharger pour le prochain test du serveur.

On peut facilement remplacer test.html par test.php qui pourrait faire une commande MySQL ou Postgresql pour verifier que la base de donnees est en plus operationnel MAIS dans ce cas, faut
lire le fichier retour. Methode plus avancer.

Bon ok, je trouve que ce code est vraiment limiter et je ne suis pas sur que cela suffise pour ton
probleme sur des serveurs de production.
Effectivement, doit y avoir des projets plus prometteurs :)
Zigz4g

Eléphant du PHP | 351 Messages

08 avr. 2008, 23:11

Code : Tout sélectionner

* 0-23/1 * * * /etc/init.d/apache2 restart
Merci de toute ta réponse, je regarde ca, demain à tete reposé,
j'ai juste essayé la tache crontab, et voila la réponse :

Code : Tout sélectionner

/bin/sh: /etc/init.d/apache2: No such file or directory
Merci d'avance

ViPHP
ViPHP | 5924 Messages

08 avr. 2008, 23:13

Fais nous un "ls /etc/init.d/" s'il te plait que l'on voye ce qu'il y a dedans. :)

Mammouth du PHP | 1885 Messages

09 avr. 2008, 04:47

Est-ce que sysstat est installé sur ton serveur? Tu pourras avoir une idée du niveau d'utilisation des ressources mémoire et CPU.

Exemples

Code : Tout sélectionner

# sar -r Linux 2.6.18-53.1.14.el5 (mg.privatedns.com) 04/08/2008 12:00:01 AM kbmemfree kbmemused %memused kbbuffers kbcached kbswpfree kbswpused %swpused kbswpcad 12:10:01 AM 39348 1986412 98.06 707536 91248 2028228 20048 0.98 4 12:20:01 AM 47404 1978356 97.66 679064 120212 2028232 20044 0.98 32 12:30:01 AM 58508 1967252 97.11 677424 121836 2028244 20032 0.98 48 12:40:01 AM 56360 1969400 97.22 673972 127872 2028268 20008 0.98 64 12:50:01 AM 46796 1978964 97.69 674076 131184 2028272 20004 0.98 92 01:00:01 AM 60608 1965152 97.01 670124 133480 2028276 20000 0.98 120

Code : Tout sélectionner

# sar -q Linux 2.6.18-53.1.14.el5 (mg.privatedns.com) 04/08/2008 12:00:01 AM runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 12:10:01 AM 0 184 0.09 1.06 0.79 12:20:01 AM 9 191 0.00 0.16 0.42 12:30:01 AM 7 173 0.00 0.02 0.21 12:40:01 AM 5 173 0.00 0.00 0.10 12:50:01 AM 3 190 0.11 0.03 0.05 01:00:01 AM 4 171 0.02 0.01 0.00
Peux-tu également vérifier combien de processus Apache sont exécutés présentement?

Code : Tout sélectionner

# ps auxfww | grep apache | wc -l 27
Compare le résultat à la directive MaxClients d'Apache. La limite ne devrait évidemment jamais être atteinte.

Évidemment, les vérifications précédemment mentionnées devraient être faites.
La programmation est l'expression de la poésie d'un programmeur
Génération PHP

Eléphant du PHP | 351 Messages

09 avr. 2008, 08:21

Fais nous un "ls /etc/init.d/" s'il te plait que l'on voye ce qu'il y a dedans.
Image

Pour Xenon :
Image

Voilou ;)

Merci

ViPHP
ViPHP | 5924 Messages

09 avr. 2008, 12:47

Sur ton serveur, la commande pour redémarrer apache est /etc/init.d/httpd restart

Eléphant du PHP | 351 Messages

09 avr. 2008, 13:46

Merci, donc après avoir essayé, voici le résultat :
Arrêt de httpd :[ÉCHOUÉ]rm: ne peut enlever `/var/run/httpd.pid': Permission non accordée

Démarrage de httpd :
touch: ne peut faire un touch sur `/var/lock/subsys/httpd': Permission non accordée

Mammouth du PHP | 1885 Messages

09 avr. 2008, 16:16

Pour Xenon :
Image
Voilou ;)
Ok, j'ai eu quand même une réponse. Le nombre de processus Apache n'est pas trop élevé.
Il faudrait que tu poursuives avec les vérifications mentionnées plus haut.

Tu peux installer sysstat si tu veux des informations sur l'utilisation de la mémoire/CPU:

Code : Tout sélectionner

yum install sysstat
La programmation est l'expression de la poésie d'un programmeur
Génération PHP