kirin
02/06/2007, 13h46
Bonjour,
Objet : :
Ce document explique comment et pourquoi j'ai mis en place manuellement le test d'état quotidien de chacun des 2 disques durs sur mon serveur Superplan 2007+, avec envoi mail du résultat.
Introduction :
Je ne suis pas du tout un spécialiste de l'admin de dédié, donc désolé si ce que je vais indiquer ici n'est pas élégant. :o
Par contre cela fonctionne et pourrait servir à d'autres :)
Sur les Superplan 2007+ on a du RAID1 ce qui est super en terme de sécurité puisque l'on a une redondance des données. Mais encore faut-il être au courant de la panne éventuelle d'un HDD ! Sinon à mon sens, c'est un RAID qui a peu de sens / d'utilité :( Sachez que la procédure c'est que l'on reçoit un mail indiquant la panne du HDD grâce au RTM et que de là on demande l'intervention du support.
Je dis cela car mon Superplan 2007+ n'avait pas d'origine le RTM de fonctionnel dans le manager. Donc déjà, à date de ce message, sur ce type de serveur et par défaut, absolument *aucune* info ne remonte à priori. Si vous êtes dans ce cas, pour reinstaller RTM, suivre le guide :
http://guide.ovh.com/realtimemonitoring
Ceci fait, dans mon cas, le RTM fonctionne (process, charge cpu -modèle E6320 pour moi-, identification de la carte mère -P5VD2-MX dans mon cas-, etc...) mais il n'y a toujours aucune info de remontée sur les HDD :( Pas de T°, pas d'état, rien ! :mad: Donc cela ne suffit toujours pas car, sauf erreur de ma part, on ne risque pas d'être averti par mail de la panne d'un HDD.
Comble du comble :eek: , sur mon serveur, les HDD n'avaient pas le smart d'activé par défaut donc pour le coup il n'y a *aucune* chance de récupérer des infos sur leur état via RTM ou autre. Nous allons voir comment l'activer.
Entrons dans le sujet : smartctl
J'ai donc mis en place manuellement le test d'état quotidien de chacun des 2 disques durs, avec envoi mail du résultat.
Pour cela j'utilise smartctl :
http://smartmontools.sourceforge.net/
http://guides.ovh.com/SmartMonTool
http://valaurea.free.fr/documents/sig11_smart.html
et les crons :
http://guides.ovh.com/DedieCron
La première chose à savoir c'est que pour accéder au disque sur ce serveur, l'option à ajouter dans la ligne de commande de smartctl c'est
-d -ata
ce qui à mon avis n'a guère de sens d'ailleurs vu ce que dit la doc relativement au rôle de cette option. J'ai trouvé par hasard, en testant.
La seconde chose à savoir c'est que les disques sont en "sda" et "sdb". Au final, pour avoir les infos sur chacun de vos disque cela donne (connectez vous en SSH, si besoin cf http://guides.ovh.com/SshSurServeurDedie) :
smartctl -i -d ata /dev/sda
et
smartctl -i -d ata /dev/sdb
Si comme pour moi le smart est désactivé sur chaque disque, afin de l'activer faites :
smartctl -s on -d ata /dev/sda
et
smartctl -s on -d ata /dev/sdb
NB : Vous pouvez de là refaire un -i cad redemander l'info des disques pour vérifier que le SMART est désormais bien activé.
Pour ma part, je me contente d'un test court vérifiant jusque l'état du disque cad s'il est "ok", ce qui donne comme commande :
smartctl -t short -d ata /dev/sda
Après le lancement de ce test il vous dit d'attendre une minute. Patientez puis pour lire le résultat du test faites :
smartctl -l selftest -d ata /dev/sda
NB : pour faire la même chose avec le second disque recommencer le test puis l'attente puis la lecture avec "sdb" en fin de ligne au lieu de sda.
NB2 : vous pouvez faire un test long et avoir bien plus de données d'état du disque si vous le souhaitez. Consultez la doc de smartd liée précédemment.
Reste à scripter tout cela.
Entrons dans le sujet : les crons et scripts
Tout au long de ce qui suit, je vais désigner par "monsite" le répertoire qu'a créé OVHM quand vous avez installé votre domaine sur votre serveur. Vous remplacerez donc "monsite" par le nom du repertoire sur votre serveur.
Pour définir les crons, passez par l'édition de /etc/crontab :
http://guides.ovh.com/DedieCron
et pour cela utilisez la commande pico en vous connectant en SSH. Plus bas je vous livre une explications plus détaillée.
J'insiste, faites-le à la main et n'utilisez *pas* la définition des crons via webmin, ils sont manifestement buggués :mad: !
Les heures de lancement des crons ne sont bien sur que des suggestions. Par contre l'intervalle entre les lancements est le minimum à respecter.
Le contenu du fichier sera donné : vous devez placer le fichier en question sur la racine de votre site web.
1er cron : lancement du test d'état du disque dur, une fois par jour.
Heure : 03h30
Commande : sh /home/monsite/www/lancedda.sh
Contenu du fichier lancedda.sh : smartctl -t short -d ata /dev/sda
2eme cron : lecture du résultat et écriture dans un fichier
Heure : 03h31
Commande : sh /home/monsite/www/recupdda.sh
Contenu du fichier recupdda.sh, tout est sur une seule ligne : rm -f /home/monsite/www/dda.txt; smartctl -l selftest -d ata /dev/sda > /home/monsite/www/dda.txt
3eme cron : mail du résultat
Heure : 03h32
Commande : sh /home/monsite/www/maildda.sh
Contenu du fichier maildda.sh, tout est sur une seule ligne : cd /home/monsite/www/; ./maildda.php
Contenu du fichier maildda.php :
#!/usr/local/bin/php
<?
$email = "votremail@votrefai.com";
$sujet ="ETAT DDA";
$logfile = "dda.txt";
$fp=fopen("$logfile","r");
if (!$fp) $corps = "Arret du script lecture de ddX.txt !";
$listing = "";
while (!feof ($fp))
{
$corps .= fgets($fp,4096);
}
fclose ($fp);
mail($email,$sujet,$corps,$headers);
?>
Sur ce dernier fichier php, après l'avoir envoyer en FTP sur la racine de votre site vous devez absolument de plus faire un "chmod 700" : vous pouvez le faire avec votre logiciel FTP en général, sinon connectez vous en SSH (cf
http://guides.ovh.com/SshSurServeurDedie) et faites :
chmod 700 /home/monsite/www/maildda.php
Voilà, c'est fini :) Bien sur il faut refaire le tout une seconde fois pour le second disque dur ;) : pour cela il vous suffira de tout recommencer en remplacant *partout*, dans les noms de fichiers *et* les commandes (attention, n'en oubliez pas !) :
dda par ddb
sda par sdb
et de changer les heure bien sur en ajoutant par exemple 10 minutes à chaque heure suggérée.
PS : edition du fichier crontab, pas à pas.
1) Connectez vous en SSH (http://guides.ovh.com/SshSurServeurDedie) avec login root et mot de passe correspondant
2) à l'invite, tapez
pico /etc/crontab
Pico se lance et ses commandes sont rappelées en bas de l'écran : le symbôle ^ représente la touche CRTL. Par exemple, pour quitter pico, faites CRTL-X (cad appuyez sur la touche CRTL et simultanément sur X) et pour sauver vos modifications vous ferez CTRL-0 puis validerez avec la touche return de votre clavier.
3) ok, refaites si besoin pico /etc/crontab et descendez à la fin du fichier puis tapez :
# test des hdd et envoi mail des infos :
30 3 * * * root sh /home/monsite/www/lancedda.sh
31 3 * * * root sh /home/monsite/www/recupdda.sh
32 3 * * * root sh /home/monsite/www/maildda.sh
et pour le second disque, avec 10 min de décalage, ajoutez
40 3 * * * root sh /home/monsite/www/lanceddb.sh
41 3 * * * root sh /home/monsite/www/recupddb.sh
42 3 * * * root sh /home/monsite/www/mailddb.sh
4) Faites CTRL-O, validez avec return puis faites CTRL-X pour quitter pico, c'est fini.
PPS : le smart étant activé sur les hdd, j'ai essayé de définir les DEVICE, dans /etc/smartd.conf en utilisant donc -d -ata et sda / sdb. Concrètement, j'ai donc mis en commentaire la ligne DEVICESCAN et j'ai ajouté les lignes :
/dev/sda -d ata -a
/dev/sdb -d ata -a
J'espérais qu'ensuite les infos remonteraient dans le manager et que l'état des hdd y apparaitrait, mais non :(
Si qqun a une idée à ce propos, je suis intéressé. Ceci dit, je n'ai pas trouvé de smart dans les tâches cron, contrairement à ce que dit cette doc ovh :
http://guides.ovh.com/SmartMonTool
?
Seb, alias kirin
Webmestre www.choixpc.com
Objet : :
Ce document explique comment et pourquoi j'ai mis en place manuellement le test d'état quotidien de chacun des 2 disques durs sur mon serveur Superplan 2007+, avec envoi mail du résultat.
Introduction :
Je ne suis pas du tout un spécialiste de l'admin de dédié, donc désolé si ce que je vais indiquer ici n'est pas élégant. :o
Par contre cela fonctionne et pourrait servir à d'autres :)
Sur les Superplan 2007+ on a du RAID1 ce qui est super en terme de sécurité puisque l'on a une redondance des données. Mais encore faut-il être au courant de la panne éventuelle d'un HDD ! Sinon à mon sens, c'est un RAID qui a peu de sens / d'utilité :( Sachez que la procédure c'est que l'on reçoit un mail indiquant la panne du HDD grâce au RTM et que de là on demande l'intervention du support.
Je dis cela car mon Superplan 2007+ n'avait pas d'origine le RTM de fonctionnel dans le manager. Donc déjà, à date de ce message, sur ce type de serveur et par défaut, absolument *aucune* info ne remonte à priori. Si vous êtes dans ce cas, pour reinstaller RTM, suivre le guide :
http://guide.ovh.com/realtimemonitoring
Ceci fait, dans mon cas, le RTM fonctionne (process, charge cpu -modèle E6320 pour moi-, identification de la carte mère -P5VD2-MX dans mon cas-, etc...) mais il n'y a toujours aucune info de remontée sur les HDD :( Pas de T°, pas d'état, rien ! :mad: Donc cela ne suffit toujours pas car, sauf erreur de ma part, on ne risque pas d'être averti par mail de la panne d'un HDD.
Comble du comble :eek: , sur mon serveur, les HDD n'avaient pas le smart d'activé par défaut donc pour le coup il n'y a *aucune* chance de récupérer des infos sur leur état via RTM ou autre. Nous allons voir comment l'activer.
Entrons dans le sujet : smartctl
J'ai donc mis en place manuellement le test d'état quotidien de chacun des 2 disques durs, avec envoi mail du résultat.
Pour cela j'utilise smartctl :
http://smartmontools.sourceforge.net/
http://guides.ovh.com/SmartMonTool
http://valaurea.free.fr/documents/sig11_smart.html
et les crons :
http://guides.ovh.com/DedieCron
La première chose à savoir c'est que pour accéder au disque sur ce serveur, l'option à ajouter dans la ligne de commande de smartctl c'est
-d -ata
ce qui à mon avis n'a guère de sens d'ailleurs vu ce que dit la doc relativement au rôle de cette option. J'ai trouvé par hasard, en testant.
La seconde chose à savoir c'est que les disques sont en "sda" et "sdb". Au final, pour avoir les infos sur chacun de vos disque cela donne (connectez vous en SSH, si besoin cf http://guides.ovh.com/SshSurServeurDedie) :
smartctl -i -d ata /dev/sda
et
smartctl -i -d ata /dev/sdb
Si comme pour moi le smart est désactivé sur chaque disque, afin de l'activer faites :
smartctl -s on -d ata /dev/sda
et
smartctl -s on -d ata /dev/sdb
NB : Vous pouvez de là refaire un -i cad redemander l'info des disques pour vérifier que le SMART est désormais bien activé.
Pour ma part, je me contente d'un test court vérifiant jusque l'état du disque cad s'il est "ok", ce qui donne comme commande :
smartctl -t short -d ata /dev/sda
Après le lancement de ce test il vous dit d'attendre une minute. Patientez puis pour lire le résultat du test faites :
smartctl -l selftest -d ata /dev/sda
NB : pour faire la même chose avec le second disque recommencer le test puis l'attente puis la lecture avec "sdb" en fin de ligne au lieu de sda.
NB2 : vous pouvez faire un test long et avoir bien plus de données d'état du disque si vous le souhaitez. Consultez la doc de smartd liée précédemment.
Reste à scripter tout cela.
Entrons dans le sujet : les crons et scripts
Tout au long de ce qui suit, je vais désigner par "monsite" le répertoire qu'a créé OVHM quand vous avez installé votre domaine sur votre serveur. Vous remplacerez donc "monsite" par le nom du repertoire sur votre serveur.
Pour définir les crons, passez par l'édition de /etc/crontab :
http://guides.ovh.com/DedieCron
et pour cela utilisez la commande pico en vous connectant en SSH. Plus bas je vous livre une explications plus détaillée.
J'insiste, faites-le à la main et n'utilisez *pas* la définition des crons via webmin, ils sont manifestement buggués :mad: !
Les heures de lancement des crons ne sont bien sur que des suggestions. Par contre l'intervalle entre les lancements est le minimum à respecter.
Le contenu du fichier sera donné : vous devez placer le fichier en question sur la racine de votre site web.
1er cron : lancement du test d'état du disque dur, une fois par jour.
Heure : 03h30
Commande : sh /home/monsite/www/lancedda.sh
Contenu du fichier lancedda.sh : smartctl -t short -d ata /dev/sda
2eme cron : lecture du résultat et écriture dans un fichier
Heure : 03h31
Commande : sh /home/monsite/www/recupdda.sh
Contenu du fichier recupdda.sh, tout est sur une seule ligne : rm -f /home/monsite/www/dda.txt; smartctl -l selftest -d ata /dev/sda > /home/monsite/www/dda.txt
3eme cron : mail du résultat
Heure : 03h32
Commande : sh /home/monsite/www/maildda.sh
Contenu du fichier maildda.sh, tout est sur une seule ligne : cd /home/monsite/www/; ./maildda.php
Contenu du fichier maildda.php :
#!/usr/local/bin/php
<?
$email = "votremail@votrefai.com";
$sujet ="ETAT DDA";
$logfile = "dda.txt";
$fp=fopen("$logfile","r");
if (!$fp) $corps = "Arret du script lecture de ddX.txt !";
$listing = "";
while (!feof ($fp))
{
$corps .= fgets($fp,4096);
}
fclose ($fp);
mail($email,$sujet,$corps,$headers);
?>
Sur ce dernier fichier php, après l'avoir envoyer en FTP sur la racine de votre site vous devez absolument de plus faire un "chmod 700" : vous pouvez le faire avec votre logiciel FTP en général, sinon connectez vous en SSH (cf
http://guides.ovh.com/SshSurServeurDedie) et faites :
chmod 700 /home/monsite/www/maildda.php
Voilà, c'est fini :) Bien sur il faut refaire le tout une seconde fois pour le second disque dur ;) : pour cela il vous suffira de tout recommencer en remplacant *partout*, dans les noms de fichiers *et* les commandes (attention, n'en oubliez pas !) :
dda par ddb
sda par sdb
et de changer les heure bien sur en ajoutant par exemple 10 minutes à chaque heure suggérée.
PS : edition du fichier crontab, pas à pas.
1) Connectez vous en SSH (http://guides.ovh.com/SshSurServeurDedie) avec login root et mot de passe correspondant
2) à l'invite, tapez
pico /etc/crontab
Pico se lance et ses commandes sont rappelées en bas de l'écran : le symbôle ^ représente la touche CRTL. Par exemple, pour quitter pico, faites CRTL-X (cad appuyez sur la touche CRTL et simultanément sur X) et pour sauver vos modifications vous ferez CTRL-0 puis validerez avec la touche return de votre clavier.
3) ok, refaites si besoin pico /etc/crontab et descendez à la fin du fichier puis tapez :
# test des hdd et envoi mail des infos :
30 3 * * * root sh /home/monsite/www/lancedda.sh
31 3 * * * root sh /home/monsite/www/recupdda.sh
32 3 * * * root sh /home/monsite/www/maildda.sh
et pour le second disque, avec 10 min de décalage, ajoutez
40 3 * * * root sh /home/monsite/www/lanceddb.sh
41 3 * * * root sh /home/monsite/www/recupddb.sh
42 3 * * * root sh /home/monsite/www/mailddb.sh
4) Faites CTRL-O, validez avec return puis faites CTRL-X pour quitter pico, c'est fini.
PPS : le smart étant activé sur les hdd, j'ai essayé de définir les DEVICE, dans /etc/smartd.conf en utilisant donc -d -ata et sda / sdb. Concrètement, j'ai donc mis en commentaire la ligne DEVICESCAN et j'ai ajouté les lignes :
/dev/sda -d ata -a
/dev/sdb -d ata -a
J'espérais qu'ensuite les infos remonteraient dans le manager et que l'état des hdd y apparaitrait, mais non :(
Si qqun a une idée à ce propos, je suis intéressé. Ceci dit, je n'ai pas trouvé de smart dans les tâches cron, contrairement à ce que dit cette doc ovh :
http://guides.ovh.com/SmartMonTool
?
Seb, alias kirin
Webmestre www.choixpc.com