Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
Arthur Gueno – Rapport de Stage 2eme Année – Arcelor Mittal
Du 05/01/2015 au 20/02/2015
Rédigé par :
Arthur Gueno
Stagiaire en BTS SIO option SLAM
Tuteur de Stage :
Yves Musset
Responsable SI
ArcelorMittal Basse-Indre
Suivi Pédagogique :
Jean-Pierre Beauvais
Professeur Principal
Arthur Gueno – Rapport de Stage 2eme Année – Arcelor Mittal
Remerciements
Je voudrais remercier premièrement Monsieur Yves MUSSET, pour m’avoir accueilli ainsi que pour
accordé sa confiance.
Je remercie également Monsieur Vincent PRIN, mon tuteur de stage, pour m’avoir accompagné tout
au long de se stage et qui est resté attentif à mon travail malgré les difficultés rencontrées et son
emploi du temps chargé.
J’aimerais aussi remercier mes collègues qui m’ont rapidement intégré au service : Gregory MAYET,
Thomas ENGEL, Christian ROGER, Erwan PRIOUL, Emmanuel MERLE, Rémi RAMBAULT, Bruno
GERMAIN et Thomas JUTON
Arthur Gueno – Rapport de Stage 2eme Année – Arcelor Mittal
Sommaire
• Introduction
• Présentation de l’entreprise
• Missions
o Missions 1- Mappage Réseau
o Mission 2 – Surveillance RAID
o Mission 3 - Surveillance des éléments de production Infotec
• Conclusion
Arthur Gueno – Rapport de Stage 2eme Année – Arcelor Mittal
Présentation
Entreprise Lors de la privatisation des entreprises de sidérurgies Française, Belge et Espagnole une fusion à eu
lieu pour créer une entreprise plus pesante sur le marché. En 2006, l’indien MITTAL rachète le
groupe et en fais le leader mondial de la sidérurgie avec environ 6% de la production mondiale
d’acier.
Avec 5 sites de production en Europe, Arcelor Mittal répartit ces ventes sur le marché de l’emballage
alimentaire ainsi que celui des aérosols. Arcelor Mittal Basse-Indre est site de production qui finit le
produit avant de l’expédier. L’emplacement stratégique de l’entreprise lui permet de bénéficier de
l’eau de la Loire pour le refroidissement des lignes de production.
L’usine se divise en trois secteurs reliés par des chemins de fer. Les produits, des rouleaux de métal,
passe de l’amont à l’aval en passant par plusieurs chaines. L’entreprise possède sont propre service
informatique qui gère aussi bien gestion réseaux que le développement.
Missions
1/Mappage Réseau
Contexte :
Ma première mission fut le mappage du réseau de l’entreprise. Arcelor Mittal utilise un outil appelé
Nagvis pour référencer chaque machine connecté au réseau. A l’aide de ce service hébergé sur un
serveur virtuel, les anomalies sont détectées instantanément. Cet outil est primordial car l’usine
fonctionne 24h/24h et 7j/7j, étant donné que l’intégralité des lignes de productions sont pilotés par
informatique la panne n’est pas tolérée.
Arthur Gueno – Rapport de Stage 2eme Année – Arcelor Mittal
Fonctionnement :
Nagios est un logiciel de Supervision de l’infrastructure des Systèmes Informatiques. Nagvis est l’un
des services de Nagios. Chacune des machines connectées au réseau est interrogé par Nagvis (Ping,
SNMP …), cela détermine son état. L’ensemble des machines peut ainsi être classé sur une map.
La vue ci-dessous représente l’architecture de la solution de supervision mise en place sur le site de
Basse-Indre par le service SI.
Les logiciels présentés ci-dessus sont open source sous licence GNU GPL (licence qui fixe les
conditions légales de distribution des logiciels libres).
L’architecture du système de supervision se décompose en trois parties : un ordonnanceur, une IHM
et des plugins.
L’ordonnanceur
Nagios est d’abord un moteur gérant l’ordonnancement des tâches de supervision, le service SI
utilise le logiciel Centreon qui permet de configurer le système de supervision dans son ensemble à
partir d’une IHM conviviale. Centreon fournit une interface simplifiée, en apparence, pour rendre la
consultation de l'état du système accessible à un plus grand nombre d'utilisateurs.
L’IHM
Basée sur un service web, l’IHM permet d’avoir une vue globale du système d’information. Pour une
visualisation des renseignements claire, le service SI utilise Nagvis.
Arthur Gueno – Rapport de Stage 2eme Année – Arcelor Mittal
Les plugins
Les plugins sont des scripts utilisés pour superviser chaque service ou ressource disponible sur les
éléments du réseau. Les plugins développés doivent respecter certaines règles. Ceux-ci doivent
notamment renvoyer :
Un code de retour (statut) compris entre 0 et 3.
Un texte limité à 255 caractères (message décrivant l’état de l’hôte ou du service).
Sujet :
A mon arrivé, la map établit par Nagvis était une map réseau logique:
A la demande des techniciens qui s’appuient sur cette map pour travailler, une map géographique
devait être faite pour plus de facilité à situer une anomalie.
Outils et Docs :
-Total Accès au Service de Supervision
-Un poste Process (Windows 7, Orienté développement)
Arthur Gueno – Rapport de Stage 2eme Année – Arcelor Mittal
-WinSCP (Client FTP)
-Un poste Harmony (XP, Orienté bureautique)
-Visual Standard (Editeur d’image)
-Le travail inachevé d’un ancien stagiaire (bac +4)
-L’intégrale du code déjà présent (fichier cfg)
-Les maquettes des maps déjà créée
-Une formation sur la technologie
Réalisations :
Lors de cette mission j’ai créé des maquettes pour les maps de chaque service à l’aide du logiciel
Visual Standard et de plusieurs gabarits.
Exemple d’une maquette (GEO_LR1.png):
Une fois l’image créée elle doit être copié dans le dossier prévu pour accueillir les images. Pour ceci
j’utilise WinSCP :
Arthur Gueno – Rapport de Stage 2eme Année – Arcelor Mittal
Puis il faut faire le fichier cfg qui appellera cette dernière et affichera les objets représentant les
différentes machines du service :
Arthur Gueno – Rapport de Stage 2eme Année – Arcelor Mittal
Le fichier cfg appelle bien l’image « GEO_LR1.png ».
Un objet se définit par un label (ici « host »), il possède un nom et plusieurs paramètres, notamment
sa position en x et y sur la page. Les paramètres non utilisés peuvent ne pas être renseigné
(label_text, url, hover_menu …)
Pour finir ajuster la position des objets pour qu’il soit correctement classé :
La capture d’écran ci-dessus représente l’ensemble du matériel informatique présent sur le service
Ligne de revêtement n°1, cette page s’affiche lorsque l’on clique sur
Arthur Gueno – Rapport de Stage 2eme Année – Arcelor Mittal
Ci-dessus voici la carte géographique légué par l’ancien stagiaire. Cependant elle ne représente pas
tous les services et les services présents n’avaient pas de map. J’ai donc réalisé le mappage de
chacun des services et aussi modifié la carte géographique sur Visio.
Et Voici la Carte géographique finale avec les services ajoutés:
Arthur Gueno – Rapport de Stage 2eme Année – Arcelor Mittal
2/Surveillance RAID
Contexte :
L’entreprise possède un Calculateur avec des disques en RAID, ce dernier est aussi couplé avec un
deuxième calculateur de secours de même configuration.
Fonctionnement :
Centreon est un module de Nagios qui exécute des scripts. Ces scripts exécutent des requêtes SNMP
sur les différentes machines à surveiller, ces dernières renvoient une valeur. Centreon assigne un
statut (critical, warning, ok, unknow) selon ce qu’on lui a définit. C’est ainsi qu’à une certaine
fréquence par jour, Centreon met à jour l’état des éléments qu’il observe et permet de créer une
map pour faciliter la surveillance.
Sujet :
Toute cette installation est très sécurisé contre les pannes et imprévus, cependant la salle qui
héberge le matériel est situé à quelques kilomètres de bureau de la personne qui les gère (entre
autres). Il m’a donc été demandé de configurer une surveillance sur ce matériel.
Outils et Docs :
-Total Accès au Service de Supervision
Arthur Gueno – Rapport de Stage 2eme Année – Arcelor Mittal
-Un poste Process (Windows 7, Orienté développement)
-PuTTy (Emulateur de Terminal)
-Un poste Harmony (XP, Orienté bureautique)
-WordPad (Logiciel de traitement de texte)
-Fichiers MIB (Documentation Constructeur)
-Logs SNMP
-Script ‘snmpwalk.exe’ qui permet d’interroger manuellement une machine.
-Une formation sur la technologie
-SNMP
-Centreon
-Perl
-Site internet : http://oid-info.com
Réalisation :
Dans un premier temps j’ai étudié les logs SNMP pour comprendre ce Protocole.
Procédure pour obtenir les logs SNMP d’une machine A :
-Il faut que votre PC soit sur le même réseau.
-Avec la console construire la commande :
‘’Chemin_du_fichier_snmpwalk.exe’’ Nom_de_la_machine_A public [précision du chemin OID] > Chemin_fichier_de_destination
____ & ____ = facultatif
Exemple :
"P:\Mission 2\SNMP-PERL\snmpwalk.exe.lnk" vhal02 public .1.3.6.1.4.1 > C:\vhal02_normal.txt
Suite à celà le fichier est créé (ou concaténer si il existe déjà) avec l’ensemble des logs.
On obtient donc ceci :
.iso.3.6.1.4.1.232.3.2.2.2.1.8.1 = 0
.iso.3.6.1.4.1.232.3.2.2.2.1.9.1 = 2
.iso.3.6.1.4.1.232.3.2.2.2.1.10.1 = 57344
.iso.3.6.1.4.1.232.3.2.2.2.1.11.1 = ""
Arthur Gueno – Rapport de Stage 2eme Année – Arcelor Mittal
.iso.3.6.1.4.1.232.3.2.2.2.1.12.1 = 114688
.iso.3.6.1.4.1.232.3.2.2.2.1.13.1 = Gauge: 0
.iso.3.6.1.4.1.232.3.2.2.2.1.14.1 = Gauge: 0
.iso.3.6.1.4.1.232.3.2.3.1.1.1.1.1 = 1
.iso.3.6.1.4.1.232.3.2.3.1.1.1.1.2 = 1
.iso.3.6.1.4.1.232.3.2.3.1.1.2.1.1 = 1
.iso.3.6.1.4.1.232.3.2.3.1.1.2.1.2 = 2
.iso.3.6.1.4.1.232.3.2.3.1.1.3.1.1 = 3
.iso.3.6.1.4.1.232.3.2.3.1.1.3.1.2 = 3
.iso.3.6.1.4.1.232.3.2.3.1.1.4.1.1 = 2
.iso.3.6.1.4.1.232.3.2.3.1.1.4.1.2 = 2
.iso.3.6.1.4.1.232.3.2.3.1.1.5.1.1 = 15
.iso.3.6.1.4.1.232.3.2.3.1.1.5.1.2 = 15
.iso.3.6.1.4.1.232.3.2.3.1.1.6.1.1 = 0
.iso.3.6.1.4.1.232.3.2.3.1.1.6.1.2 = 0
.iso.3.6.1.4.1.232.3.2.3.1.1.7.1.1 = 3
.iso.3.6.1.4.1.232.3.2.3.1.1.7.1.2 = 3
.iso.3.6.1.4.1.232.3.2.3.1.1.8.1.1 = ""
.iso.3.6.1.4.1.232.3.2.3.1.1.8.1.2 = ""
.iso.3.6.1.4.1.232.3.2.3.1.1.9.1.1 = 34731
.iso.3.6.1.4.1.232.3.2.3.1.1.9.1.2 = 34731
.iso.3.6.1.4.1.232.3.2.3.1.1.10.1.1 = Hex: 00 10
.iso.3.6.1.4.1.232.3.2.3.1.1.10.1.2 = Hex: 01 11
.iso.3.6.1.4.1.232.3.2.3.1.1.11.1.1 = 2
.iso.3.6.1.4.1.232.3.2.3.1.1.11.1.2 = 2
.iso.3.6.1.4.1.232.3.2.3.1.1.12.1.1 = Gauge: 4294967295
.iso.3.6.1.4.1.232.3.2.3.1.1.12.1.2 = Gauge: 4294967295
.iso.3.6.1.4.1.232.3.2.3.1.1.13.1.1 = 128
.iso.3.6.1.4.1.232.3.2.3.1.1.13.1.2 = 128
.iso.3.6.1.4.1.232.3.2.3.1.1.14.1.1 = "DKB0" Hex: 44 4B 42 30
.iso.3.6.1.4.1.232.3.2.3.1.1.14.1.2 = "DKB1" Hex: 44 4B 42 31
Arthur Gueno – Rapport de Stage 2eme Année – Arcelor Mittal
Explication des Logs SNMP Avec un nombre de lignes variable selon la précision du chemin OID. Dans l’ensemble, Les logs SNMP permettent de tout savoir sur la machine A. Chaque nombre entre .points. représente un niveau de l’architecture SBMP. Tout est référencé dans les fichiers MIB correspondant à chaque marque. Par exemple les lignes surlignées en _ correspond à :
cpqDaLogDrvSize OBJECT-TYPE SYNTAX INTEGER (0..2147483647) ACCESS read-only STATUS mandatory DESCRIPTION "Logical Drive Size. This is the size of the logical drive in megabytes. This value is calculated using the value 1,048,576 (2^20) as a megabyte. Drive manufacturers sometimes use the number 1,000,000 as a megabyte when giving drive capacities so this value may differ from the advertised size of a drive." ::= { cpqDaLogDrvEntry 9 }
‘34731’ correspond à la taille de l’unité logique en mégaoctets. La description précise que certains constructeurs ne calculent pas cette valeur de la même façon. On remarquera également que le dernier nombre de cette définition est 9, hors les 2 lignes surlignés en jaunes finissent par .1.1 et .1.2. C’est pour différencier les 2 disques logiques, cela correspond à l’étiquette de chaque disque. Ainsi à chaque fois que l’on retrouve .1.1 à la fin d’une ligne de cette branche c’est qu’elle fait référence au disque logique 1. Deuxième exemple la ligne surlignée en _ représente le nom du disque logique:
cpqDaLogDrvOsName OBJECT-TYPE SYNTAX DisplayString (SIZE (0..255)) ACCESS read-only STATUS mandatory DESCRIPTION "Logical Drive OS Name. The OS name for this array logical drive. This field will be a null (size 0) string if the agent does not support OS name." --:CPQ,DEV: -- For NT, the string will be of the form "Disk %u". --:CPQ,ENDDEV: ::= { cpqDaLogDrvEntry 14 }
Pour retrouver un élément précis dans les logs, j’utilise un site internet qui répertorie toute
l’arborescence OID : http://oid-info.com/
Une fois l’objet trouvé je vérifie sa définition et ses différentes valeurs dans les fichiers MIB.
Arthur Gueno – Rapport de Stage 2eme Année – Arcelor Mittal
Voici les 3 sortes d’objets demandés pour surveiller le Raid :
Objet MIB Description
cpqDaPhyDrvStatus OBJECT-TYPE SYNTAX INTEGER { other(1), ok(2), failed(3), predictiveFailure(4) }
Correspond au statut d’un disque physique. Valeur SNMP : 1.3.6.1.4.1.232.3.2.5.1.1.6
cpqDaLogDrvStatus OBJECT-TYPE SYNTAX INTEGER { other(1), ok(2), failed(3), unconfigured(4), recovering(5), readyForRebuild(6), rebuilding(7), wrongDrive(8), badConnect(9), overheating(10), shutdown(11), expanding(12), notAvailable(13), queuedForExpansion(14) }
Correspond au statut d’un disque logique. Le disque logique est aussi appelé Pool Raid. Valeur SNMP : 1.3.6.1.4.1.232.3.2.3.1.1.4
cpqDaCntlrBoardStatus OBJECT-TYPE SYNTAX INTEGER { other(1), ok(2), generalFailure(3), cableProblem(4), poweredOff(5) }
Correspond au statut de la carte Raid. Valeur SNMP : 1.3.6.1.4.1.232.3.2.2.1.1.10
Légende :
OK (0)
WARNING (1)
CRITICAL (2)
UNKNOWN (3) ~Absence de valeur retour~
Il est important de connaitre toutes les valeurs que peuvent prendre chaque objet. Par la suite ces
valeurs sont utilisées dans un script Perl qu’exécute Nagios pour « checker » une machine.
Arthur Gueno – Rapport de Stage 2eme Année – Arcelor Mittal
Le langage Perl Les plugins Nagios peuvent être développés dans différents langages de programmation : C++, Perl, Python, Script Shell (Bash), etc. La solution choisie au sein du service SI est de développer les scripts en langage Perl. Perl signifie Practical Extraction and Report Language. C’est un langage de programmation créé par Larry Wall en 1987 et reprenant certaines fonctionnalités du langage C et des langages de scripts Sed, Awk et Shell
(sh). Il est particulièrement adapté au traitement et à la manipulation de données textuelles, notamment du fait de l'intégration des expressions régulières dans la syntaxe même du langage : bases de données, flux et protocoles réseaux (web, courriel, SNMP, LDAP, etc), administration système (logs, configuration), manipulation de formats de données (XML, CSV, etc). Pourquoi utiliser ce langage pour développer des sondes de supervision ? Voici quelques-uns de ces avantages :
Langage interprété assez simple à apprendre. Débuggeur intégré. Généralement connu des administrateurs systèmes. Nombreuses bibliothèques disponibles gratuitement sur internet. Installé sur de nombreux Unix et Linux par défaut. Traitement de chaînes de caractères très avancé. Très utilisé par la communauté des utilisateurs Nagios. Interpréteur Perl embarqué dans Nagios : performances optimisées. Supervision des serveurs HP.
Script PERL servant à rapporter l’état des disques physiques :
Arthur Gueno – Rapport de Stage 2eme Année – Arcelor Mittal
Arthur Gueno – Rapport de Stage 2eme Année – Arcelor Mittal
Arthur Gueno – Rapport de Stage 2eme Année – Arcelor Mittal
Arthur Gueno – Rapport de Stage 2eme Année – Arcelor Mittal
Comme on peut le voir sur ci-dessus on peut (doit) renseigner quelques options lors du lancement du
script en manuel :
-h Affiche l’aide
-H Doit précéder le nom de l’hôte ou sont adresse IP
-d Active le mode debug qui affiche les différents traitements du script
-s Mode simulation pour tester tout les cas d’erreurs possible :
J’ai donc créé 3 scripts (surveillance disque physique, logique et carte RAID) que j’ai ensuite déposé
dans NAGIOS avec WinSCP.
Pour finir il à fallu configurer CENTREON. C'est-à-dire créer les 3 commandes, créer un groupe de
Machines et créer les services de surveillance.
Et voici le service surveillance qui fonctionne :
Arthur Gueno – Rapport de Stage 2eme Année – Arcelor Mittal
On peux remarquer ici que le VRCE01 à une alerte WARNING au moment du screen shot ! En cliquant
dessus on peux avoir les informations sur cette alerte :
Observation :
Durant cette mission nous avons rencontré des problèmes puisque les informations SNMP restaient
fixe même lorsque l’on créait une erreur en enlevant un disque. Il s’est avéré que ses problèmes
venaient de la configuration de la machine.
De plus certains calculateurs affichent en permanence car leur bai disque est
différente et plus ancienne que celles sur lesquelles je me suis basé pour créer les scripts. En réalité
le problème est simple : le chemin SNMP pour obtenir les informations désirées n’est pas le même et
donc il faut trouver le fichier MIB de ce matériel sur internet … malheureusement je ne l’ai pas
trouvé.
Arthur Gueno – Rapport de Stage 2eme Année – Arcelor Mittal
3/Surveillance des éléments de production Infotec
Contexte :
Infotec est le système informatique permettant le suivi qualité de l’ensemble des bobines sur les
lignes de production usine. C’est la contraction d’infocentre technique. Le système Infotec repose sur
des bases de données Sybase.
Fonctionnement :
Surveillance actuel
Arthur Gueno – Rapport de Stage 2eme Année – Arcelor Mittal
Sujet :
Modification demandée
Afin d’alléger le code et de diminuer le temps de traitement, la procédure stocké fera les traitements
nécessaires.
Outils et Docs :
-Total Accès au Service de Supervision
-Un poste Process (Windows 7, Orienté développement)
Arthur Gueno – Rapport de Stage 2eme Année – Arcelor Mittal
-PuTTy (Emulateur de Terminal)
-Accès à Nagios et un Calculateur pour les tests
-WinSCP
-Un poste Harmony (XP, Orienté bureautique)
-WordPad (Logiciel de traitement de texte)
-Internet pour les recherches
-Le script Perl de base
-La procédure Stockée de Base
-La documentation liée au fonctionnement de l’ensemble
Réalisation :
La première étape fut de créer la procédure stockée en SQL qui réalise l’ensemble des traitements.
Celle-ci écrit ensuite dans la table REOUR_ANOMALIE le statut et le libelle de l’erreur.
Arthur Gueno – Rapport de Stage 2eme Année – Arcelor Mittal
Les données sont donc récupérées par une requête dans le script PERL.
Les difficultés rencontrées m’ont poussé à passer les données via une Table de la base mais à la base
la procédure stockée devait les spécifier en paramètres sortie.
Ce service n’a pas été mis en production à la fin de mon stage, en revanche les tests on été réalisés
sur le calculateur premièrement avec la procédure stockée puis sur NAGIOS avec le script PERL.
Vide et remplit la table.
Arthur Gueno – Rapport de Stage 2eme Année – Arcelor Mittal
Conclusion
Pour résumé mon stage chez Arcelor Mittal :
- J’ai appris un nouveau langage : PERL.
-J’ai approfondis mes connaissances en SQL.
-J’ai été confronté à des problèmes m’obligeant de revoir le cahier des charges.
-J’ai analysé et étudié le protocole SNMP.
-J’ai travaillé sur un système de supervision.
L’ambiance de travail était très agréable, mes collègues attentifs à mes demandes et tout à été
mis en œuvre pour que j’ai toutes les informations et outils pour réaliser mon projet.