# [chute du serveur] comprendre où ça a planté ?

## 22decembre

Bonjour

Tout recemment, mon serveur a planté. Je ne sais pas quelle composante, où, ni comment !

Mais je souhaite bien sûr savoir ! (Pour corriger le tir, m'ameliorer, réparer correctement...)

Alors voila : qu'est-ce que je dois chercher ? Je me doute que c'est quelque part dans les logs, mais je suis pas spécialiste... Comment savoir ce qui a fait planter le serveur, sachant que j'ai absolument aucun apriori ! Je sais pas par où commencer !

Juste un truc : le serveur est un gentoo Linux avec noyau Hardened.

Merci pour votre aide.

----------

## Poussin

Qu'est-ce que tu entends par "serveur planté"?

----------

## 22decembre

ba en l'occurence, serveur planté signifie :

aucune requete internet ne repond (web, mail entrant/sortant, ntp...). Aucun des services ne répond.

----------

## mysix

Tu as regardé dans les logs ?

Tu as suffisement de swap pour ton serveur ?

Tu utilises pourquoi le serveur ? Web, messagerie... ?

Installe Watchdog pour ton serveur, il te permet de redémarrer automatiquement ta machine s'il se fige.

----------

## 22decembre

regargé dans les logs... pas encore possible. Et qu'est-ce que je dois chercher ?

Suffisamant de swap ? Oui, je pense ! (comment verifier ?) 2 x 500 Mo pour 1 Gb de RAM

mail, web (wordpress), ntp, ftp, mysql, dns (nfs, mediatomb, services "non actuellement utilisés au moment du plantage" )

Watchdog ? Ok, connaissais pas !

----------

## mysix

Un serveur mail demande beaucoup de mémoire vive au de swap. 

Je pense que ton swap a été saturé et ta machine a planté.

créer un swap de 10Go. Il faudrait au mieux après monitorer depuis un autre ordi en cas de plantage.

----------

## 22decembre

10 Go ? C'est énorme ! La totalité des mails stockés dans le serveur aujourd'hui depasse pas 20 Mo ! (serveur mail perso, actuellement je suis le seul dessus, et je prevois pas plus d'une dizaine de personnes dans le futur - famille donc, pas plus !)

----------

## Zentoo

Bon une analyse d'un plantage système se fait en plusieurs étapes:

Il te faut savoir où chercher et avec quoi chercher

et notamment s'il s'agit d'un problème materiel ou logiciel: 

Heure du plantage:

- outils de monitoring disponibles ? (logs, graphage, watchdog, heartbeat)

- corrélation des logs (/var/log/*)

```
$uptime

$last

$ls -altrh   # dans les repertoires importants et regarder les dates
```

Etat du système:

- log firewall, état d'iptables (pb flux réseau?)

- etat selinux ou grsec (hardened) (pb de sécurité, ACL trop restrictives sur root, sys-apps/gradm)

- test unitaire de chaque applicatifs installé

- état des crons

- état des applicatifs mail/apache/mysql/firewall...

- app-portage/portage-utils et app-portage/eix

```
$htop        # configuré c'est un tres bon outil pour voir en temps réel un serveur - keys: /lsof,s/strace,k/kill

$dstat       # sys-apps/dstat

$netstat ; ifconfig; ip ; route # flux et conf réseau

$dmesg    # messages kernel

$qfile       # vérifier l'appartenace des fichiers aux paquets (app-portage/portage-utils)

$qcheck   # état d'un paquet

$free -m  # ram et swap

$pstree    # arbre des processus  sys-process/psmisc

$smartctl # sys-apps/smartmontools pour état des disques

$hdparm ; sdparm # sys-apps/hdparm sys-apps/sdparm
```

Hardware:

- voir si le problème arrive avec un autre OS

- test ram #  sys-apps/memtest86+ a ajouter a son grub

- configuration kernel

```
$ cat /proc/interrupts

$dmesg   # messages kernel

$mcelog  # app-admin/mcelog pour remontée hardware au kernel

$sensors # sys-apps/lm_sensors pour temperatures/voltages

$ethtool ethX # sys-apps/ethtool pour le réseau 
```

Le but étant de savoir:

 - Est ce un problème hardware/logiciel/sécurité

 - A quelle heure l'incident est arrivé ?

 - Qu'est ce que l'incident à entrainé ?

 - Dans quel état le système est-t-il maintenant ?

Pour éventuellement:

 - Etablir les actions à mener pour corriger ou remettre le système en mode nominal.

 - Changer du hardware

 - Sécuriser son système/réseau

 - Re-compiler son system/world

----------

## 22decembre

ça fait du boulot, mais c'est un gros pas en avant...   :Confused: 

Un bon truc aussi serait donc un tutoriel expliquant comment dimensionner correctement la mémoire et la swap !

En fait, je me rends compte d'un truc (si vous voulez bien m'excuser...) : jusqu'ici, je suis relativement bon pour ce qui est de la gestion du système, les divers logiciels qui tournent... Mais je ne me suis jamais préoccupé du côté hard : taille de swap et son réglage fin (j'ai lu sur Lea-Linux qu'une double swap, sur deux disques, améliorait les choses puisqu'on peux y acceder simultanement... ), charge du serveur, reglage fins des divers services et logiciels.

Logique que je m'en sois jamais occupé d'ailleurs : jamais appris ! Je fais tout au fur et à mesure de mon apprentissage de l'informatique ! Une nouvelle étape dans cet apprentissage donc !

----------

## Zentoo

Le swap ne peut servir qu'à une seule et unique chose: conserver de la mémoire peu utilisée par le système.

Dans la pratique et encore plus en environnement de production, la swap ne doit pas être utilisé ou seulement temporairement sur des traitements sporadiques couteux en mémoire vive uniquement si cela ne pertube pas le service rendu par le serveur (QOS).

Si le swap est toujours occupé et surtout si il fluctue régulièrement en taille, il s'agit d'un mauvais dimensionnement: c'est à dire que tu n'as pas assez de ram pour l'utilisation que tu en fais. Au prix de la ram actuelle, l'upgrade est bien souvent préconisée plutôt que d'essayer de régler et/ou tweaké le système pour limiter l'utilisation du swap qui est vraiment trop lent sur un HD conventionnel.

La logique d'avoir la taille de la swap égale au double de la mémoire vive n'a plus de sens à l'heure actuelle, le contraire serait d'ailleurs même plus logique. Après chaque utilisation amène ces contraintes et donc les choix qui vont avec.

Sur un poste de bureautique, swapper veut dire lenteur du système. (style le bon vieux windows qui gratte lorsque que l'on clique sur le menu démarrer).

----------

## 22decembre

Merci !

Le truc, c'est que ces détails, personne les explique nulle part... Sauf dans des docs semi-officielles qui tendent à dater maintenant.

On peut pas se permettre de refondre son système en permanence. Au vu de ce que tu dis, et du fait que je songe à mettre un nouveau disque dur (si je vais par là aussi : que choisir, on est arrivé à un début de limite des HDD internes je crois), il faudrait que bientôt, je monte carrement un nouveau serveur pour prendre la relève de l'actuel (alors que celui d'auj est déjà la relève d'un plus vieux qu'a grillé y a deux ans). Un peu stupide !

Donc je fais quoi ? J'additionne les memoires requises par les divers logiciels et c'est tout (50 Mo pour Mysql, 20 Mo pour Postfix, X pour apache... j'ai pas vérifié les chiffres ... ) et j’achète de la RAM sur le net ? Combien ? quelle marque ? Pareil pour un nouveau disque dur !

----------

## 22decembre

J'ai jeté un coup d'oeil aux logs du plantage. Je vois rien de particulier ...   :Confused:   :Evil or Very Mad: 

Y a pas un moyen de faire en sorte d'avoir toujours un certain pourcentage des ressources vitales libres (cpu et ram) ? Comme ça on peut garder ou prendre la main, et le système peut continuer à s'executer...

----------

