TDB-SSI LES EXTENSIONS
|
|
|
- Mauricette Beaudry
- il y a 10 ans
- Total affichages :
Transcription
1 TDB-SSI LES EXTENSIONS
2 U n i v e r s i t é d e l a M é d i t e r r a n é e F a c u l t é d e M é d e c i n e Projet TDB-SSI Documentation du Tableau de Bord de Sécurité des Systèmes d Information Marseille, le 13/03/2009 Les extensions Documentation du TDB-SSI Date : 13/03/09 Nom du fichier : TDB-SSI Les extensions.pdf Nombre de pages : 79 Auteur(s) : Jean-marc Pelle Validation : Chef de projet (Philippe Tourron) Approbation : Équipe Projet TDB-SSI Licence de ce document : TDB-SSI Les extensions by Université de la Méditerranée (CIGR - Faculté de Médecine de Marseille) est mis à disposition selon les termes de la licence Creative Commons Paternité-Pas d'utilisation Commerciale-Partage des Conditions Initiales à l'identique 2.0 France. Basé sur une oeuvre à infocigr.timone.univ-mrs.fr. Licence du logiciel TDB-SSI : Le logiciel TDB-SSI est régi par la licence CeCILL soumise au droit français et respectant les principes de diffusion des logiciels libres. Historique des modifications CIGR Université de la Méditerranée 2 [email protected]
3 Date Objet de la modification Auteur(s) Statut 13/03/09 Création du document pour la diffusion de l application TDB-SSI 11/12/09 Mise en conformité avec les changements apportés par la version 1.0 RC2 Jean-Marc Pelle Jean-Marc Pelle Validé Validé Ce document a été réalisé dans le cadre du projet TDB-SSI Les commentaires et suggestions sont encouragés et peuvent être adressés à l'adresse suivante : [email protected] CIGR Université de la Méditerranée 3 [email protected]
4 Table des matières 1)Présentation...6 2)Les éléments manipulés par les extensions )Les sources )Les thèmes )Les sous-thèmes )Les indicateurs )Les propriétés générales des indicateurs )Les propriétés spécifiques à un type d'indicateur )Les modèles d indicateur )Les données saisies manuellement )La constitution d une extension )Le fichier d'extension sur le serveur WEB )Le (les) fichier(s) d'extension sur le serveur de collecte )L API des extensions )Fonctions et procédures hors classes sur le serveur WEB )connexion_bdd_tdb() )session_start() )controle_session_user_si(...) )require_once("../biblio/commun.php") )Fonctions et procédures hors classes sur le serveur de collecte )connexion_bdd_tdb() )require_once("commun.php") )error_log(...) )La classe PLUGIN )_construct(...) )ajouter_donnee_et_indic_manuel( ) )ajouter_indic_si_auto ( ) )ajouter_indic_moyen_direct( ) )ajouter_modele ( ) )ajouter_source ( ) )ajouter_ss_theme ( ) )ajouter_theme ( ) )set_tab_moyens(...) )get_nb_moyens() )get_tab_moyens( ) )La classe PLUGIN_COLLECTE ) construct(...) )insert_valeur_indic_si_auto( ) )insert_valeur_indic_moyen_direct( ) )insert_valeur_indic_moyen_modele( ) )set_tab_indics_moyen_dir( ) )set_tab_moyens_audites(...) )get_nb_indics_moyen_dir() )get_nb_moyens_audites() )get_tab_indics_moyen_dir(...) )get_tab_moyens_audites(...) )Méthodes spécifiques pour les indicateurs «composés» )get_derniere_valeur_donnee(...) )get_derniere_valeur_indic_si_auto(...) )get_derniere_valeur_indic_moyen_modele(...)...34 CIGR Université de la Méditerranée 4 [email protected]
5 )get_derniere_valeur_indic_existant(...) )Logique algorithmique du code d'une extension )Logique algorithmique du code du fichier sur le serveur WEB )Logique algorithmique du code du fichier sur le serveur de collecte )PAS-A-PAS : Développer une extension - Le fichier sur le serveur WEB )Intégration du fichier dans l'application WEB )Configuration : L'extension )Configuration : La source )Configuration : Le thème et le sous-thème )Configuration : Les indicateurs, modèles et données à saisie manuelle )Arbre décisionnel )Configuration d'un indicateur de SI automatique )Configuration d'une donnée à saisie manuelle et de l'indicateur manuel qui l'audite )Configuration d'un indicateur de moyen direct )Configuration d'un modèle d'indicateur de moyen )Connexion à la base de données et contrôles de variables de sessions )Instanciation d'un objet de la classe PLUGIN )Création des éléments définis au cours de l'étape de configuration )PAS-A-PAS : Développer une extension Le fichier sur le serveur de collecte )Connexion à la base de données du tableau de bord )Définition du code de l extension et du numéro de la source correspondant à ce fichier )Instanciation d un objet de la classe PLUGIN_COLLECTE )Opérations spécifiques à un type d'indicateur )Les indicateurs de SI à collecte automatique )Les indicateurs de moyen par modèle )Les indicateurs de moyen directs )Récupération des valeurs à insérer dans la base de données )Insertion des valeurs récupérées dans la base de données du tableau de bord )Exemples d'extensions par type d'indicateurs créés )Indicateurs de moyen par modèle : l'extension LOGCHECK )Le fichier sur le serveur WEB )Le fichier sur le serveur de collecte )Indicateurs de moyen directs : l'extension ZABBIX )Le fichier sur le serveur WEB )Le fichier sur le serveur de collecte )Indicateurs de SI à collecte automatique : l'extension STATS )Le fichier sur le serveur WEB )Le fichier sur le serveur de collecte )Indicateurs de SI à collecte manuelle et données saisies : l'extension BUDGET )Le fichier sur le serveur WEB )Le fichier sur le serveur de collecte (cas du traitement d'un indicateur composé)...78 CIGR Université de la Méditerranée 5 [email protected]
6 1) Présentation Sans les extensions, le tableau de bord ne pourrait générer que des indicateurs issus de données à saisie manuelle. En effet, les extensions permettent d intégrer dans le tableau de bord des indicateurs provenant de n importe quel type de source. Elles créent les indicateurs et les différents éléments nécessaires à leur fonctionnement au sein du tableau de bord. Elles permettent également d assurer la collecte automatique des valeurs de ces indicateurs. Les extensions sont aussi nommées «plugins». Structure de cette documentation : Chapitre 2 : Présentation des différents éléments qui seront créés et manipulés par une extension. Chapitre 3 : La constitution de l'extension au sein de l'architecture de l'application. Chapitre 4 : Présentation de l'api qui propose les outils nécessaires au développement d'une extension. Chapitre 5 : La logique algorithmique de chacun des deux fichiers composant l'extension. Chapitre 6 : Procédure pas-à-pas, développer le fichier de l'extension sur le serveur WEB. Chapitre 7 : Procédure pas-à-pas, développer le fichier de l'extension sur le serveur de collecte. Chapitre 8 : Exemples complets d'extensions. Vous n'êtes bien sûr pas obligés de lire cette documentation dans l'ordre. Vous pouvez très bien commencer par essayer de suivre les procédures pas-à-pas et vous reporter aux chapitres expliquant l'api (chap.4) ou les éléments manipulés (chap.2) au fur et à mesure selon vos besoins. N'hésitez pas non plus à vous reporter régulièrement aux exemples du chapitre 8 afin de mieux appréhender la structure d'une extension. CIGR Université de la Méditerranée 6 [email protected]
7 2) Les éléments manipulés par les extensions Les extensions utilisent 6 éléments qui possèdent chacun des propriétés à définir. L'extension elle-même possède 3 propriétés: CODE_EXT code de l'extension string(6) LIB_EXT libellé de l'extension string(128) DESCRIPTION_EXT description de l'extension string(255) NB: String (6) signifie que l'élément est de type chaine de caractères et qu'il a une longueur maximale de 6 caractères. NB2: Pour chaque SI où elle est installée, une extension possède un numéro de version. 2.1) Les sources Une source est un fichier PHP exécuté automatiquement par le serveur de collecte grâce au CRON. Il effectue une série de traitements permettant de collecter les valeurs de tous les indicateurs correspondant à cette source. Liste des propriétés d'une source : NUM_SOURCE Numéro de la source dans l'extension Entier LIB_SOURCE Libellé de la source String(128) DESCRIPTION_SOURCE Description de la source String(255 PERIO_COLLECTE Code de la périodicité de collecte String(6) COLLECTE_NOCTURNE Collecte effectuée en nocturne ou pas Booléen (0 ou 1) Valeurs possibles du champ PERIO_COLLECTE : Ce champ correspond à la périodicité de collecte de l'indicateur, c'est à dire la périodicité d'exécution du fichier PHP de collecte par le CRON du serveur de collecte. Il peut prendre 7 valeurs : min : toutes les minutes heure : toutes les heures jour : quotidienne sem : hebdomadaire mois : mensuelle an : annuelle manuelle : la collecte n'est pas automatisée (cas des indicateurs manuels) CIGR Université de la Méditerranée 7 [email protected]
8 2.2) Les thèmes Ils permettent de regrouper les sous-thèmes traitant d'une même thématique(exemple: les sousthèmes «Menaces virales» et «Menaces IDS» pourront appartenir au thème «Sécurité»). NUM_THEME Numéro du thème dans l'extension Entier LIB_THEME Libellé du thème String(128) 2.3) Les sous-thèmes Les sous-thèmes regroupent sémantiquement les différents indicateurs et données saisies selon une thématique commune(exemple : menaces virales, menaces IDS ). Ils serviront à créer des groupes d' indicateurs ayant un fort lien sémantique afin de les présenter de manière organisée dans l'interface WEB. NUM_SS_THEME Numéro du sous-thème dans l'extension Entier LIB_SS_THEME Libellé du sous-thème String(128) NUM_THEME Numéro du thème auquel appartient ce sousthème Entier CIGR Université de la Méditerranée 8 [email protected]
9 2.4) Les indicateurs Ils sont de 4 types : - L indicateur de SI automatique : C est un indicateur qui concerne un SI dans son ensemble par opposition aux indicateurs de moyen qui se rapportent uniquement à un moyen du SI. La collecte des valeurs de ce type d indicateur est automatique, elle est déclenchée par le CRON du serveur de collecte. Exemples d indicateurs de ce type : Nombre de postes infectés par un virus, Nombre de moyens sous contrat de maintenance - L indicateur de SI manuel : C est un indicateur qui concerne aussi un SI dans son ensemble. A la différence du type d indicateur précédent, celui-ci est issu d une donnée saisie manuellement dans le tableau de bord. Cela implique que la collecte de ses valeurs n est pas assurée par le serveur de collecte, elle est uniquement déclenchée en cas d ajout ou de modification d une valeur de la donnée saisie correspondante. Exemples d indicateurs de ce type : budget annuel, nombre d interventions mensuelles concernant la sécurité - L indicateur de moyen par un modèle : C est un indicateur qui concerne un moyen particulier du SI. Il est de plus issu d un modèle d indicateur, c'est-à-dire que sa création et ses propriétés par défaut sont issues de l application d un modèle à un moyen (le modèle d indicateur est défini au paragraphe suivant) Exemple d indicateur de ce type : Criticité du rapport de log d un serveur. - L indicateur de moyen direct : C est aussi un indicateur qui concerne un moyen particulier du SI. Ce qui le différencie de l indicateur de moyen par modèle est d ordre technique. En effet, il ne provient pas d un modèle que l on applique à un moyen. Il est créé directement en puisant les données dans une base de données externe au tableau de bord qui contient des informations sur les différents moyens du tableau de bord. Des exemples de ce type d indicateurs sont les indicateurs issus d outils de supervision du type Zabbix ou Nagios. CIGR Université de la Méditerranée 9 [email protected]
10 2.4.1) Les propriétés générales des indicateurs NUM_ID_INDIC Numéro identifiant de l'indicateur Entier CODE_TYPE_INDIC Code du type d indicateur String(6) IND_ALARME Indice de l alarme Entier de 0 à 3 CODE_NIV Code du niveau de visibilité String(6) CODE_TYPE_VAL Code du type de la valeur String(6) NUM_SOURCE Numéro de la source de l indicateur Entier(2) NUM_SS_THEME Numéro id du sous-thème correspondant Entier (8) IND_CONF Indice de confidentialité Entier de 0 à 4 CODE_HISTO Code de la durée d historisation String(6) CODE_GRAPH Code du graphique String(6) LIB_INDIC libellé de l'indicateur String(128) DESCRIPTION_INDIC description de l'indicateur String(255) COMMENT_INDIC commentaire sur l'indicateur Text(65535) UNITE_INDIC unité de l'indicateur String(128) VALEUR_SEUIL_INDIC valeur seuil de l'indicateur String(128) OPERATEUR_SEUIL_INDIC opérateur servant à activer l'alarme String(2) VALEUR_CIBLE_INDIC valeur cible de l'indicateur String(128) GENERATION_RAPPORT Génération d'un rapport ou pas Booléen (0 ou 1) RAPPORT ENVOI_ DATE_LAST_VALUE PRIORITE_INDIC rapport concernant la dernière valeur de l'indicateur envoi d'un en cas d'activation de l'alarme date de la dernière valeur enregistrée de l'indicateur priorité d'affichage de l'indicateur (entier de 0 à 5) Text(65535) Booléen (0 ou 1) String Entier de 0 à 5 VALUE_CHANGE_SAVING Sauvegarde par changement de valeur Booléen (0 ou 1) CIGR Université de la Méditerranée 10 [email protected]
11 Valeurs possibles de propriétés générales particulières : CODE_TYPE_INDIC : Type d'indicateur - auto : indicateur de SI à collecte automatique - manuel : indicateur de SI issu d'une donnée saisie manuellement - moydir : indicateur de moyen directement - moymod : indicateur de moyen issu d'un modèle CODE_NIV : Niveau de visibilité de l'indicateur - ope : opérationnel - pilo : pilotage - strat : stratégique CODE_TYPE_VAL : Type de la valeur - bool : booléen - int : entier - real : nombre réel - string : chaine de caractères CODE_HISTO : Durée d'historisation des valeurs de l'indicateur - 12h : 12 heures - jour : un jour - sem : une semaine - mois : un mois - 6mois : 6 mois - an : un an - def : définitif CODE_GRAPH : Graphique illustrant les valeurs de l'indicateur - cam : camembert - cour : courbe - histo : histogramme Attention dans le choix de la représentation graphique: - Les courbes montrent l'évolution des valeurs de type numérique d'un indicateur au cours du temps. Seuls les indicateurs dont la valeur est de type entier ou réel peuvent donc être représentés par une courbe. - Les camemberts et histogrammes montrent la fréquence d'apparition des différentes valeurs de l'indicateur pour une période donnée. Ces types de représentations graphiques ne sont donc pertinentes que pour des indicateurs qui n'ont que peu de valeurs différentes. CIGR Université de la Méditerranée 11 [email protected]
12 2.4.2) Les propriétés spécifiques à un type d'indicateur Certaines propriétés n'appartiennent qu'à un type d'indicateur: - L indicateur de SI automatique : Il n'a aucune propriété spécifique. NUM_INDIC_SI_AUTO Numéro de l'indicateur de SI à collecte automatique dans l'extension. Entier - L indicateur de SI manuel : Il est relié à une donnée à saisie manuelle. NUM_DONNEE Numéro de la donnée correspondante dans l'extension Entier - L indicateur de moyen par un modèle : Il est relié à un modèle et à un moyen. NUM_MODELE Numéro du modèle correspondant dans l'extension. Entier NUM_ID_MOY Numéro identifiant du moyen correspondant Entier - L indicateur de moyen direct : il est relié à un moyen mais aussi à un enregistrement d'une table située dans une base de données externe au tableau de bord. TABLE_BDD_EXTERNE Nom de la table de la donnée externe ID_EXTERNE NUM_ID_MOY ID de l enregistrement de la donnée externe Numéro identifiant du moyen correspondant (entier auto-incrémenté) String(20) String(14) Entier CIGR Université de la Méditerranée 12 [email protected]
13 2.5) Les modèles d indicateur TDB-SSI Les extensions Ce sont des modèles d indicateurs qui auditeront des moyens enregistrés dans le tableau de bord. Exemple : Criticité du rapport de log. En associant un modèle à un moyen on crée un indicateur de moyen par modèle dont toutes les propriétés par défaut seront celles du modèle qui a servi à le générer (exemples de propriétés : durée d historisation, représentation graphique, indice d alarme ). Le plus gros avantage qu'offre l'utilisation des modèles est la modification de masse. En effet, la modification d'une propriété d'un modèle entraine la modification de cette propriété pour tous les indicateurs qui en sont issus. A part num_modele et lib_modele, on retrouve les mêmes propriétés que dans l'élément «INDICATEURS». NUM_MODELE Numéro du modèle dans l'extension Entier NUM_SOURCE NUM_SS_THEME Numéro de la source du modèle dans l'extension Numéro du sous-thème associé dans l'extension Entier Entier IND_ALARME Indice de l alarme Entier de 0 à 4 CODE_NIV Code du niveau de visibilité String(6) IND_CONF Indice de confidentialité Entier de 0 à 4 CODE_TYPE_VAL Code du type de la valeur String(6) CODE_HISTO Code de la durée d historisation String(6) CODE_GRAPH Code du graphique String(6) LIB_MODELE Libellé du modèle String(128) LIB_INDIC Libellé de l indicateur String(128) DESCRIPTION_INDIC Description de l indicateur String(255) COMMENT_INDIC Commentaire de l indicateur Text(65535) UNITE_INDIC Unité de l indicateur String(128) VALEUR_SEUIL_INDIC Valeur seuil de l indicateur String(128) OPERATEUR_SEUIL_INDIC Opérateur de calcul de l alarme String(2) VALEUR_CIBLE_INDIC Valeur cible de l indicateur String(128) GENERATION_RAPPORT ENVOI_ Génération d'un rapport ou pas par l'indicateur lié Envoi d'un en cas d'activation de l'alarme de l'indicateur lié Booléen 0 ou 1 Booléen 0 ou 1 PRIORITE_INDIC Priorité de l indicateur Entier de 0 à 5 VALUE_CHANGE_SAVING Sauvegarde par changement de valeur Booléen 0 ou 1 CIGR Université de la Méditerranée 13 [email protected]
14 2.6) Les données saisies manuellement Il s agit de données dont les valeurs seront saisies manuellement à travers l interface utilisateur du tableau de bord. Chaque donnée à saisie manuelle peut-être auditée par un indicateur (et un seul). L indicateur sera de type indicateur de SI manuel. NUM_DONNEE NUM_SS_THEME Numéro de la donnée dans l'extension. Numéro du sous-thème correspondant dans l'extension Entier Entier IND_CONF Indice de confidentialité Entier de 0 à 4 CODE_PERIO_DONNEE Code de la périodicité de la donnée String(6) CODE_TYPE_VAL Code du type de la valeur String(6) CODE_EXT_DONNEE_INTER Code de l extension génératrice de la donnée inter-si String(6) LIB_DONNEE Libellé de la donnée String(128) DESCRIPTION_DONNEE Description de la donnée String(255) UNITE_DONNEE Unité de la donnée String(128) Valeurs possibles de la propriété CODE_PERIO_DONNEE : Ce champ correspond à la périodicité de la donnée à saisie manuelle. Il peut prendre 3 valeurs : jour : La donnée est quotidienne ou bien générique (c'est à dire qu'elle n'a aucune périodicité établie) mois : La donnée est mensuelle an : La donnée est annuelle CIGR Université de la Méditerranée 14 [email protected]
15 3) La constitution d une extension Une extension est constituée par 2 fichiers. Le premier se situe sur le serveur WEB alors que le second se trouve sur le serveur de collecte. Ces deux fichiers ont des rôles totalement différents. 3.1) Le fichier d'extension sur le serveur WEB Le premier fichier se situe sur le serveur WEB de l application TDB-SSI, il se nomme «plg-<code_de_l_extension>.php», il se trouve dans «tdb-web/site/plugins». Son rôle est de créer des indicateurs, des modèles, des données à saisie manuelle, des sous-thèmes, des thèmes et des sources dans les tables correspondantes de la base de données du Tableau de bord. Il crée donc tous les éléments nécessaires au fonctionnement des nouveaux indicateurs définis dans l'extension. 3.2) Le (les) fichier(s) d'extension sur le serveur de collecte Ce fichier se nomme «<code_de_l_extension><numéro_de_la_source_dans_l_extension>.php» et se situe dans le dossier «tdb-collecte/sources» du serveur de collecte. Il s'agit donc du fichier PHP exécuté automatiquement par le serveur de collecte grâce au CRON, il correspond à l'élément nommé «source» que nous avons vu dans le chapitre 2. Son rôle est d assurer la collecte des valeurs des indicateurs qui lui sont associés. Si l'extension ne crée qu'une seule source, ce qui est généralement le cas, il n' y a donc qu'un seul fichier de collecte qui concerne cette extension. La source, puisqu'il n'y en a qu'une, a alors le numéro 1. Le fichier portera donc le nom «<code_de_l_extension>1.php». Ce fichier «source» est indispensable sauf dans le cas des indicateurs manuels dont la collecte n est pas automatisée et n'est pas assurée par le serveur de collecte. CIGR Université de la Méditerranée 15 [email protected]
16 4) L API des extensions Une API (Application Programming Interface) propose par l intermédiaire de deux classes un ensemble de méthodes permettant de créer les éléments d'une extension puis de récolter les valeurs des indicateurs qu'elle a créé. Une documentation technique présentant l'api existe également au format HTML. 4.1) Fonctions et procédures hors classes sur le serveur WEB 4.1.1) connexion_bdd_tdb() connexion_bdd_tdb() La fonction connexion_bdd_tdb() permet de se connecter à la base de données du tableau de bord. Elle n'a aucun paramètre en entrée et renvoie la ressource de connexion à la base de données du tableau de bord. Exemple d'utilisation: $tdb_connec = connexion_bdd_tdb(); 4.1.2) session_start() C'est une procédure de restauration de session définie dans PHP. Le fichier se situant sur le serveur WEB est exécuté à partir de l'application TDB-SSI. Cela suppose que ce soit un utilisateur authentifié qui effectue cette opération, ce dernier a donc ouvert une session sur le serveur WEB. Le fichier de plugin du serveur WEB doit donc exécuter la procédure session_start() définie dans PHP afin de restaurer la session en cours et récupérer les variables de session existantes. Cette procédure n'a aucun paramètre en entrée. session_start() CIGR Université de la Méditerranée 16 [email protected]
17 4.1.3) controle_session_user_si(...) TDB-SSI Les extensions La procédure controle_session_user_si() contrôle la validité des variables de session existantes. controle_session_user_si("admin",$tdb_connec); L'identité et les droits de l'utilisateur doivent être vérifiés en exécutant cette procédure dans le fichier d'extension du serveur WEB, Paramètres d'entrée: Le premier paramètre est 'admin', il ne doit pas être modifié. Le second paramètre est la ressource de connexion à la base de données que l'on a précédemment obtenu par la fonction connexion_bdd_tdb() ) require_once("../biblio/commun.php") Fonction d' inclusion du fichier commun.php, ce fichier regroupe des variables globales et les définitions de fonctions et de procédures utilisées par l'application TDB-SSI. La procédure controle_session_user_si() ainsi que la fonction connexion_bdd_tdb() sont définies dans ce fichier commun.php du serveur WEB. Il faut donc impérativement commencer le fichier de plugin du serveur WEB par: require_once("../biblio/commun.php"); CIGR Université de la Méditerranée 17 [email protected]
18 4.2) Fonctions et procédures hors classes sur le serveur de collecte 4.2.1) connexion_bdd_tdb() connexion_bdd_tdb() La fonction connexion_bdd_tdb() permet de se connecter à la base de données du tableau de bord. Elle n'a aucun paramètre en entrée et renvoie la ressource de connexion à la base de données du tableau de bord. Exemple d'utilisation: $tdb_connec = connexion_bdd_tdb(); 4.2.2) require_once("commun.php") Fonction d' inclusion du fichier commun.php, ce fichier regroupe des variables globales et les définitions de fonctions et de procédures utilisées par l'application TDB-SSI. La fonction connexion_bdd_tdb() est définie dans ce fichier commun.php du serveur de collecte. La variable globale $si_serveur, définissant le SI pour le quel le serveur assure la collecte est aussi définie et valorisée dans ce fichier. Il faut donc impérativement commencer le fichier de plugin du serveur de collecte par: require_once("commun.php"); 4.2.3) error_log(...) error_log(«message d'erreur», 3, $log_file); Cette fonction permet d'enregistrer un message dans le fichier de log en cas d'erreur. Paramètres d'input: «message d'erreur» : Indiquer ici le message d'erreur que vous souhaitez enregistrer. 3 : Laisser ce paramètre tel qu'il est, il indique que vous voulez que ce message soit enregistré dans un fichier. $log_file: Laisser ce paramètre tel qu'il est. $log_file est une variable globale existante sur le serveur de collecte qui indique le chemin d'accès du fichier de log dans lequel enregistrer le message. CIGR Université de la Méditerranée 18 [email protected]
19 4.3) La classe PLUGIN Elle propose en tout 10 méthodes (en plus du constructeur) afin de pouvoir développer le code du fichier d'extension du serveur WEB. On peut distinguer 3 types de méthodes : 7 méthodes permettent d ajouter ou mettre à jour des éléments. 1 méthode est un accesseur SET qui permet de valoriser un tableau qui contient les numéros id et les adresses ip de tous les moyens du SI. 2 méthodes sont des accesseurs GET qui permettent d'exploiter ce même tableau 4.3.1) _construct(...) construct($code_ext) C'est le constructeur, il permet d instancier un objet de la classe plugin. Paramètre en input $code_ext Chaine de caractères (6 max) Chaine vide interdite. Exemple de Syntaxe d utilisation : $code_plugin = «test»; $mon_plugin = new plugin($code_plugin); 4.3.2) ajouter_donnee_et_indic_manuel( ) ajouter_donnee_et_indic_manuel($num_donnee,$lib_donnee, $description_donnee,$unite_donnee,$type_val_donnee,$ind_conf_donnee, $perio_donnee,$alarme_indic,$niv_indic,$graph_indic,$lib_indic, $description_indic,$comment_indic,$valeur_seuil_indic, $operateur_seuil_indic,$valeur_cible_indic,$priorite_indic, $ind_conf_indic,$num_ss_theme,$envoi_ ,$tdb_connec) C est une méthode qui permet d ajouter ou de mettre à jour une donnée à saisie manuelle ainsi que l'indicateur manuel qui l'audite. CIGR Université de la Méditerranée 19 [email protected]
20 Output: void $num_donnee Entier Paramètres en Input $lib_donnee Chaine de caractères (128 max) Chaine vide interdite $description_donnee Chaine de caractères (255 max) Chaine vide autorisée $unite_donnee Chaine de caractères (128 max) Chaine vide autorisée $type_val_donnee Chaine de caractères $ind_conf_donnee Entier de 0 à 4 $perio_donnee Valeurs possibles : bool, int, real, string Chaine de caractères $alarme_indic Entier de 0 à 3 $niv_indic $graph_indic Valeurs possibles : an, jour, mois Chaine de caractères Valeurs possibles : ope, pilo, strat Chaine de caractères Valeurs possibles : cam, cour, histo Chaine vide interdite Chaine vide interdite Chaine vide interdite Chaine vide autorisée $lib_indic Chaine de caractères (128 max) Chaine vide interdite $description_indic Chaine de caractères (255 max) Chaine vide autorisée $comment_indic Chaine de caractères (65535max) Chaine vide autorisée $valeur_seuil_indic Chaine de caractères (128 max) Chaine vide autorisée $operateur_seuil_indic Chaine de caractères Valeurs possibles : <, <=, =, <>, >=,> Chaine vide autorisée $valeur_cible_indic Chaine de caractères (128 max) Chaine vide autorisée $priorite_indic Entier de 0 à 5 $ind_conf_indic Entier de 0 à 4 $num_ss_theme Entier $envoi_ Entier0 ou 1 $tdb_connec Ressource de connexion à la base de données du tableau de bord CIGR Université de la Méditerranée 20 [email protected]
21 4.3.3) ajouter_indic_si_auto ( ) TDB-SSI Les extensions ajouter_indic_si_auto($num_indic_si_auto,$ind_alarme,$code_type_val, $code_niv,$code_graph,$code_histo,$num_source,$num_ss_theme, $lib_indic,$description_indic,$comment_indic,$unite,$valeur_seuil, $operateur_seuil,$valeur_cible,$priorite,$value_change_saving, $ind_conf,$envoi_ ,$generation_rapport,$tdb_connec) Méthode qui permet d ajouter ou mettre à jour un indicateur du SI automatique (Output: void) $num_indic_si_auto Entier $ind_alarme Entier de 0 à 3 $code_type_val $code_niv $code_graph $code_histo $num_source $num_ss_theme Paramètres en Input Chaine de caractères Valeurs possibles : bool, int, real, string Chaine de caractères Valeurs possibles : ope, pilo, strat Chaine de caractères Valeurs possibles : cam, cour, histo Chaine caractères Valeurs possibles : aucune, 12h,'jour','sem', mois,'6mois', an', def Entier Entier Chaine vide interdite Chaine vide interdite Chaine vide autorisée Chaine vide interdite $lib_indic Chaine de caractères (128 max) Chaine vide interdite $description_indic Chaine de caractères (255 max) Chaine vide autorisée $comment_indic Chaine de caractères (65535max) Chaine vide autorisée $unite Chaine de caractères (128 max) Chaine vide autorisée $valeur_seuil Chaine de caractères (128 max) Chaine vide autorisée $operateur_seuil Chaine de caractères Valeurs possibles : <, <=, =, <>, >=, > Chaine vide autorisée $valeur_cible Chaine de caractères (128 max) Chaine vide autorisée $priorite Entier de 0 à 5 $value_change_saving booléen -> Vaut 0 ou 1 $ind_conf Entier de 0 à 4 $envoi_ Entier 0 ou 1 $generation_rapport Entier 0 ou 1 $tdb_connec Ressource de connexion à la base de données du tableau de bord CIGR Université de la Méditerranée 21 [email protected]
22 4.3.4) ajouter_indic_moyen_direct( ) ajouter_indic_moyen_direct($ind_alarme,$code_type_val,$code_niv, $code_graph,$code_histo,$num_source,$num_ss_theme,$lib_indic, $description_indic,$comment_indic,$unite,$valeur_seuil, $operateur_seuil,$valeur_cible,$priorite,$value_change_saving, $ind_conf,$envoi_ ,$generation_rapport,$num_id_moy, $id_externe_indic,$table_bdd_ext,$tdb_connec) Méthode qui permet d ajouter ou mettre à jour un indicateur de moyen direct Output : void $ind_alarme Entier de 0 à 3 $code_type_val $code_niv $code_graph $code_histo $num_source $num_ss_theme Paramètres en Input Chaine de caractères Valeurs possibles : bool, int, real, string Chaine de caractères Valeurs possibles : ope, pilo, strat Chaine de caractères Valeurs possibles : cam, cour, histo Chaine de caractères Valeurs possibles : aucune, 12h,'jour','sem', mois,'6mois', an', def Entier Entier Chaine vide interdite Chaine vide interdite Chaine vide autorisée Chaine vide interdite $lib_indic Chaine de caractères (128 max) Chaine vide interdite $description_indic Chaine de caractères (255 max) Chaine vide autorisée $comment_indic Chaine de caractères (65535max) Chaine vide autorisée $unite Chaine de caractères (128 max) Chaine vide autorisée $valeur_seuil Chaine de caractères (128 max) Chaine vide autorisée $operateur_seuil Chaine de caractères Valeurs possibles : <, <=, =, <>, >=, > Chaine vide autorisée $valeur_cible Chaine de caractères (128 max) Chaine vide autorisée $priorite Entier de 0 à 5 $value_change_saving booléen -> Vaut 0 ou 1 $ind_conf Entier de 0 à 4 CIGR Université de la Méditerranée 22 [email protected]
23 $envoi_ Entier 0 ou 1 $generation_rapport Entier 0 ou 1 $num_id_moy Entier TDB-SSI Les extensions $id_externe_indic Chaine de caractères (14 max) Chaine vide interdite $table_bdd_ext Chaine de caractères (20 max) Chaine vide interdite $tdb_connec Ressource de connexion à la base de données du tableau de bord CIGR Université de la Méditerranée 23 [email protected]
24 4.3.5) ajouter_modele ( ) TDB-SSI Les extensions ajouter_modele($num_modele,$lib_modele,$ind_alarme,$code_type_val, $code_niv,$code_graph,$code_histo,$num_source,$num_ss_theme, $lib_indic,$description_indic,$comment_indic,$unite,$valeur_seuil, $operateur_seuil,$valeur_cible,$priorite,$value_change_saving, $ind_conf,$envoi_ ,$generation_rapport,$tdb_connec) Méthode qui permet d ajouter ou mettre à jour un modèle (Output : void) $num_modele Entier Paramètres en Input $lib_modele Chaine de caractères (128 max) Chaine vide interdite $ind_alarme Entier de 0 à 3 $code_type_val : $code_niv $code_graph $code_histo : $num_source $num_ss_theme Chaine de caractères Valeurs possibles: bool, int, real, string Chaine de caractères Valeurs possibles : ope, pilo, strat Chaine de caractères Valeurs possibles : cam, cour, histo Chaine caractères Valeurs possibles : aucune, '12h','jour','sem','mois','6mois','an','def' Entier Entier Chaine vide interdite Chaine vide interdite Chaine vide autorisée Chaine vide interdite $lib_indic Chaine de caractères (128 max) Chaine vide interdite $description_indic Chaine de caractères (255 max) Chaine vide autorisée $comment_indic Chaine de caractères (65535max) Chaine vide autorisée $unite Chaine de caractères (128 max) Chaine vide autorisée $valeur_seuil Chaine de caractères (128 max) Chaine vide autorisée $operateur_seuil Chaine de caractères Valeurs possibles : <, <=, =, <>, >=, '>' Chaine vide autorisée $valeur_cible Chaine de caractères (128 max) Chaine vide autorisée $priorite Entier de 0 à 5 $value_change_saving booléen -> Vaut 0 ou 1 $ind_conf Entier de 0 à 4 $envoi_ Entier 0 ou 1 $generation_rapport Entier 0 ou 1 $tdb_connec Ressource de connexion à la base de données CIGR Université de la Méditerranée 24 [email protected]
25 4.3.6) ajouter_source ( ) ajouter_source($num_source,$lib_source,$description_source, $perio_collecte,$collecte_nocturne,$tdb_connec) Méthode qui permet de créer ou mettre à jour une source. Output : void $num_source Entier Paramètres en Input $lib_source Chaine de caractères (128 max) Chaine vide interdite $description_source Chaine de caractères (255 max) Chaine vide autorisée $perio_collecte Chaine de caractères Valeurs possibles : min, heure, jour, sem, mois, an, manuel $collecte_nocturne Booléen -> vaut 0 ou 1 $tdb_connec Ressource de connexion à la base de données du tableau de bord 4.3.7) ajouter_ss_theme ( ) ajouter_ss_theme($num_ss_theme,$lib_ss_theme,$num_theme,$tdb_connec) Méthode qui permet de créer ou mettre à jour un sous-thème Output : void $num_ss_theme Entier Paramètres en Input $lib_ss_theme Chaine de caractères (128 max) Chaine vide interdite $num_theme $tdb_connec Entier (ou chaine vide si le sousthème n'appartient à aucun thème) Ressource de connexion à la base de données du tableau de bord Chaine vide autorisée CIGR Université de la Méditerranée 25 [email protected]
26 4.3.8) ajouter_theme ( ) ajouter_theme($num_theme,$lib_theme,$tdb_connec) Méthode qui permet de créer ou mettre à jour un thème. Output : void $num_theme Entier Paramètres en Input $lib_theme Chaine de caractères (128 max) Chaine vide interdite $tdb_connec Ressource de connexion à la base de données du tableau de bord 4.3.9) set_tab_moyens(...) set_tab_moyens($tdb_connec) Méthode qui permet de valoriser un tableau bi-dimensionnel indice-associatif de tous les moyens du SI. Les deux champs de la dimension associative sont num (numéro id du moyen) et ip (adresse IP du moyen). Cette méthode est utilisée afin de créer des indicateurs de moyen directs. Output : void Paramètre en Input : $tdb_connec : Ressource de connexion à la base de données du tableau de bord CIGR Université de la Méditerranée 26 [email protected]
27 4.3.10) get_nb_moyens() get_nb_moyens() Fonction qui renvoie le nombre de moyens enregistrés dans le tableau de moyens qui a préalablement été valorisé grâce à la méthode set_tab_moyens($tdb_connec). Output : entier Input : void ) get_tab_moyens( ) get_tab_moyens($i,$champ) Méthode qui renvoie le champ «$champ» d un enregistrement du tableau de moyens à l indice $i. Output : Entier ou chaine de caractère (le champ «ip» est une chaine de caractère et le champ «num» est un entier). Paramètres en Input $i Entier -> c est l indice du tableau $champ Chaine de caractères. Valeurs possible : «num» ou «ip» CIGR Université de la Méditerranée 27 [email protected]
28 4.4) La classe PLUGIN_COLLECTE TDB-SSI Les extensions Elle propose en tout 9 méthodes (en plus du constructeur) afin de pouvoir développer le code du fichier d'extension du serveur de collecte. On peut distinguer 4 types de méthodes : 3 méthodes permettent d insérer la valeur d un indicateur à un instant T en fonction du type de l indicateur. 2 méthodes sont des setters permettant de valoriser deux tableaux d éléments utiles à la collecte. 4 méthodes sont des accesseurs get permettant de récupérer les enregistrements des deux tableaux. 4 méthodes spécifiques pour les indicateurs «composés» ) construct(...) construct($code_ext,$num_source) C'est le constructeur, il permet d' instancier un objet de la classe plugin_collecte. Paramètres en input $code_ext Chaine de caractères (6 max) Chaine vide interdite. $num_source Entier $tdb_connec Ressource de connexion Signification des paramètres d'input : $code_ext : C est le code de l extension. $num_source : C est le numéro de la source qui correspond à ce fichier. $tdb_connec : Ressource de connexion à la base de données du tableau de bord. Exemple de Syntaxe d utilisation : $tdb_connec = connexion_bdd_tdb(); $code_ext = «test»; $num_source = 1; $ma_collecte = new plugin_collecte($code_ext,$num_source, $tdb_connec); CIGR Université de la Méditerranée 28 [email protected]
29 4.4.2) insert_valeur_indic_si_auto( ) insert_valeur_indic_si_auto($num_indic_si_auto,$valeur,$rapport, $tdb_connec) Méthode qui insère la valeur d'un indicateur de SI à collecte automatique Output : void $num_indic_si_auto Entier Paramètres d input $valeur Chaine de caractères (128 max) Chaine vide autorisée $rapport Chaine de caractères (65535 max) Chaine vide autorisée $tdb_connec Ressource de connexion à la base de données du tableau de bord 4.4.3) insert_valeur_indic_moyen_direct( ) insert_valeur_indic_moyen_direct($ind_tab_indics_moyen_direct, $valeur,$rapport,$tdb_connec) Cette procédure permet d insérer la valeur d un indicateur de moyen direct. Output : void $ind_tab_indics_moyen_direct Paramètres d input Entier. $valeur Chaine de caractères (128 max) Chaine vide autorisée $rapport Chaine de caractères (65535 max) Chaine vide autorisée $tdb_connec Ressource de connexion à la base de données du tableau de bord Signification la variable $ind_tab_indics_moyen_direct : Il s'agit de l'indice de l'indicateur dans le tableau «tab_indics_moyen_direct» (voir le paragraphe 4.3.5). CIGR Université de la Méditerranée 29 [email protected]
30 4.4.4) insert_valeur_indic_moyen_modele( ) insert_valeur_indic_moyen_modele($num_modele,$num_id_moy,$valeur, $rapport,$tdb_connec) Procédure qui insère la valeur d'un indicateur de moyen lié a un modèle. Output : void $num_modele $num_id_moy Entier Paramètres d input Entier : numéro id du moyen $valeur Chaine de caractères (128 max) Chaine vide autorisée. $rapport Chaine de caractères (65535 max) Chaine vide autorisée. $tdb_connec Ressource de connexion à la base de données du tableau de bord 4.4.5) set_tab_indics_moyen_dir( ) set_tab_indics_moyen_dir($table_bdd_ext,$tdb_connec) Méthode qui valorise un tableau bi-dimensionnel indice-associatif des indicateurs de moyen directs actifs pour cette source et la table de base de données externe passée en paramètre. Les 6 champs du tableau associatif sont : num_id_indic, date_last_value, histo, value_change_saving, id_ext et 'num_id_moy' Output : void Paramètres d input $table_bdd_ext Chaine de caractères (20 max) Chaine vide interdite $tdb_connec Ressource de connexion à la base de données du tableau de bord CIGR Université de la Méditerranée 30 [email protected]
31 4.4.6) set_tab_moyens_audites(...) TDB-SSI Les extensions set_tab_moyens_audites($tdb_connec) Méthode qui valorise un tableau bi-dimensionnel indice-associatif('num','ip')des moyens de ce SI audités par au moins un indicateur actif lié à un modèle ayant ce fichier comme source Output : void Paramètre d input : $tdb_connec : Ressource de connexion à la base de données du tableau de bord 4.4.7) get_nb_indics_moyen_dir() get_nb_indics_moyen_dir() Fonction qui renvoie le nombre d enregistrements que contient le tableau d indicateurs de moyen directs préalablement valorisé par la procédure set_tab_moyen_dir( ) Output : Entier Input : void 4.4.8) get_nb_moyens_audites() get_nb_moyens_audites() Fonction qui renvoie le nombre d enregistrements que contient le tableau de moyens de ce SI audités par au moins un indicateur actif lié à un modèle ayant ce fichier comme source. Ce tableau a été préalablement valorisé par la méthode set_tab_moyens_audites($tdb_connec) Output : Entier Input : void CIGR Université de la Méditerranée 31 [email protected]
32 4.4.9) get_tab_indics_moyen_dir(...) get_tab_indics_moyen_dir($i,$champ) Méthode qui renvoie le champ «$champ» d un enregistrement du tableau à l indice $i. Output: Entier ou chaine de caractère Entier pour les champs «num_id_indic», «value_change_saving» et «num_id_moy» Chaine de caractères pour les champs «date_last_value», «histo» et «id_ext» Paramètres en Input : $i : Entier (l indice du tableau) $champ : Chaine de caractères. Valeurs possibles : num_id_indic, date_last_value, histo, value_change_saving, id_ext et 'num_id_moy' ) get_tab_moyens_audites(...) get_tab_moyens_audites($i,$champ) Méthode qui renvoie le champ «$champ» d un enregistrement du tableau de moyens audités à l indice $i Output : Entier ou chaine de caractère (le champ «ip» est une chaine de caractère et le champ «num» est un entier). Paramètres en Input : $i : Entier -> c est l indice du tableau $champ : Chaine de caractère. Valeurs possibles : «num» ou «ip» CIGR Université de la Méditerranée 32 [email protected]
33 4.4.11) Méthodes spécifiques pour les indicateurs «composés» Vous pouvez être amenés à vouloir créer des indicateurs «composés». Il ne s'agit pas d'un nouveau type d'indicateurs, ce sont des indicateurs dont la valeur est calculée à partir de la dernière valeur d'autres indicateurs ou de données saisies déjà existantes dans le tableau de bord. L'API propose donc des méthodes permettant de récupérer les dernières valeurs d'indicateurs afin de pouvoir effectuer un traitement dessus. Vous avez un exemple d'indicateur composé dans le chapitre 8 avec l'extension BUDGET ) get_derniere_valeur_donnee(...) get_derniere_valeur_donnee($code_si_donnee,$code_ext_donnee, $num_donnee,$champ,$tdb_connec) Méthode qui renvoie la date de dernière valeur ou la dernière valeur d'une donnée. Remarque : Cette méthode ne doit être utilisée que dans le cas de données générées par une extension. Si la donnée a été créée via l'interface WEB du tableau de bord, vous pouvez récupérer la dernière valeur de l'indicateur qui l'audite en utilisant la méthode get_derniere_valeur_indic_existant(...) Output : Chaine de caractères ou false s'il n' y a pas de dernière valeur Paramètres en Input : $code_si_donnee : Code du SI de la donnée $code_ext_donnee : Code de l'extension d'origine de la donnée $num_donnee : Numéro de la donnée dans l'extension $champ : Chaine de caractère. Valeurs possibles : 'valeur' ou 'date' $tdb_connec : Ressource de connexion à la base de données du tableau de bord CIGR Université de la Méditerranée 33 [email protected]
34 ) get_derniere_valeur_indic_si_auto(...) get_derniere_valeur_indic_si_auto($code_si_indic,$code_ext_indic, $num_indic_si_auto,$champ,$tdb_connec) Méthode qui renvoie la date de dernière valeur ou la dernière valeur d'un indicateur de SI à collecte automatique. Output : Chaine de caractères ou false s'il n' y a pas de dernière valeur Paramètres en Input : $code_si_indic : Code du SI de l'indicateur de SI $code_ext_indic : Code de l'extension d'origine de l'indicateur de SI $num_indic_si_auto : Numéro de l'indicateur de SI à collecte automatique dans l'extension. $champ : Chaine de caractère. Valeurs possibles : 'valeur' ou 'date' $tdb_connec : Ressource de connexion à la base de données du tableau de bord ) get_derniere_valeur_indic_moyen_modele(...) get_derniere_valeur_indic_moyen_modele($num_modele,$num_id_moy, $champ,$tdb_connec) Méthode qui renvoie la date de dernière valeur ou la dernière valeur d'un indicateur de moyen par modèle issu de cette extension. Output : Chaine de caractères ou false s'il n' y a pas de dernière valeur Paramètres en Input : $num_modele : Numéro du modèle ayant généré l'indicateur. Le modèle doit avoir été créé par l'extension. $num_id_moy : Numéro identifiant du moyen. $champ : Chaine de caractère. Valeurs possibles : 'valeur' ou 'date' $tdb_connec : Ressource de connexion à la base de données du tableau de bord CIGR Université de la Méditerranée 34 [email protected]
35 ) get_derniere_valeur_indic_existant(...) get_derniere_valeur_indic_existant($code_si_indic,$num_id_indic, $champ,$tdb_connec) Méthode qui renvoie la date de dernière valeur ou la dernière valeur d'un indicateur déjà existant dans le tableau de bord. Cette méthode fonctionne peu importe le type d'indicateur ou son moyen de création. L'inconvénient de cette méthode est qu'il faut d'abord récupérer le numéro ID de l'indicateur existant. Remarque: L'utilisation de cette méthode est nécessaire si l'on veut récupérer la valeur d'un indicateur de moyen direct ou d'un indicateur manuel qui audite une donnée créée via l'interface WEB du tableau de bord Output : Chaine de caractères ou false s'il n' y a pas de dernière valeur Paramètres en Input : $code_si_indic : Code du SI de l'indicateur $num_id_indic : Numéro identifiant de l'indicateur existant. $champ : Chaine de caractère. Valeurs possibles : 'valeur' ou 'date' $tdb_connec : Ressource de connexion à la base de données du tableau de bord CIGR Université de la Méditerranée 35 [email protected]
36 5) Logique algorithmique du code d'une extension Comme nous l'avons vu dans le paragraphe 4, une extension se compose de deux fichiers PHP distincts ayant des rôles différents. Le premier fichier se situe sur le serveur WEB et le second sur le serveur de collecte. 5.1) Logique algorithmique du code du fichier sur le serveur WEB La structure générale de l'algorithme du code se décompose en 5 étapes: Étape 1: Appel aux fonctions require_once() et session_start() afin d'intégrer correctement le fichier dans l'application WEB. Étape 2: Configuration de l'extension, c'est à dire définition des variables qui représenteront les caractéristiques des éléments à créer par l'extension. Étape 3: Connexion à la base de données du tableau de bord et contrôle de validité des variables de session correspondant à l'authentification de l'utilisateur. Étape 4: Instanciation d'un objet de la classe PLUGIN Étape 5: Création (ou mise à jour si l'extension a déjà été activée) des éléments dont nous avons défini les caractéristiques dans les variables créées au cours de l'étape 2 (configuration de l'extension). Pour ce faire, nous allons utiliser les méthodes proposées par la classe PLUGIN. CIGR Université de la Méditerranée 36 [email protected]
37 5.2) Logique algorithmique du code du fichier sur le serveur de collecte Pour ce fichier également, la structure générale de l'algorithme du code se décompose en 5 étapes: Étape 1: - Connexion à la base de données du tableau de bord - Définition des variables spécifiques à l'extension s'il en existe Étape 2: Définition du code de l extension et du numéro de la source correspondant à ce fichier Étape 3: Instanciation d un objet de la classe PLUGIN_COLLECTE Étape 4: Processus de récupération des valeurs à insérer dans la base de données. Ces traitements sont spécifiques à chaque extension. Différentes méthodes de la classe PLUGIN_COLLECTE peuvent être utilisées ici selon le traitement à réaliser. Étape 5: Insertion des valeurs récupérées dans la base de données du tableau de bord en utilisant une méthode d'insertion de valeur fournie par la classe PLUGIN_COLLECTE. CIGR Université de la Méditerranée 37 [email protected]
38 6) PAS-A-PAS : Développer une extension - Le fichier sur le serveur WEB Nous allons voir ici les étapes à suivre et les questions à se poser afin de développer le fichier de l'extension qui se trouve sur le serveur WEB. Ce fichier va créer les différents éléments indispensables à l'intégration d'une extension dans l'application TDB-SSI. Les valeurs données à titre d'exemple apparaitront en gras et en italique. 6.1) Intégration du fichier dans l'application WEB Afin de s'intégrer correctement dans le reste de l'application, le code d'un fichier d'extension commence toujours de la même manière: <? // PLUGIN TEST // require_once("../biblio/commun.php"); session_start(); Ensuite, il faut définir les éléments de configuration du plugin. // CONFIGURATION DU PLUGIN // 6.2) Configuration : L'extension Déterminer le code de l'extension (chaine de 6 caractères au maximum) ex: 'test' Créer le libellé de l'extension (128 caractères au maximum) ex: 'plugin de test' Facultatif: Déterminer la description de l'extension (255 caractères au maximum): ex: 'Plugin de test créé afin de montrer la démarche de création d'un plugin' Déterminer un numéro de version pour votre extension. Puisque vous êtes en train de la créer, vous pouvez commencer par exemple par la version «1.0». //ELEMENTS DU PLUGIN A SAISIR DANS L'APPLICATION TDB-SSI DANS LE MENU "AJOUTER UNE EXTENSION" //Code : test //Libellé : plugin de test //Description : Plugin de test créé afin de montrer la démarche de création d'un plugin //CONFIGURATION DE L'EXTENSION $code_ext = 'test'; $version_ext = '1.0'; CIGR Université de la Méditerranée 38 [email protected]
39 6.3) Configuration : La source TDB-SSI Les extensions Cette étape n'est pas nécessaire si vous ne devez créer que des données à saisie manuelle et des indicateurs manuels dans votre extension. Si vous ne savez pas encore les types d'indicateurs que vous devrez créer, passez à l'étape suivante, vous pourrez toujours revenir à ce paragraphe si vous devez créer une source. Nous allons créer une source de collecte et définir les paramètres de collecte que nous souhaitons lui attribuer: Définir le numéro de la source : La plupart du temps, vous n'aurez besoin de créer qu'une seule source pour une extension, son numéro sera donc 1. ex: 1 Déterminer un libellé pour la source (128 caractères au maximum) ex: 'demo' Facultatif: description de la source (255 caractères au maximum). A titre d'exemple, on ne donnera pas de description. La variable correspondante sera donc une string vide. '' Déterminer la périodicité de collecte désirée pour cette source. Rappel des périodicités possibles: min toutes les minutes, heure toutes les heures, jour quotidienne, sem hebdomadaire, mois mensuelle, an annuelle, manuelle la collecte n'est pas automatisée (cas des indicateurs manuels) ex: 'sem' Déterminer si la collecte doit se faire en nocturne (afin de profiter d'une période creuse en terme de trafic réseau) ou pas. La variable correspondante est un booléen qui vaut 1 si la collecte est nocturne et 0 si elle ne l'est pas. Ex: 1 Tous les éléments de configuration de la source et de sa collecte sont maintenant définis. Notre source qui se nomme demo et qui n'a pas de description sera donc collectée toutes les semaines en nocturne. //CONFIGURATION DE LA SOURCE ET DE LA COLLECTE $num_source = 1; $lib_source = "demo"; $description_source = ""; $perio_collecte = "sem"; $collecte_nocturne = 1; CIGR Université de la Méditerranée 39 [email protected]
40 6.4) Configuration : Le thème et le sous-thème Rappel : Les sous-thèmes regroupent sémantiquement les différents indicateurs et données saisies selon une thématique commune(exemple : menaces virales, menaces IDS ). Il est possible de regrouper les sous-thèmes ayant un point commun, en les reliant à un même thème (exemple: Sécurité). La création d'un sous-thème est OBLIGATOIRE, en effet les indicateurs appartiennent forcément à un sous-thème. Il servira à créer des groupes d' indicateurs ayant un fort lien sémantique afin de les présenter de manière organisée dans l'interface WEB. Un sous-thème peut appartenir à un thème mais cela n'est pas obligé, la création d'un thème est donc facultative. Numéro du sous-thème : Le plus souvent, vous ne serez amené qu'à créer un seul sousthème dans une extension. ex: 1 Définition du libellé du sous-thème (128 caractères au maximum) ex: «Apprentissage de la démarche de création d'une extension» Déterminer le num_theme: Nous n'avons pas créé de thème, le sous-thème n'appartient à aucun thème, le num_thème est donc un caractère vide. ex: '' //CONFIGURATION DU SOUS_THEME $num_ss_theme = 1; $lib_ss_theme = «Apprentissage de la démarche de création d'une extension»; $num_theme = ''; Remarque: Il sera toujours possible de changer ultérieurement le sous-thème d'un indicateur ou le thème d'un sous-thème via l'interface WEB de l'application. CIGR Université de la Méditerranée 40 [email protected]
41 Récapitulatif du code écrit jusqu'à présent: TDB-SSI Les extensions <? // PLUGIN TEST // require_once("../biblio/commun.php"); session_start(); //ELEMENTS DU PLUGIN A SAISIR DANS L'APPLICATION TDBv2 DANS LE MENU "AJOUTER UNE EXTENSION" //Code : test //Libellé : plugin de test //Description : Plugin de test créé afin de montrer la démarche de création d'un plugin //CONFIGURATION DE L'EXTENSION $code_ext = 'test'; $version_ext = '1.0'; //CONFIGURATION DE LA SOURCE ET DE LA COLLECTE $num_source = 1; $lib_source = "demo"; $description_source = ""; $perio_collecte = "sem"; $collecte_nocturne = 1; //CONFIGURATION DU SOUS_THEME $num_ss_theme = 1; $lib_ss_theme = «Apprentissage de la démarche de création d'une extension»; $num_theme = ''; CIGR Université de la Méditerranée 41 [email protected]
42 6.5) Configuration : Les indicateurs, modèles et données à saisie manuelle Rappel: Il existe 4 types d'indicateurs (cf chapitre 2) et donc différentes méthodes dans l'api correspondant à ces types d'indicateurs afin de créer les indicateurs voulus. Pour chaque indicateur que l'on veut créer, il faut donc commencer par identifier son type ) Arbre décisionnel Il va falloir se poser un certain nombre de questions pour arriver à trouver le type d'indicateur adéquat. On peut matérialiser cette démarche sous la forme d'un arbre décisionnel. Est-ce que je veux créer un indicateur qui audite un moyen en particulier? Oui, cet indicateur doit auditer un moyen précis identifiable par une adresse IP OUI NON Non cet indicateur concerne l ensemble du SI Il y a u ra p e u d in d ica te urs issu s d e cette exte nsio n p a r m o ye n. Je ve u x im po rte r d es info rm a tion s co n ce rn an t u n m oye n à p artir d u ne b a se de d on n é e s. Il y a ura b e a uco u p d indicateurs par moyen. C e t in d ica te u r d oit ê tre issu d u n e d o n n ée sa isie m a n u e lle m e n t via l in te rfa ce W EB d u ta b le a u d e b o rd La co lle cte d e ce t in d ica teu r est automatique, il n e p ro vie n t p a s d u ne d o n né e sa isie m a n u elle m e n t d a n s le tableau de bord Je dois créer un modèle d indicateur Je dois créer un indicateur de moyen direct Je d o is cré e r u ne d o n né e à sa isie m a n ue lle e t u n indicateur manuel Je dois créer un indicateur de SI automatique Selon l'indicateur préconisé par la sortie de l'arbre, vous pouvez vous reporter à un des 4 paragraphes suivants afin de coder sa configuration. CIGR Université de la Méditerranée 42 [email protected]
43 6.5.2) Configuration d'un indicateur de SI automatique Les éléments à définir: Numéro de l'indicateur, indice de l'alarme, type de la valeur, niveau de visibilité, représentation graphique, durée d'historisation, libellé de l'indicateur, description de l'indicateur, commentaire de l'indicateur, unité de l'indicateur, valeur seuil, opérateur seuil, valeur cible, priorité d'affichage, sauvegarde par changement de valeur, indice de confidentialité, envoi d' en cas d'alarme, génération d'un rapport. Ces éléments sont décrits dans le chapitre 2. Le code correspondant Les valeurs des variables proviennent de l'exemple du plugin STATS présenté ultérieurement. //CONFIGURATION DE L'INDICATEUR DE SI AUTOMATIQUE $num_indic_si_auto = 1; $ind_alarme = 2; $code_type_val = 'real'; $code_niv = "pilo"; $code_graph = "cour"; $code_histo = "an"; $lib_indic = 'Pourcentage des moyens sous contrat de maintenance'; $description_indic = ""; $comment_indic = "Calcul effectué à partir de la description des moyens enregistrée dans le tableau de bord"; $unite_indic ='%'; $valeur_seuil = '50'; $operateur_seuil = '<'; $valeur_cible = ''; $priorite = 0; $value_change_saving = 0; $ind_conf = 0; $envoi_ = 0; $generation_rapport = 0; CIGR Université de la Méditerranée 43 [email protected]
44 6.5.3) Configuration d'une donnée à saisie manuelle et de l'indicateur manuel qui l'audite Remarque: Ce type d'indicateur n'a pas de source de définie. En effet, la collecte ne sera pas effectuée par le serveur de collecte. Les valeurs de l'indicateur seront simplement mises à jour en cas d'ajout/modification/suppression d'une valeur de la donnée correspondante par un utilisateur via l'interface WEB de l'application. Éléments de configuration d'une donnée à saisie manuelle: Numéro de la donnée, libellé de la donnée, description de la donnée, unité de la valeur de la donnée, type de la valeur de la donnée et indice de confidentialité de la donnée, périodicité de la donnée. Ces éléments sont décrits dans le chapitre 2. Éléments de configuration d'un indicateur manuel Indice de l'alarme, représentation graphique, libellé de l'indicateur, description de l'indicateur, commentaire, valeur seuil, opérateur de seuil, valeur cible, envoi d' en cas d'alarme et priorité d'affichage. Ces éléments sont décrits dans le chapitre 2. Le code obtenu Cet extrait provient de l'exemple du plugin BUDGET présenté ultérieurement. //CONFIGURATION DE LA DONNEE A SAISIE MANUELLE 1 $num_donnee1 = 1; $lib_donnee1 = "Montant des investissements sécurité"; $description_donnee1 = ''; $unite_donnee1 = 'Euros'; $type_val_donnee1 = 'int'; $ind_conf_donnee1 = 3; $perio_donnee1 = 'an'; //CONFIGURATION DE L'INDICATEUR MANUEL 1 $alarme_indic1 = 0; $niv_indic1 = "strat"; $graph_indic1 = "cour"; $lib_indic1 = "Montant des investissements sécurité"; $description_indic1 = ''; $comment_indic1 = ''; $valeur_seuil_indic1 = ''; $operateur_seuil_indic1 = ''; $valeur_cible_indic1 = ''; $envoi_ _indic1 = 0; $priorite_indic1 = 0; $ind_conf_indic1 = 3; CIGR Université de la Méditerranée 44 [email protected]
45 6.5.4) Configuration d'un indicateur de moyen direct Les éléments à définir: Nom de la table de la base de données externe, identifiant du champ dans la table de la base de données externe, indice de l'alarme, type de la valeur, niveau de visibilité, représentation graphique, durée d'historisation, libellé de l'indicateur, description, commentaire, unité, valeur seuil, opérateur de seuil, valeur cible, priorité d'affichage, sauvegarde par changement de valeur, indice de confidentialité, envoi d' en cas d'alarme, génération d'un rapport. Ces éléments sont décrits dans les paragraphes «Les champs de la table INDICATEUR» et «Les champs de la table INDIC_MOYEN_DIR» Le code obtenu Les valeurs des variables sont une version simplifiée de l'exemple du plugin ZABBIX présenté ultérieurement.. // CONFIGURATION DES INDICATEURS DE MOYEN DIRECTS ISSUS DES TRIGGERS ZABBIX $table_bdd_ext_trigger = 'triggers'; $id_ext = '125'; $ind_alarme = 3; $type_val_trigger = 'int'; $niv_trigger = 'ope'; $graph_trigger='cour'; $histo_trigger = 'an'; $libelle = 'Visibilité du moyen' $description_trigger = "Issu d\'un trigger Zabbix"; $comment_trigger='signification des valeurs : 0 = Alarme Zabbix non déclenchée '. '/ 1 = Etat inconnu / 2 = Alarme Zabbix déclenchée'; $unite_trigger = ''; $valeur_seuil_trigger = '1'; $operateur_seuil_trigger = '>'; $valeur_cible_trigger = '0'; //Une priorite maximale est donnée aux indicateurs issus de triggers //afin qu'ils soient affichés en haut de la page $priorite_trigger = 5; $value_change_saving_trigger = 1; $ind_conf_trigger = 0; //Les indicateurs issus de triggers zabbix n'envoient pas d' en cas d'alarme $envoi_ _trigger = 0; $generation_rapport_trigger = 1; CIGR Université de la Méditerranée 45 [email protected]
46 6.5.5) Configuration d'un modèle d'indicateur de moyen Dans ce cas, seul un modèle d'indicateur est créé par l'extension. Des indicateurs auditant un moyen pourront ensuite être créés à partir de ce modèle via l'interface WEB d'administration de l'application. Les caractéristiques du modèle seront attribuées par défaut aux indicateurs qui seront générés. Les éléments à définir: Numéro du modèle, libellé du modèle, indice de l'alarme, type de la valeur, niveau de visibilité, représentation graphique, durée d'historisation, libellé de l'indicateur, description de l'indicateur, commentaire, unité de l'indicateur, valeur seuil, opérateur de seuil, valeur cible, priorité d'affichage, sauvegarde par changement de valeur, indice de confidentialité, envoi d' en cas d'alarme, génération d'un rapport. Ces éléments sont décrits dans le chapitre 2. Le code obtenu Les valeurs des variables proviennent de l'exemple du plugin LOGCHECK présenté ultérieurement. //CONFIGURATION DU MODELE 1 $num_modele = 1; $lib_modele1 = "Logcheck Criticité du log"; $ind_alarme1 = 2; $code_type_val1 = 'int'; $code_niv1 = "ope"; $code_graph1 = "cour"; $code_histo1 = "6mois"; $lib_indic1 = 'Criticité du log'; $description_indic1 = "Indice de criticité du rapport de Log de Logcheck"; $comment_indic1 = 'Signification des valeurs : 0 = Aucun événement / '. '1 = Evénement Système / 2 = Evénement de Sécurité / 3 = Alerte d'attaque'; $unite_indic1 =''; $valeur_seuil1 = '1'; $operateur_seuil1 = ">"; $valeur_cible1 = '0'; $priorite1 = 0; $value_change_saving1 = 0; $ind_conf1 = 0; $envoi_ 1 = 1; $generation_rapport1 = 1; CIGR Université de la Méditerranée 46 [email protected]
47 6.6) Connexion à la base de données et contrôles de variables de sessions Cette étape est toujours la même pour toutes les extensions. //Connexion à la bdd tdb $tdb_connec = connexion_bdd_tdb(); // Vérification de l'existence des variables de session controle_session_user_si("admin",$tdb_connec); 6.7) Instanciation d'un objet de la classe PLUGIN Cette étape est également identique pour toutes les extensions. // CREATION DU PLUGIN // $mon_plugin = new plugin($code_ext); 6.8) Création des éléments définis au cours de l'étape de configuration Il ne reste plus qu'à créer les différents éléments dont nous avons défini les caractéristiques en utilisant les méthodes de la classe PLUGIN. Etant donné que cette phase est différente pour chaque type d'indicateur (ou modèle) créé, vous pouvez vous référer aux exemples complets d'extension donnés dans le chapitre 8 de cette documentation pour avoir plus de détails. CIGR Université de la Méditerranée 47 [email protected]
48 7) PAS-A-PAS : Développer une extension Le fichier sur le serveur de collecte Le fichier situé sur le serveur de collecte a pour rôle de collecter et d'enregistrer les valeurs des indicateurs reliés à une source créée par une extension. Nous allons voir les étapes nécessaires à la création de ce fichier. Nous reprendrons l'exemple de l'extension nommée «TEST» commencé dans le paragraphe 9 «Démarche de création d'une extension : Le fichier sur le serveur WEB». 7.1) Connexion à la base de données du tableau de bord Tous les fichiers de collecte commencent de la même manière. <? //------Fichier de collecte de la source test // //Connexion a la bdd du tableau de bord $tdb_connec = connexion_bdd_tdb(); 7.2) Définition du code de l extension et du numéro de la source correspondant à ce fichier Dans notre exemple nous avions précédemment spécifié que le code de l'extension était «test» et que le numéro de la source était 1. // Définition du code de l'extension et du numéro de la source // $code_ext = 'test'; $num_source = 1; CIGR Université de la Méditerranée 48 [email protected]
49 7.3) Instanciation d un objet de la classe PLUGIN_COLLECTE Instanciation d'un objet de la classe plugin_collecte : $ma_collecte = new plugin_collecte($code_ext,$num_source,$tdb_connec); /* Suite de l'algorithme */ 7.4) Opérations spécifiques à un type d'indicateur Il ne reste plus que 3 types d'indicateurs concernés puisque les traitements afin de récupérer les valeurs des indicateurs issus de données à saisie manuelle ne sont pas assurés par le serveur de collecte ) Les indicateurs de SI à collecte automatique Aucune opération spécifique à ce type d'indicateur n'est nécessaire dans le traitement de collecte ) Les indicateurs de moyen par modèle Ces indicateurs auditent un moyen et ils sont issus d'un modèle que l'on a créé dans le fichier de l'extension sur le serveur WEB. En utilisant la méthode set_tab_moyens_audites(...) on valorise un tableau qui contient le numéro identifiant et l'adresse IP des moyens de ce SI qui sont audités par un indicateur provenant d'un modèle associé à cette source. Pour chaque moyen de ce tableau, on pourra donc aller chercher la valeur de l'indicateur voulu puis l'insérer dans la base de données du tableau de bord. Exemple d'utilisation: $ma_collecte->set_tab_moyens_audites($tdb_connec); //Pour chaque moyen du SI possédant un indicateur provenant de notre extension for($i=0; $i < $ma_collecte->get_nb_moyens_audites(); $i++) { $num_moy = $ma_collecte->get_tab_moyens_audites($i,'num'); $ip_moy = $ma_collecte->get_tab_moyens_audites($i,'ip'); CIGR Université de la Méditerranée 49 [email protected]
50 /* * - Suite des traitements afin de récupérer les valeurs * voulues pour chaque moyen dont on connait l'adresse IP. * * - Insertion de la valeur de l'indicateur dans la base de données * du tableau de bord. */ } 7.4.3) Les indicateurs de moyen directs Les valeurs de ces indicateurs proviennent d'une base de données externe au tableau de bord. Les propriétés «TABLE_BDD_EXTERNE» et «ID_EXTERNE» de ce type d'indicateur vont nous permettre d'aller récupérer la donnée voulue dans la base de données externe. En utilisant la méthode set_tab_indics_moyen_dir(...) on valorise un tableau qui contient des informations sur les indicateurs de moyen directs provenant de cette extension et dont la propriété «TABLE_BDD_EXTERNE» et celle qui est passée en paramètre. set_tab_indics_moyen_dir('nom de la table',$tdb_connec); Exemple d'utilisation: $ma_collecte->set_tab_indics_moyen_dir('ma_table',$tdb_connec); //Pour chaque indic de moyen direct de la table «ma_table» renvoyé for($i=0; $i < $ma_collecte->get_nb_indics_moyen_dir(); $i++) { $num_id_indic = $ma_collecte->get_tab_indics_moyen_dir($i,'num_id_indic'); $id_externe = $ma_collecte->get_tab_indics_moyen_dir($i,'id_ext'); /* Requête sur la base de données externe afin de récupérer la valeur recherchée grâce à la variable $id_externe */ /* Insertion de la valeur de l'indicateur dans la base de données du tableau de bord. */ } CIGR Université de la Méditerranée 50 [email protected]
51 7.5) Récupération des valeurs à insérer dans la base de données Cette partie de l'algorithme est différente pour chaque fichier de collecte. Des exemples complets d'extensions sont fournis dans le chapitre 8, vous pouvez vous y référer afin d'avoir un aperçu des traitements possibles. 7.6) Insertion des valeurs récupérées dans la base de données du tableau de bord Une fois qu'on a réussi à récupérer les valeurs que l'on voulait, il faut les insérer dans la base de données en utilisant la méthode adéquate de la classe PLUGIN_COLLECTE. 3 méthodes sont disponibles selon le type d'indicateur pour lequel on veut insérer une valeur: insert_valeur_indic_si_auto(...) : Cette méthode est à utiliser dans le cas d'indicateurs de SI à collecte automatique. insert_valeur_indic_moyen_direct( ) : Cette méthode permet d insérer la valeur d un indicateur de moyen direct. insert_valeur_indic_moyen_modele( ) : Cette méthode est à utiliser dans le cas d'indicateur de moyen créé par un modèle. N'hésitez pas à consulter les exemples complets du chapitre 8 afin de voir des cas concrets d'utilisation. CIGR Université de la Méditerranée 51 [email protected]
52 8) Exemples d'extensions par type d'indicateurs créés Nous allons voir pour chaque extension, les deux fichiers qui la composent. Une extension qui ne créerait que des indicateurs manuels constituerait une exception. En effet, puisqu'elle ne génèrerait aucune collecte automatique, elle ne serait donc constituée que d'un seul fichier, celui situé sur le serveur WEB. Même si dans presque tous ces exemples les extensions ne créent que des indicateurs ayant le même type, une extension peut bien sûr créer des indicateurs de types différents. 8.1) Indicateurs de moyen par modèle : l'extension LOGCHECK 8.1.1) Le fichier sur le serveur WEB Voici le code du fichier de l'extension LOGCHECK qui crée une source, un sous-thème et un modèle d indicateur. Les 7 étapes de l algorithme Étape 1 : Appel aux fonctions require_once(...) et session_start() afin d'intégrer correctement le fichier dans l'application WEB. Étape 2 : Définition et valorisation des variables qui seront les propriétés des différents éléments créés par l extension, c est à dire : - L extension elle-même - La source - Le sous-thème - Le modèle d indicateur Étape 3 : Connexion à la base de données du tableau de bord et vérification des variables de session de l utilisateur connecté à l application WEB TDB-SSI. Étape 4 : Instanciation de l objet de la classe plugin Étape 5 : Création ou mise à jour de la source en utilisant la méthode ajouter_source(...) Étape 6 : Création ou mise à jour du sous-thème en utilisant la méthode ajouter_ss_theme(...) Étape 7 : Création ou mise à jour du modèle en faisant appel à la méthode ajouter_modele(...) CIGR Université de la Méditerranée 52 [email protected]
53 <? // PLUGIN LOGCHECK // //Plugin qui crée un modèle d'indicateur. Les valeurs des indicateurs qui seront liés à // ce modèle seront automatiquement renseignés par les collectes de la source 'logchk1' Étape 1 require_once("../biblio/commun.php"); session_start(); Étape 2 // CONFIGURATION DU PLUGIN // //ELEMENTS DU PLUGIN A SAISIR DANS L'APPLICATION DANS LE MENU "AJOUTER UNE EXTENSION" //Code : logchk //Libellé : Audit des logs des moyens par Logcheck //Description : //CONFIGURATION DE L'EXTENSION $code_ext = 'logchk'; $version_ext = '1.0'; //CONFIGURATION DE LA SOURCE $num_source = 1; $lib_source = "Logcheck"; $description_source = "Analyse des logs"; $perio_collecte = "heure"; $collecte_nocturne = 0; //CONFIGURATION DU SOUS_THEME $lib_ss_theme = "Analyse des logs des moyens"; //CONFIGURATION DU MODELE 1 $num_modele1 = 1; $lib_modele1 = "Logcheck Criticité du log"; $ind_alarme1 = 2; $code_type_val1 = 'int'; $code_niv1 = "ope"; $code_graph1 = "cour"; $code_histo1 = "6mois"; $lib_indic1 = 'Criticité du log'; $description_indic1 = "Indice de criticité du rapport de Log de Logcheck"; $comment_indic1 = "Signification des valeurs : 0 = Aucun événement / 1 = Evénement Système / 2 = Evénement de Sécurité / 3 = Alerte d'attaque"; $unite_indic1 =''; CIGR Université de la Méditerranée 53 [email protected]
54 $valeur_seuil1 = '1'; $operateur_seuil1 = ">"; $valeur_cible1 = '0'; $priorite1 = 0; $value_change_saving1 = 0; $ind_conf1 = 0; $envoi_ 1 = 1; $generation_rapport1 = 1; Étape 3 // CONTROLES ET CONNEXION // //Connexion à la bdd tdb $tdb_connec = connexion_bdd_tdb(); // Vérification de l'existence des variables de session controle_session_user_si("admin",$tdb_connec); // CREATION PLUGIN // Étape 4 $mon_plugin = new plugin($code_ext); Étape 5 //Création ou mise à jour de la source1 et de sa collecte dans ce SI $mon_plugin->ajouter_source($num_source,$lib_source,$description_source,$perio_collecte, $collecte_nocturne,$tdb_connec); $num_theme = ''; Étape 6 //Création ou mise à jour du sous-thème $mon_plugin->ajouter_ss_theme($num_ss_theme,$lib_ss_theme,$num_theme,$tdb_connec); Étape 7 //Création ou mise à jour du modèle1 'Criticité du log' $mon_plugin->ajouter_modele($num_modele1,$lib_modele1,$ind_alarme1,$code_type_val1, $code_niv1,$code_graph1,$code_histo1,$num_source,$num_ss_theme,$lib_indic1, $description_indic1,$comment_indic1,$unite_indic1,$valeur_seuil1,$operateur_seuil1, $valeur_cible1,$priorite1,$value_change_saving1,$ind_conf1,$envoi_ 1, $generation_rapport1,$tdb_connec);?> CIGR Université de la Méditerranée 54 [email protected]
55 8.1.2) Le fichier sur le serveur de collecte Collecte des indicateurs issus du modèle créé par l'extension LOGCHECK Les 7 étapes de l algorithme Étape 1 : Connexion à la base de données du tableau de bord Étape 2 : Définition des variables utilisées par Logcheck (spécifique à cette extension) Étape 3 : Définition et valorisation du code de l extension et le numéro de la source correspondant à ce fichier. Étape 4 : Instanciation d un objet de la classe PLUGIN_COLLECTE Étape 5 : Récupération de tous les moyens de ce SI audités par au moins un indicateur actif ayant ce fichier comme source en faisant appel à la méthode set_tab_moyens_audites() Étape 6 : Pour chaque moyen renvoyé par la méthode set_tab_moyens_audites on effectue les traitements qui déclenchent la création d un rapport du log et le calcul de sa criticité. Ces traitements sont spécifiques à cette extension. Étape 7 : On insère les valeurs obtenues à partir du log dans l'indicateur de criticite de log de ce moyen en utilisant la méthode insert_valeur_indic_moyen_modele() CIGR Université de la Méditerranée 55 [email protected]
56 <? Étape 1 //Connexion a la bdd du tableau de bord $tdb_connec = connexion_bdd_tdb(); //Variables globales de Logcheck Étape 2 $rep_log = "/var/log/tdb/"; // répertoire où sont stockes les logs Étape 3 $code_ext = 'logchk'; $num_source = 1; Étape 4 $ma_collecte = new plugin_collecte($code_ext,$num_source,$tdb_connec); Étape 5 //Récupération des moyens de ce SI audités //par au moins un indicateur actif ayant ce fichier comme source $ma_collecte->set_tab_moyens_audites($tdb_connec); // Numero du modele de criticite du rapport de log cree par //l'extension logcheck $num_modele_criticite = 1; //Pour chaque moyen du SI possédant un indicateur de log for($i=0; $i < $ma_collecte->get_nb_moyens_audites(); $i++) { $num_moy = $ma_collecte->get_tab_moyens_audites($i,'num'); $ip_moy = $ma_collecte->get_tab_moyens_audites($i,'ip'); CIGR Université de la Méditerranée 56 [email protected]
57 Étape 6 //Exécution de la commande Logcheck $log=$rep_log.$ip_moy.'.log'; if(is_file($log)) { $rapport=shell_exec("sudo -u logcheck logcheck -l $log -o"); // Traitement du rapport afin de déterminer une criticité $criti=0; if(strlen($rapport)!=0) { } if ( substr_count( $rapport,"attack Alerts")>0 ) $criti=3; else if ( substr_count($rapport,"security Events")>0) $criti=2; else if (substr_count($rapport,"system Events")>0) $criti=1; Étape 7 } else // Insertion de la valeur de l'indicateur de criticite de log $ma_collecte->insert_valeur_indic_moyen_modele($num_modele_criticite, $num_moy,$criti,$rapport,$tdb_connec); error_log("$date Erreur collecte $code_ext: Il n'y a pas de fichier de log correspondant a l'adresse ip $ip_moy sur le serveur \n",3,$log_file); } mysql_close($tdb_connec);?> CIGR Université de la Méditerranée 57 [email protected]
58 8.2) Indicateurs de moyen directs : l'extension ZABBIX 8.2.1) Le fichier sur le serveur WEB L'extension crée une source, un thème, un sous-thème et des indicateurs de moyen directs. La particularité de ce type d'extension est qu on ne sait pas combien d indicateurs vont être créés, il s'agit d'une création d'indicateurs en masse. Le principe est tout d'abord de récupérer tous les moyens existants dans notre tableau de bord pour un SI. Ensuite, pour l'adresse IP de chaque moyen obtenu, on va regarder si des informations existent dans la base de données externe. Ici la base de données externe est celle de Zabbix et les informations en question sont des triggers. Pour chaque trigger trouvé, le script va alors créer un indicateur qui lui correspond dans le tableau de bord. Les 11 étapes de l'algorithme Étape 1 : Appel aux fonctions require_once(...) et session_start() afin d'intégrer correctement le fichier dans l'application WEB. Étape 2 : Définition et valorisation des variables qui seront les propriétés des différents éléments créés par l extension, c est à dire : L extension elle-même La source Le thème Le sous-thème Les indicateurs de moyen directs (leur propriété TABLE_BDD_EXT sera «triggers») Étape 3 : Connexion à la base de données du tableau de bord et vérification des variables de session de l utilisateur connecté à l application WEB TDB-SSI. Étape 4 : Instanciation de l objet de la classe plugin Étape 5 : Création ou mise à jour de la source et de sa collecte en utilisant la méthode ajouter_source(...) Étape 6 : Création ou mise à jour du thème en utilisant la méthode ajouter_theme(...) Étape 7 : Création ou mise à jour du sous-thème en utilisant la méthode ajouter_ss_theme(...) CIGR Université de la Méditerranée 58 [email protected]
59 Étape 8 : Récupération de tous les numéros identifiant et les adresses ip des moyens du SI enregistrés dans le tableau de bord en utilisant les méthodes: set_tab_moyens(...) afin de valoriser le tableau de moyens. get_tab_moyens(...) afin d'avoir accès aux valeurs de ce tableau Étape 9 : Pour chaque moyen, on cherche les triggers correspondant à l'adresse IP de ce moyen dans la base de données de Zabbix (traitements spécifiques à cette extension) Étape 10 : Pour chaque trigger récupéré, on effectue les traitements nécessaires à la définition des propriétés de l indicateur de moyen direct que l on va créer (traitements spécifiques à cette extension). Étape 11 : Création ou mise à jour de l'indicateur de moyen direct correspondant au trigger en faisant appel à la méthode ajouter_indic_moyen_direct(...) CIGR Université de la Méditerranée 59 [email protected]
60 <? // PLUGIN ZABBIX // Étape 1 require_once("../biblio/commun.php"); session_start(); // CONFIGURATION DU PLUGIN // Étape 2 //ELEMENTS DU PLUGIN A SAISIR DANS L'APPLICATION DANS LE MENU "AJOUTER UNE EXTENSION" //Code : zabbix //Libellé : Extension Zabbix //Description : //CONFIGURATION DE L'EXTENSION $code_ext = 'zabbix'; $version_ext = '1.0'; //VARIABLES DE CONNEXION A LA BDD DE ZABBIX $host_bdd_zab = "ad_ip_serveur_zabbix"; $user_bdd_zab = "zabbix_user"; $pwd_bdd_zab = "zabbix_pwd"; $name_bdd_zab = "zabbix_bdd"; //CONFIGURATION DE LA SOURCE ET DE LA COLLECTE $num_source = 1; $lib_source = "Zabbix"; $description_source = "Audit de la plateforme ZABBIX"; $perio_collecte = "min"; $collecte_nocturne = 0; //CONFIGURATION DU THEME $num_theme = 1; $lib_theme = "Etat du parc"; //CONFIGURATION DU SOUS_THEME $num_ss_theme = 1; $lib_ss_theme = "Supervision des moyens"; CIGR Université de la Méditerranée 60 [email protected]
61 // CONFIGURATION DES INDICATEURS DE MOYEN DIRECTS ISSUS DES TRIGGERS ZABBIX // Ces parametres peuvent etre utilises pour mettre a jour en masse tous les indicateurs ayant zabbix comme source en reactivant le plugin. $table_bdd_ext_trigger = 'triggers'; $type_val_trigger = 'int';//le trigger renvoie un entier pouvant avoir trois valeurs differentes 0,1 ou 2 $niv_trigger = 'ope'; $graph_trigger='cour'; $histo_trigger = 'an'; $description_trigger = "Issu d\'un trigger Zabbix"; $comment_trigger="signification des valeurs : 0 = Alarme Zabbix non déclenchée ". "/ 1 = Etat inconnu / 2 = Alarme Zabbix déclenchée"; $unite_trigger = ''; //Un trigger n'a pas d'unité $valeur_seuil_trigger = '1'; $operateur_seuil_trigger = '>'; $valeur_cible_trigger = '0'; //Une priorite maximale est donnee aux indicateurs issus de triggers afin qu'ils soient affiches en haut de la page $priorite_trigger = 5; $value_change_saving_trigger = 1; $ind_conf_trigger = 0; $envoi_ _trigger = 0; $generation_rapport_trigger = 1; //Les champs Alarme et Libellé d' un indicateur issu d'un trigger sont directement //renseignés à partir d'une requete sur la bdd de Zabbix Étape 3 //FONCTION DE CONNEXION A LA BDD DE ZABBIX output:ressource de connexion function connexion_bdd_zabbix() { global $host_bdd_zab, $user_bdd_zab, $pwd_bdd_zab, $name_bdd_zab; } $link_zab = mysql_connect($host_bdd_zab,$user_bdd_zab,$pwd_bdd_zab) or die("erreur de connexion au serveur $host_bdd_zab"); mysql_select_db($name_bdd_zab,$link_zab) or die("erreur de connexion a la base de donnees $name_bdd_zab"); return $link_zab; // CONTROLES ET CONNEXION // //Connexion aux bdd tdb et zabbix $tdb_connec = connexion_bdd_tdb(); $zab_connec = connexion_bdd_zabbix(); // Vérification de l'existence des variables de session controle_session_user_si("admin",$tdb_connec); CIGR Université de la Méditerranée 61 [email protected]
62 // CREATION DU PLUGIN // Étape 4 $mon_plugin = new plugin($code_ext); //Création ou mise à jour de la source $mon_plugin->ajouter_source($num_source,$lib_source,$description_source,$perio_collecte, $collecte_nocturne,$tdb_connec); Étape 5 //Création ou mise à jour du thème $mon_plugin->ajouter_theme($num_theme,$lib_theme,$tdb_connec); Étape 6 //Création ou mise à jour du sous-thème $mon_plugin->ajouter_ss_theme($num_ss_theme,$lib_ss_theme,$num_theme,$tdb_connec); Étape 7 //Valorisation du tableau de tous les moyens du SI $mon_plugin->set_tab_moyens($tdb_connec); Étape 8 //Pour chaque moyen du SI for($i=0;$i<$mon_plugin->get_nb_moyens();$i++) { $num_id_moy = $mon_plugin->get_tab_moyens($i,'num'); $ip_moy = $mon_plugin->get_tab_moyens($i,'ip'); Étape 9 // Requete sur la bdd zabbix qui renvoie les triggers concernant le moyen considere $query_trigger = "SELECT DISTINCT triggers.triggerid, triggers.description, triggers.priority FROM triggers,functions,items,hosts WHERE triggers.triggerid = functions.triggerid AND functions.itemid = items.itemid AND items.hostid = hosts.hostid AND triggers.status = 0 AND hosts.status <> 1 AND hosts.ip like '$ip_moy'"; $result_trigger=mysql_query($query_trigger,$zab_connec) or die("echec requete select "); CIGR Université de la Méditerranée 62 [email protected]
63 Étape 10 //Pour chaque Trigger qui concerne le moyen while($row_trigger = mysql_fetch_assoc($result_trigger)) { //Echappement des éventuels caractères spéciaux(',",\) presents dans //la description du trigger $lib_trigger = $row_trigger['description']; $id_ext_trigger = $row_trigger['triggerid']; Étape 11 //On etablit la conversion entre la priority du trigger de zabbix et les //alarmes du tdb switch ($row_trigger['priority']) { } case 0 : case 1 : case 2 : $alarme_trigger=0;//aucune break; $alarme_trigger=1;//basse break; case 3 : $alarme_trigger=2;//moyenne case 5 : default: break; case 4 : $alarme_trigger=3;//elevee break; $alarme_trigger=0; break; //Création ou mise à jour de l'indicateur de moyen direct correspondant au trigger $mon_plugin->ajouter_indic_moyen_direct($alarme_trigger,$type_val_trigger,$niv_trigger, $graph_trigger,$histo_trigger,$num_source,$num_ss_theme,$lib_trigger, $description_trigger,$comment_trigger,$unite_trigger,$valeur_seuil_trigger, $operateur_seuil_trigger,$valeur_cible_trigger,$priorite_trigger, $value_change_saving_trigger,$ind_conf_trigger,$envoi_ _trigger, $generation_rapport_trigger,$num_id_moy,$id_ext_trigger,$table_bdd_ext_trigger, $tdb_connec); } } mysql_close($zab_connec); CIGR Université de la Méditerranée 63 [email protected]
64 8.2.2) Le fichier sur le serveur de collecte Collecte des indicateurs de moyen directs issus de l'extension ZABBIX ayant la propriété table_bdd_ext égale à «triggers». Les 6 étapes de l algorithme : Étape 1 : Connexion à la base de données de Zabbix et à celle du tableau de bord Étape 2 : Définition et valorisation du code de l extension et le numéro de la source correspondant à ce fichier. Étape 3 : Instanciation d un objet de la classe PLUGIN_COLLECTE Étape 4 : Récupération des indicateurs de moyen directs actifs de ce SI et cette extension associés à la table «triggers» en utilisant les méthodes: set_tab_indics_moyen_dir(...) afin de valoriser le tableau d'indicateurs de moyen directs. get_tab_indics_moyen_dir(...) afin d'avoir accès aux valeurs de ce tableau. Étape 5 : Pour chaque indicateur renvoyé, on requête la base de données de Zabbix pour chercher le trigger dont l'id correspond à la propriété «id_externe» de l'indicateur. Étape 6 : Insertion de la valeur de l'indicateur dans la base de données en utilisant la méthode insert_valeur_indic_moyen_direct(...) CIGR Université de la Méditerranée 64 [email protected]
65 <? // Script qui execute la collecte des indicateurs ayant zabbix comme source Étape 1 //VARIABLES DE CONNEXION A LA BDD DE ZABBIX $host_bdd_zab = <adresse IP du serveur où se trouve Zabbix>; $user_bdd_zab = <Nom de l utilisateur de la base de données de Zabbix>; $pwd_bdd_zab = <Mot de passe de la base de données>; $name_bdd_zab = <Nom de la base de données>; $url_zabbix = "<URL_Zabbix>"; //url de l'interface WEB de zabbix //Fonction de connexion a la base de donnees de Zabbix function connexion_bdd_zabbix() { global $host_bdd_zab; global $user_bdd_zab; global $pwd_bdd_zab; global $name_bdd_zab; $link_zab = mysql_connect($host_bdd_zab,$user_bdd_zab,$pwd_bdd_zab) or die("erreur de connexion au serveur $host_bdd_zab"); mysql_select_db($name_bdd_zab,$link_zab) or die("erreur de connexion a la base de donnees $name_bdd_zab"); } return $link_zab; //Connexion aux bdd tdb et zabbix $tdb_connec = connexion_bdd_tdb(); $zab_connec = connexion_bdd_zabbix(); //Variables globales de Zabbix Étape 2 $code_ext = 'zabbix'; $num_source = 1; $rapport_trigger = "<strong><a href='$url_zabbix' target='_blank' title='accès à Zabbix dans une nouvelle fenêtre'>lien vers l'interface WEB de Zabbix</a></strong>"; Étape 3 $ma_collecte = new source_collecte($code_ext,$num_source,$tdb_connec); CIGR Université de la Méditerranée 65 [email protected]
66 Étape 4 //Récupération des indicateurs de moyen directs actifs de ce SI et cette //extension associes a la table "triggers" $ma_collecte->set_tab_indics_moyen_dir('triggers',$tdb_connec); //Pour chaque indic de moyen direct de la table trigger renvoye for($i=0; $i < $ma_collecte->get_nb_indics_moyen_dir(); $i++) { $num_id_indic = $ma_collecte->get_tab_indics_moyen_dir($i,'num_id_indic'); $date_last_value = $ma_collecte->get_tab_indics_moyen_dir($i,'date_last_value'); $histo = $ma_collecte->get_tab_indics_moyen_dir($i,'histo'); $value_change_saving = $ma_collecte->get_tab_indics_moyen_dir($i,'value_change_saving'); $id_externe = $ma_collecte->get_tab_indics_moyen_dir($i,'id_ext'); Étape 5 // Requete sur la bdd zabbix qui renvoie le trigger actif dont l'id est celle du //champ "ID_EXTERNE" de la table INDIC_MOYEN_DIR du tableau de bord $query_trigger = "SELECT DISTINCT triggers.triggerid, triggers.value FROM triggers,functions,items,hosts WHERE triggers.triggerid = functions.triggerid AND functions.itemid = items.itemid AND items.hostid = hosts.hostid AND triggers.triggerid = $id_externe AND hosts.status <> 1 AND triggers.status = 0"; $result_trigger=mysql_query($query_trigger,$zab_connec); $row_trigger= mysql_fetch_assoc($result_trigger); CIGR Université de la Méditerranée 66 [email protected]
67 Étape 6 // Verification qu'il y ait bien un trigger correspondant au champ id_externe if (mysql_num_rows($result_trigger)==1) { switch($row_trigger['value']) { case 0 : $valeur_trig = 0; break; case 1: $valeur_trig = 2; break; case 2: $valeur_trig = 1; } } } mysql_close($tdb_connec); mysql_close($zab_connec);?> //Insertion de la valeur de l'indicateur dans la base de donnees $ma_collecte->insert_valeur_indic_moyen_direct($i,$valeur_trig, $rapport,$tdb_connec); CIGR Université de la Méditerranée 67 [email protected]
68 8.3) Indicateurs de SI à collecte automatique : l'extension STATS 8.3.1) Le fichier sur le serveur WEB Cette extension crée une source, un sous-thème et un indicateur de SI à collecte automatique. Les 7 étapes de l algorithme Étape 1 : Appel aux fonctions require_once() et session_start() afin d'intégrer correctement le fichier dans l'application WEB. Étape 2 : Définition et valorisation des variables qui seront les propriétés des différents éléments créés par l extension, c est à dire : - L extension elle-même - La source - Le sous-thème - L indicateur de SI à collecte automatique Étape 3 : Connexion à la base de données du tableau de bord et vérification des variables de session de l utilisateur connecté à l application WEB TDB-SSI. Étape 4 : Instanciation de l objet de la classe plugin Étape 5 : Création ou mise à jour de la source et de sa collecte en utilisant la méthode ajouter_source(...) Étape 6 : Création ou mise à jour du sous-thème en utilisant la méthode ajouter_ss_theme(...) Étape 7 : Création ou mise à jour de l'indicateur de SI auto 1 en utilisant la méthode ajouter_indic_si_auto(...) CIGR Université de la Méditerranée 68 [email protected]
69 <? // PLUGIN STATS // //Plugin qui crée un indicateur de SI à collecte automatique. //collectes de la source 'stats1' Étape 1 require_once("../biblio/commun.php"); session_start(); // CONFIGURATION DU PLUGIN // Étape 2 //ELEMENTS DU PLUGIN A SAISIR DANS L'APPLICATION TDB-SSI DANS LE MENU "AJOUTER UNE EXTENSION" //Code : stats //Libellé : Statistiques //Description : //CONFIGURATION DE L'EXTENSION $code_ext = 'stats'; $version_ext = '1.0'; //CONFIGURATION DE LA SOURCE $num_source = 1; $lib_source = "Statistiques"; $description_source = ''; $perio_collecte = "sem"; $collecte_nocturne = 1; //CONFIGURATION DU SOUS_THEME $num_ss_theme = 1; $lib_ss_theme = "Maintenabilité des moyens"; $num_theme = ''; //CONFIGURATION DE L'INDICATEUR DE SI AUTOMATIQUE 1 $num_indic_si_auto1 = 1; $ind_alarme1 = 2; $code_type_val1 = 'real'; $code_niv1 = "pilo"; $code_graph1 = "cour"; $code_histo1 = "an"; $lib_indic1 = 'Pourcentage des moyens sous contrat de maintenance'; $description_indic1 = ''; CIGR Université de la Méditerranée 69 [email protected]
70 $comment_indic1 = "Calcul effectué à partir de la description des moyens enregistrée dans le tableau de bord"; $unite_indic1 ='%'; $valeur_seuil1 = '50'; $operateur_seuil1 = '<'; $valeur_cible1 = ''; $priorite1 = 0; $value_change_saving1 = 0; $ind_conf1 = 0; $envoi_ 1 = 0; $generation_rapport1 = 0; // CONTROLES ET CONNEXION // Étape 3 //Connexion à la bdd du tdb $tdb_connec = connexion_bdd_tdb(); // Vérification de l'existence des variables de session controle_session_user_si("admin",$tdb_connec); // CREATION DU PLUGIN // Étape 4 $mon_plugin = new plugin($code_ext); Étape 5 //Création ou mise à jour de la source $mon_plugin->ajouter_source($num_source,$lib_source,$description_source,$perio_collecte, $collecte_nocturne,$tdb_connec); Étape 6 //Création ou mise à jour du sous-thème $mon_plugin->ajouter_ss_theme($num_ss_theme,$lib_ss_theme,$num_theme,$tdb_connec); Étape 7 //Création ou mise à jour de l'indicateur de SI auto1 $mon_plugin->ajouter_indic_si_auto($num_indic_si_auto1,$ind_alarme1,$code_type_val1, $code_niv1,$code_graph1,$code_histo1,$num_source,$num_ss_theme,$lib_indic1, $description_indic1,$comment_indic1,$unite_indic1,$valeur_seuil1,$operateur_seuil1, $valeur_cible1,$priorite1,$value_change_saving1,$ind_conf1,$envoi_ 1, $generation_rapport1,$tdb_connec);?> CIGR Université de la Méditerranée 70 [email protected]
71 8.3.2) Le fichier sur le serveur de collecte Script qui exécute la collecte des indicateurs issus de l'extension STATS. Les 5 étapes de l algorithme : Étape 1 : Connexion à la base de données du tableau de bord Étape 2 : Définition et valorisation du code de l extension et le numéro de la source correspondant à ce fichier. Étape 3 : Instanciation d un objet de la classe PLUGIN_COLLECTE Étape 4 : Traitement calculant la valeur de l'indicateur de SI auto 1 de l'extension (traitement spécifique à cette extension). Étape 5 : On insère la valeur obtenue dans l' indicateur en utilisant la méthode insert_valeur_indic_si_auto(...) <? Étape 1 //Connexion a la bdd du tableau de bord $tdb_connec = connexion_bdd_tdb(); Étape 2 $code_ext = 'stats'; $num_source = 1; Étape 3 $ma_collecte = new plugin_collecte($code_ext,$num_source,$tdb_connec); CIGR Université de la Méditerranée 71 [email protected]
72 Étape 4 // Calcul de la valeur de l'indicateur auto 1 du plugin stats $query_nb_moy = "SELECT COUNT(num_moy) as NB_MOYENS FROM MOYEN WHERE code_sys like '$si'"; $result_nb_moy = mysql_query($query_nb_moy,$tdb_connec); if(!$result_nb_moy) error_log("$date Collecte $code_ext Erreur: ". "la requete de count du nombre de moyens a echoue \n",3,$log_file); $row_nb_moy= mysql_fetch_row($result_nb_moy); $nb_moyens = $row_nb_moy[0]; $query_nb_contrats = "SELECT COUNT(num_moy) as NB_CONTRATS FROM MOYEN WHERE code_sys like '$si' AND contrat_maintenance = 1"; $result_nb_contrats = mysql_query($query_nb_contrats,$tdb_connec); if(!$result_nb_contrats) error_log("$date Erreur collecte $code_ext: la requete de count du nombre de moyens sous contrat de maintenance a echoue \n",3,$log_file); $row_nb_contrats= mysql_fetch_row($result_nb_contrats); $nb_moyens_sous_contrat = $row_nb_contrats[0]; $pourcent_moyens_sous_contrat = ($nb_moyens_sous_contrat / $nb_moyens) * 100; Étape 5 // Insertion de la valeur de l'indicateur auto 1 $num_indic_auto_maintenance = 1; $rapport = ""; $ma_collecte->insert_valeur_indic_auto($num_indic_auto_maintenance, } $pourcent_moyens_sous_contrat,$rapport,$tdb_connec); mysql_close($tdb_connec);?> CIGR Université de la Méditerranée 72 [email protected]
73 8.4) Indicateurs de SI à collecte manuelle et données saisies : l'extension BUDGET Nous allons voir ici une extension qui génère deux données à saisie manuelle ainsi que les indicateurs de SI à collecte manuelle qui les auditent. S'il n'y avait eu que ces indicateurs issus d'une saisie manuelle, aucun fichier n'aurait été créé sur le serveur de collecte. Mais cette extension crée également un indicateur de SI à collecte automatique. Il s'agira d'un indicateur composé qui puisera ses valeurs dans les deux données à saisie manuelle préalablement créées ) Le fichier sur le serveur WEB Les 6 étapes de l algorithme Étape 1 : Appel aux fonctions require_once() et session_start() afin d'intégrer correctement le fichier dans l'application WEB. Étape 2 : Définition et valorisation des variables qui seront les propriétés des différents éléments créés par l extension, c est à dire : - L extension elle-même - La source - Le sous-thème - Les données à saisie manuelle ainsi que les indicateurs manuels qui les auditent - L'indicateur de SI à collecte automatique Remarque: S'il n' y avait eu que des données à saisies manuelle (avec leurs indicateurs), la création d'aucune source n'aurait été nécessaire pour cette extension. Étape 3 : Connexion à la base de données du tableau de bord et vérification des variables de session de l utilisateur connecté à l application WEB. Étape 4 : Instanciation de l objet de la classe plugin Étape 5 : Création ou mise à jour de la source en utilisant la méthode ajouter_source(...) Étape 6 : Création ou mise à jour du sous-thème en utilisant la méthode ajouter_ss_theme(...) Étape 7 : Création ou mise à jour des données à saisie manuelle et des indicateurs qui les auditent en faisant appel à la méthode ajouter_donnee_et_indic_manuel(...) Étape 8 : Création ou mise à jour de l'indicateur de SI à collecte automatique en utilisant la méthode ajouter_indic_si_auto(...) CIGR Université de la Méditerranée 73 [email protected]
74 <? // PLUGIN BUDGET // //Plugin qui crée une donnée à saise manuelle et l'indicateur qui l'audite. Étape 1 require_once("../biblio/commun.php"); session_start(); // CONFIGURATION DU PLUGIN // Étape 2 //ELEMENTS DU PLUGIN A SAISIR DANS L'APPLICATION TDB-SSI DANS LE MENU "AJOUTER UNE EXTENSION" //Code : budget //Libellé : Budgets //Description : //CONFIGURATION DE L'EXTENSION $code_ext = 'budget'; $version_ext = '1.0'; //CONFIGURATION DE LA SOURCE // La source et la collecte ne sont utiles que pour l'indicateur de SI à collecte //automatique. Les données à saisie manuelle et les indicateurs qui les auditent //n'ont quant à eux pas besoin de cette source. $num_source = 1; $lib_source = "Statistiques sur les investissements"; $description_source = 'Statistiques effectuées sur les investissements saisis'; $perio_collecte = "sem"; $collecte_nocturne = 1; //CONFIGURATION DU SOUS_THEME $num_ss_theme = 1; $lib_ss_theme = "Investissements"; $num_theme = ''; //CONFIGURATION DE LA DONNEE A SAISIE MANUELLE 1 $num_donnee1 = 1; $lib_donnee1 = "Montant des investissements globaux"; $description_donnee1 = ''; $unite_donnee1 = 'Euros'; $type_val_donnee1 = 'int'; $ind_conf_donnee1 = 3; $perio_donnee1 = 'an'; CIGR Université de la Méditerranée 74 [email protected]
75 //CONFIGURATION DE L'INDICATEUR MANUEL 1 $alarme_indic1 = 0; $niv_indic1 = "strat"; $graph_indic1 = "cour"; $lib_indic1 = "Montant des investissements globaux"; $description_indic1 = ''; $comment_indic1 = ''; $valeur_seuil_indic1 = ''; $operateur_seuil_indic1 = ''; $valeur_cible_indic1 = ''; $envoi_ _indic1 = 0; $priorite_indic1 = 0; $ind_conf_indic1 = 3; //Le type de l'indicateur manuel ainsi que son unité sont les mêmes que ceux de la //donnée manuelle qu'il audite //CONFIGURATION DE LA DONNEE A SAISIE MANUELLE 2 $num_donnee2 = 2; $lib_donnee2 = "Montant des investissements liés à la sécurité"; $description_donnee2 = ''; $unite_donnee2 = 'Euros'; $type_val_donnee2 = 'int'; $ind_conf_donnee2 = 4; $perio_donnee2 = 'an'; //CONFIGURATION DE L'INDICATEUR MANUEL 2 $alarme_indic2 = 0; $niv_indic2 = "strat"; $graph_indic2 = "cour"; $lib_indic2 = "Montant des investissements liés à la sécurité"; $description_indic2 = ''; $comment_indic2 = ''; $valeur_seuil_indic2 = ''; $operateur_seuil_indic2 = ''; $valeur_cible_indic2 = ''; $envoi_ _indic2 = 0; $priorite_indic2 = 0; $ind_conf_indic2 = 4; CIGR Université de la Méditerranée 75 [email protected]
76 //CONFIGURATION DE L'INDICATEUR DE SI AUTOMATIQUE 1 $num_indic_si_auto1 = 1; $ind_alarme3 = 0; $code_type_val3 = 'real'; $code_niv3 = "strat"; $code_graph3 = "cour"; $code_histo3 = "def"; $lib_indic3 = 'Pourcentage des investissements liés à la sécurité'; $description_indic3 = "Pourcentage des investissements liés à la sécurité par rapport aux investissements globaux"; $comment_indic3 = "Calcul effectué à partir des deux données à saisie manuelle correspondantes"; $unite_indic3 ='%'; $valeur_seuil3 = ''; $operateur_seuil3 = ''; $valeur_cible3 = ''; $priorite3 = 0; $value_change_saving3 = 1; $ind_conf3 = 4; $envoi_ _indic3 = 0; $generation_rapport3 = 0; // CONTROLES ET CONNEXION // Étape 3 //Connexion à la bdd du tdb $tdb_connec = connexion_bdd_tdb(); // Vérification de l'existence des variables de session controle_session_user_si("admin",$tdb_connec); // CREATION DU PLUGIN // Étape 4 $mon_plugin = new plugin($code_ext); Étape 5 //Création ou mise à jour de la source $mon_plugin->ajouter_source($num_source,$lib_source,$description_source,$perio_collecte, $collecte_nocturne,$tdb_connec); Étape 6 //Création ou mise à jour du sous-thème $mon_plugin->ajouter_ss_theme($num_ss_theme,$lib_ss_theme,$num_theme,$tdb_connec); CIGR Université de la Méditerranée 76 [email protected]
77 Étape 7 //Création ou mise à jour de la donnée à saisie manuelle1 et de l'indicateur qui l'audite $mon_plugin- >ajouter_donnee_et_indic_manuel($num_donnee1,$lib_donnee1,$description_donnee1, $unite_donnee1,$type_val_donnee1,$ind_conf_donnee1,$perio_donnee1,$alarme_indic1, $niv_indic1,$graph_indic1,$lib_indic1,$description_indic1, $comment_indic1, $valeur_seuil_indic1,$operateur_seuil_indic1,$valeur_cible_indic1,$priorite_indic1, $ind_conf_indic1,$num_ss_theme,$envoi_ _indic1,$tdb_connec); //Création ou mise à jour de la donnée à saisie manuelle2 et de l'indicateur qui l'audite $mon_plugin- >ajouter_donnee_et_indic_manuel($num_donnee2,$lib_donnee2,$description_donnee2, $unite_donnee2,$type_val_donnee2,$ind_conf_donnee2,$perio_donnee2,$alarme_indic2, $niv_indic2,$graph_indic2,$lib_indic2,$description_indic2, $comment_indic2, $valeur_seuil_indic2,$operateur_seuil_indic2,$valeur_cible_indic2,$priorite_indic2, $ind_conf_indic2,$num_ss_theme,$envoi_ _indic2,$tdb_connec); Étape 8 //Création ou mise à jour de l'indicateur de SI auto1 $mon_plugin->ajouter_indic_si_auto($num_indic_si_auto1,$ind_alarme3,$code_type_val3, $code_niv3,$code_graph3,$code_histo3,$num_source,$num_ss_theme,$lib_indic3, $description_indic3,$comment_indic3,$unite_indic3,$valeur_seuil3,$operateur_seuil3, $valeur_cible3,$priorite3,$value_change_saving3,$ind_conf3,$envoi_ _indic3, $generation_rapport3,$tdb_connec);?> CIGR Université de la Méditerranée 77 [email protected]
78 8.4.2) Le fichier sur le serveur de collecte (cas du traitement d'un indicateur composé) Ce fichier correspond à la source qui effectuera les traitements de collecte de l'indicateur de SI automatique de l'extension Budget. Cet indicateur est un indicateur composé, sa valeur va être calculée à partir des dernières valeurs saisies des données créées par l'extension. Les 5 étapes de l algorithme : Étape 1 : Connexion à la base de données du tableau de bord Étape 2 : Définition et valorisation du code de l extension et le numéro de la source correspondant à ce fichier. Étape 3 : Instanciation d un objet de la classe PLUGIN_COLLECTE Étape 4 : Traitement calculant la valeur de l'indicateur de SI auto1 de l'extension. Puisqu'il s'agit d'un indicateur composé qui puise ses valeurs dans les dernières valeurs de données à saisie manuelle créées par cette extension, nous allons utiliser la méthode get_derniere_valeur_donnee(...) de l'api. Remarque: Dans cet exemple, la variable $si_serveur est utilisée. Il s'agit d'une variable globale existant sur le serveur de collecte dont la valeur est égale au code du SI d'appartenance du serveur. Étape 5 : On insère la valeur obtenue dans l' indicateur en utilisant la méthode insert_valeur_indic_si_auto(...) <? Étape 1 //Connexion a la bdd du tableau de bord $tdb_connec = connexion_bdd_tdb(); Étape 2 $code_ext = 'budget'; $num_source = 1; Étape 3 $ma_collecte = new plugin_collecte($code_ext,$num_source,$tdb_connec); CIGR Université de la Méditerranée 78 [email protected]
79 Étape 4 // Calcul de la valeur de l'indicateur de SI auto 1 du plugin budget // Il s'agit d'un indicateur composé, le calcul se fait à partir de la valeur // de deux données saisies dans le TDB. // Donnee 'montant des investissements globaux' $num_donnee = 1; $valeur_investissements_globaux = $ma_collecte->get_derniere_valeur_donnee($si_serveur,$code_ext,$num_donnee,'valeur', $tdb_connec); $date_investissements_globaux = $ma_collecte->get_derniere_valeur_donnee($si_serveur,$code_ext,$num_donnee,'date', $tdb_connec); // Donnee 'montant des investissements securite' $num_donnee = 2; $valeur_investissements_secu = $ma_collecte->get_derniere_valeur_donnee($si_serveur,$code_ext,$num_donnee,'valeur', $tdb_connec); $date_investissements_secu = $ma_collecte->get_derniere_valeur_donnee($si_serveur,$code_ext,$num_donnee,'date', $tdb_connec); // Si les deux données ont bien une valeur d'enregistrée et que leurs dates sont identiques if ( ($valeur_investissements_globaux) && ($valeur_investissements_secu) && ($date_investissements_globaux == $date_investissements_secu) ) { // Calcul du pourcentage du montant securite par rapport au montant total $pourcent_secu = ($valeur_investissements_secu / $valeur_investissements_globaux) * 100; Étape 5 // Insertion de la valeur de l'indicateur de SI auto 1 de ratio $num_indic_si_auto1 = 1; $rapport = ''; //Cet indicateur ne genere pas de rapport } $ma_collecte->insert_valeur_indic_si_auto( $num_indic_si_auto1,$pourcent_secu, $rapport,$tdb_connec); mysql_close($tdb_connec);?> CIGR Université de la Méditerranée 79 [email protected]
TDB-SSI Extension OpenVAS
TDB-SSI Extension OpenVAS U n i v e r s i t é d e l a M é d i t e r r a n é e F a c u l t é d e M é d e c i n e Projet TDB-SSI Documentation du Tableau de Bord de Sécurité des Systèmes d Information Marseille,
Recherche dans un tableau
Chapitre 3 Recherche dans un tableau 3.1 Introduction 3.1.1 Tranche On appelle tranche de tableau, la donnée d'un tableau t et de deux indices a et b. On note cette tranche t.(a..b). Exemple 3.1 : 3 6
Stockage du fichier dans une table mysql:
Stockage de fichiers dans des tables MYSQL avec PHP Rédacteur: Alain Messin CNRS UMS 2202 Admin06 30/06/2006 Le but de ce document est de donner les principes de manipulation de fichiers dans une table
Télécharger et Installer OpenOffice.org sous Windows
Télécharger et Installer OpenOffice.org sous Windows Version Date Auteur Commentaires 1.00 15/11/2008 Denis Bourdillon Création du document. Mise en forme de texte 1/15 Saison 2008-2009 Table des matières
Installation et Réinstallation de Windows XP
Installation et Réinstallation de Windows XP Vous trouvez que votre PC n'est plus très stable ou n'est plus aussi rapide qu'avant? Un virus a tellement mis la pagaille dans votre système d'exploitation
Définition des Webservices Ordre de paiement par email. Version 1.0
Définition des Webservices Ordre de paiement par email Version 1.0 Rédaction, Vérification, Approbation Rédaction Vérification Approbation Nom Date/Visa Nom Date/Visa Nom Date/Visa Historique du document
OPTENET DCAgent 2.01. Manuel d'utilisateur
OPTENET DCAgent 2.01 Manuel d'utilisateur SOMMAIRE 1. INTRODUCTION...1 2. INSTALLATION...2 3. ÉTABLISSEMENT DES PERMISSIONS...4 Pour de plus amples informations, reportez-vous aux annexes «Conditions requises
Edutab. gestion centralisée de tablettes Android
Edutab gestion centralisée de tablettes Android Résumé Ce document présente le logiciel Edutab : utilisation en mode enseignant (applications, documents) utilisation en mode administrateur (configuration,
Création d'un site dynamique en PHP avec Dreamweaver et MySQL
Création d'un site dynamique en PHP avec Dreamweaver et MySQL 1. Création et configuration du site 1.1. Configuration de Dreamweaver Avant de commencer, il est nécessaire de connaître l'emplacement du
HelpAndManual_unregistered_evaluation_copy GESTIONNAIRE D'ALARMES CENTRALISE OPTIM'ALARM. Manuel d'utilisation
HelpAndManual_unregistered_evaluation_copy GESTIONNAIRE D'ALARMES CENTRALISE OPTIM'ALARM Manuel d'utilisation OPTIMALOG 2008 Table des matières I Table des matières Part I Gestionnaire d'alarmes Optim'Alarm
1. Installation du Module
1 sur 10 Mise en place du Module Magento V 1.5.7 1. Installation du Module Vous pouvez installer le module de deux façons différentes, en passant par Magento Connect, ou directement via les fichiers de
PARAMÉTRAGE BOSCH SOMMAIRE DE LA CAMÉRA OSCH DINION-IP-NWC-0455 1 : CONFIGURATION POUR DE L ENREGISTREMENT PERMANENT... 2
PARAMÉTRAGE DE LA CAMÉRA OSCH DINION-IP-NWC-0455 BOSCH SOMMAIRE 1 : CONFIGURATION POUR DE L ENREGISTREMENT PERMANENT... 2 1.1Configuration de la caméra... 2 1.1.1 Paramétrage IP de la caméra... 2 1.1.2
Plateforme PAYZEN. Définition de Web-services
Plateforme PAYZEN Définition de Web-services Ordre de paiement Version 1.1 Rédaction, Vérification, Approbation Rédaction Vérification Approbation Nom Date/Visa Nom Date/Visa Nom Date/Visa Lyra-Network
HP Data Protector Express Software - Tutoriel 4. Utilisation de Quick Access Control (Windows uniquement)
HP Data Protector Express Software - Tutoriel 4 Utilisation de Quick Access Control (Windows uniquement) Que contient ce tutoriel? Quick Access Control est une application qui s'exécute indépendamment
1. Introduction...2. 2. Création d'une requête...2
1. Introduction...2 2. Création d'une requête...2 3. Définition des critères de sélection...5 3.1 Opérateurs...5 3.2 Les Fonctions...6 3.3 Plusieurs critères portant sur des champs différents...7 3.4 Requête
PARAGON SYSTEM BACKUP 2010
PARAGON SYSTEM BACKUP 2010 Paragon System Backup 2010 2 Manuel d'utilisation SOMMAIRE 1 Introduction...3 1.1 Comment System Backup protège mon ordinateur?...3 1.1.1 Emplacement du stockage des clichés...
Guide d'intégration à ConnectWise
Guide d'intégration à ConnectWise INTÉGRATION DE CONNECTWISE À BITDEFENDER CONTROL CENTER Guide d'intégration à ConnectWise Intégration de ConnectWise à Bitdefender Control Center Date de publication 2015.05.14
Guide d'utilisation du portail d'authentification Cerbère à usage des professionnels et des particuliers
RAPPORTS Secrétariat Général Service des Politiques Supports et des Systèmes d'information Centre de prestations et d'ingénierie Informatiques Département Opérationnel Sud-Ouest PNE Sécurité 10/11/2011
DE LA CAMÉRA SOMMAIRE
PARAMÉTRAGE DE LA CAMÉRA HIKVISION ISION DS-2DF1-715-B SOMMAIRE 1 : CONFIGURATION POUR DE L ENREGISTREMENT PERMANENT... 2 1.1Configuration de la caméra... 2 1.1.1 Paramétrage de l adresse IP de la caméra...
DE LA CAMÉRA SOMMAIRE
PARAMÉTRAGE DE LA CAMÉRA HIKVISION ISION DS-2CD2732F-IS SOMMAIRE 1 : CONFIGURATION POUR DE L ENREGISTREMENT PERMANENT... 2 1.1Configuration de la caméra... 2 1.1.1 Paramétrage de l adresse IP de la caméra...
SERVEUR DE MESSAGERIE
CRÉEZ VOTRE SERVEUR DE MESSAGERIE avec: version 4.3-B248 Sommaire PREAMBULE et REMERCIEMENTS Page 2 INTRODUCTION Page 2 AVERTISSEMENT Page 3 INSTALLATION Page 3 CONFIGURATION Page 12 CLIENT DE MESAGERIE
Cédric Gendre Inra, ESR Toulouse
ODR, Bases de données administratives à différentes échelles spatiales Cédric Gendre Inra, ESR Toulouse 2èmes journées de recherches en sciences sociales INRA SFER CIRAD 11 & 12 décembre 2008 LILLE, France
FORMATION PcVue. Mise en œuvre de WEBVUE. Journées de formation au logiciel de supervision PcVue 8.1. Lieu : Lycée Pablo Neruda Saint Martin d hères
FORMATION PcVue Mise en œuvre de WEBVUE Journées de formation au logiciel de supervision PcVue 8.1 Lieu : Lycée Pablo Neruda Saint Martin d hères Centre ressource Génie Electrique Intervenant : Enseignant
Mémo d'utilisation de BD Dico1.6
Mémo d'utilisation de BD Dico1.6 L'application BDDico a été développée par la Section Cadastre et Géomatique de la RCJU. Son utilisation demeure réservée aux personnes autorisées. Les demandes d'utilisation
La Clé informatique. Formation Internet Explorer Aide-mémoire
La Clé informatique Formation Internet Explorer Aide-mémoire Novembre 2003 Table des matières Novembre 2003...i Configuration d Internet Explorer... 1 Internet Explorer 6... 5 Gestion des Raccourcies...
CMS Made Simple Version 1.4 Jamaica. Tutoriel utilisateur Récapitulatif Administration
CMS Made Simple Version 1.4 Jamaica Système de gestion de contenu CMS Made Simple est entièrement gratuit sous licence GPL. Tutoriel utilisateur Récapitulatif Administration Le système de gestion de contenu
v7.1 SP2 Guide des Nouveautés
v7.1 SP2 Guide des Nouveautés Copyright 2012 Sage Technologies Limited, éditeur de ce produit. Tous droits réservés. Il est interdit de copier, photocopier, reproduire, traduire, copier sur microfilm,
Administration du site (Back Office)
Administration du site (Back Office) A quoi sert une interface d'administration? Une interface d'administration est une composante essentielle de l'infrastructure d'un site internet. Il s'agit d'une interface
Date de diffusion : Rédigé par : Version : Mars 2008 APEM 1.4. Sig-Artisanat : Guide de l'utilisateur 2 / 24
Guide Utilisateur Titre du projet : Sig-Artisanat Type de document : Guide utilisateur Cadre : Constat : Les Chambres de Métiers doivent avoir une vision prospective de l'artisanat sur leur territoire.
1. Qu'est-ce que SQL?... 2. 2. La maintenance des bases de données... 2. 3. Les manipulations des bases de données... 5
1. Qu'est-ce que SQL?... 2 2. La maintenance des bases de données... 2 2.1 La commande CREATE TABLE... 3 2.2 La commande ALTER TABLE... 4 2.3 La commande CREATE INDEX... 4 3. Les manipulations des bases
claroline classroom online
de la plate-forme libre d'apprentissage en ligne Claroline 1.4 Manuel Révision du manuel: 06/2003 Créé le 07/09/2003 12:02 Page 1 Table des matières 1) INTRODUCTION...3 2) AFFICHER LA PAGE DE DEMARRAGE...3
Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation :
Algorithmique et programmation : STRUCTURES DE DONNÉES A. Structure et enregistrement 1) Définition et rôle des structures de données en programmation 1.1) Définition : En informatique, une structure de
Les messages d erreur d'applidis Client
Fiche technique AppliDis Les messages d erreur d'applidis Client Fiche IS00313 Version document : 1.00 Diffusion limitée : Systancia, membres du programme Partenaires AppliDis et clients ou prospects de
IBM SPSS Statistics Version 22. Instructions d'installation sous Windows (licence simultanée)
IBM SPSS Statistics Version 22 Instructions d'installation sous Windows (licence simultanée) Table des matières Instructions d'installation....... 1 Configuration requise........... 1 Installation...............
Interface PC Vivago Ultra. Pro. Guide d'utilisation
Interface PC Vivago Ultra Pro Guide d'utilisation Version 1.03 Configuration de l'interface PC Vivago Ultra Configuration requise Avant d'installer Vivago Ultra sur votre ordinateur assurez-vous que celui-ci
(Fig. 1 :assistant connexion Internet)
MAIL > configuration de OUTLOOK EXPRESS > SOMMAIRE Qu'est ce que Outlook Express? Configuration Installation d'un compte POP Installation d'un compte IMAP Configuration du serveur SMTP En cas de problème
Guide de l utilisateur. Demande d accréditation en ligne
Guide de l utilisateur Demande d accréditation en ligne Table des matières Introduction... 3 Inscription à la liste des organisateurs... 4 Création de votre compte... 5 Ouvrir une session... 6 Visuel...
MANUEL PROGRAMME DE GESTION DU CPL WI-FI
MANUEL PROGRAMME DE GESTION DU CPL WI-FI Le programme de gestion du CPL Wi-Fi sert à régler tous les paramètres de l'adaptateur. En effet, le CPL Wi-Fi possède une interface de configuration. Cette interface
Business Intelligence avec SQL Server 2012
Editions ENI Business Intelligence avec SQL Server 2012 Maîtrisez les concepts et réalisez un système décisionnel Collection Solutions Informatiques Extrait Alimenter l'entrepôt de données avec SSIS Business
ETI/Domo. Français. www.bpt.it. ETI-Domo Config 24810150 FR 10-07-144
ETI/Domo 24810150 www.bpt.it FR Français ETI-Domo Config 24810150 FR 10-07-144 Configuration du PC Avant de procéder à la configuration de tout le système, il est nécessaire de configurer le PC de manière
Comment développer et intégrer un module à PhpMyLab?
Comment développer et intégrer un module à PhpMyLab? La structure du fichier Afin de conserver une homogénéité et une cohérence entre chaque module, une structure commune est utilisée pour chacun des modules
Infrastructure - Capacity planning. Document FAQ. Infrastructure - Capacity planning. Page: 1 / 7 Dernière mise à jour: 16/04/14 16:09
Document FAQ Infrastructure - Capacity planning EXP Page: 1 / 7 Table des matières Détails de la fonctionnalité... 3 I.Généralités... 3 II.Configuration... 3 III.Vue globale des capacités...3 IV.Vue par
Tutorial Ophcrack. I) Ophcrack en API. (ou comment utiliser Ophcrack pour recouvrir un mot de passe sous Windows XP et Windows Vista)
Tutorial Ophcrack (ou comment utiliser Ophcrack pour recouvrir un mot de passe sous Windows XP et Windows Vista) Ophcrack est un utilitaire gratuit permettant de cracker les mots de passe des sessions
Middleware eid v2.6 pour Windows
Manuel d'utilisation Middleware eid v2.6 page 1 de 19 Table des matières Introduction...3 Installation...4 Les éléments du logiciel eid...6 Module pour la zone de notification dans la barre des tâches...7
Manuel d'utilisation de Mémo vocal
Manuel d'utilisation de Mémo vocal Copyright 2002 Palm, Inc. Tous droits réservés. HotSync, le logo Palm et Palm OS sont des marques déposées de Palm, Inc. Le logo HotSync et Palm sont des marques commerciales
Espace numérique de travail collaboratif
Espace numérique de travail collaboratif 1/10 Présentation Agora Project est un espace de travail collaboratif complet et intuitif. Cette application est accessible partout et à tout moment, via un simple
Compte-rendu de projet de Système de gestion de base de données
Compte-rendu de projet de Système de gestion de base de données Création et utilisation d'un index de jointure LAMBERT VELLER Sylvain M1 STIC Université de Bourgogne 2010-2011 Reponsable : Mr Thierry Grison
NON URGENTE TEMPORAIRE DEFINITIVE. OBJET : FONCTIONNEMENT OmniVista 4760 SUR UN RÉSEAU VPN / NAT
COMMUNICATION TECHNIQUE N TC0803 Ed. 01 OmniPCX Enterprise Nb de pages : 10 Date : 03-07-2006 URGENTE NON URGENTE TEMPORAIRE DEFINITIVE OBJET : FONCTIONNEMENT OmniVista 4760 SUR Veuillez trouver ci-après
Mon Compte Epargne Temps (CET) : manuel utilisateur
Mon Compte Epargne Temps (CET) : manuel utilisateur Février 2012 Version : 1.0 Direction Informatique Version : 1.0 Date : Février 2012 Editeur : Rédacteurs : Copyright : Université de Strasbourg Sylvie
Phone Manager Soutien de l'application OCTOBER 2014 DOCUMENT RELEASE 4.1 SOUTIEN DE L'APPLICATION
Phone Manager Soutien de l'application OCTOBER 2014 DOCUMENT RELEASE 4.1 SOUTIEN DE L'APPLICATION Salesforce NOTICE The information contained in this document is believed to be accurate in all respects
Situation présente et devis technique
Situation présente et devis technique Système de gestion des membres actuel Le système de gestion des membres actuel sert principalement à stocker des informations sur les architectes et les stagiaires.
WINDOWS SERVER 2003-R2
WINDOWS SERVER 2003-R2 Nous allons aborder la création d'un serveur de partage de fichiers sous "VMWARE" et "Windows Server 2003-R2". Objectifs : Solution de sauvegarde de fichiers pour la société "STE
CRÉER UNE BASE DE DONNÉES AVEC OPEN OFFICE BASE
CRÉER UNE BASE DE DONNÉES AVEC OPEN OFFICE BASE 2 ème partie : REQUÊTES Sommaire 1. Les REQUÊTES...2 1.1 Créer une requête simple...2 1.1.1 Requête de création de listage ouvrages...2 1.1.2 Procédure de
4D Server et les licences : fonctionnement et environnement
4D Server et les licences : fonctionnement et environnement Introduction ---------------------------------------------------------------------------------------------------------- Cette note technique
Le générateur d'activités
Le générateur d'activités Tutoriel Mise à jour le 09/06/2015 Sommaire A. Mise en route du Générateur d'activité... 2 1. Installation de Page... 2 2. Création des bases du générateur d'activités... 3 3.
NETWORK & SOFTWARE ENGINEERING MANUEL D UTILISATEUR. Logiciel TIJARA. NETWORK AND SOFTWARE ENGINEERING Manuel d'utilisateur "TIJARA" 1
NETWORK & SOFTWARE ENGINEERING MANUEL D UTILISATEUR Logiciel TIJARA Manuel d'utilisateur "TIJARA" 1 SOMMAIRE Introduction Première partie Chapitre 1 : Installation et démarrage Chapitre 2 : Architecture
MEDIAplus elearning. version 6.6
MEDIAplus elearning version 6.6 L'interface d administration MEDIAplus Sommaire 1. L'interface d administration MEDIAplus... 5 2. Principes de l administration MEDIAplus... 8 2.1. Organisations et administrateurs...
REALISER UN SITE INTERNET AVEC IZISPOT SOMMAIRE
REALISER UN SITE INTERNET AVEC IZISPOT Voici un tutoriel pour vous aider à réaliser un petit site internet (4 pages) à l'aide du logiciel gratuit IZISPOT. Dans l'exemple qui suit, il s'agit de mettre en
Documentation Cobian
SOFT-AND-COM Documentation Cobian Installation et Utilisation Jérémy Cadot 04/06/2010 PRESENTATION : Cobian Backup est un programme multi-threads que vous pouvez utiliser pour planifier et sauvegarder
DOCUMENTATION VISUALISATION UNIT
DOCUMENTATION VISUALISATION UNIT Table des matières 1)Documentation Utilisateur CamTrace VU...2 1)Premiers pas:...3 a)le mode Client CamTrace...4 b)le mode VU Standalone...6 2)F.A.Q...9 1)Vérifier la connectivité
Cours: Administration d'une Base de Données
Bases de Données Avancées Module A IUT Lumière, License CE-STAT 2006-2007 Pierre Parrend Cours: Administration d'une Base de Données Table of Contents Principes...1 Structure d'un Base de Données...1 Architecture...1
Manuel d'utilisation d'apimail V3
Manuel d'utilisation d'apimail V3 I Préambule Page 3 II Présentation Page 4 III Mise en route Configuration Page 5 Messagerie Serveur smtp Serveur pop Compte pop Mot de passe Adresse mail Laisser les messages
1. Introduction... 2. 2. Création d'une macro autonome... 2. 3. Exécuter la macro pas à pas... 5. 4. Modifier une macro... 5
1. Introduction... 2 2. Création d'une macro autonome... 2 3. Exécuter la macro pas à pas... 5 4. Modifier une macro... 5 5. Création d'une macro associée à un formulaire... 6 6. Exécuter des actions en
Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère
L'héritage et le polymorphisme en Java Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère En java, toutes les classes sont dérivée de la
Débuter avec OOo Base
Open Office.org Cyril Beaussier Débuter avec OOo Base Version 1.0.7 Novembre 2005 COPYRIGHT ET DROIT DE REPRODUCTION Ce support est libre de droit pour une utilisation dans un cadre privé ou non commercial.
Manuel de l'utilisateur d'intego VirusBarrier Express et VirusBarrier Plus
Manuel de l'utilisateur d'intego VirusBarrier Express et VirusBarrier Plus Bienvenue dans le manuel de l'utilisateur d'intego VirusBarrier Express et VirusBarrier Plus. VirusBarrier Express est un outil
Premiers pas sur e-lyco
Premiers pas sur e-lyco A destination des parents, ce document présente les premiers éléments pour accéder aux services de l'ent e-lyco d'un lycée. Que signifient ENT et e-lyco? ENT = Espace ou Environnement
KeePass - Mise en œuvre et utilisation
www.rakforgeron.fr 08/04/2015 KeePass - Mise en œuvre et utilisation L'usage de mots de passe est nécessaire pour de nombreux accès ou pour la protection de données personnelles. Il convient d'en utiliser
1. Comment accéder à mon panneau de configuration VPS?
FAQ VPS Business Section 1: Installation...2 1. Comment accéder à mon panneau de configuration VPS?...2 2. Comment accéder à mon VPS Windows?...6 3. Comment accéder à mon VPS Linux?...8 Section 2: utilisation...9
2 Grad Info Soir Langage C++ Juin 2007. Projet BANQUE
2 Grad Info Soir Langage C++ Juin 2007 Projet BANQUE 1. Explications L'examen comprend un projet à réaliser à domicile et à documenter : - structure des données, - objets utilisés, - relations de dépendance
DA MOTA Anthony - Comparaison de technologies : PhoneGap VS Cordova
DA MOTA Anthony - Comparaison de technologies : PhoneGap VS Cordova I. Introduction Dans une période où la plasticité peut aider à réduire les coûts de développement de projets comme des applications mobile,
Formation. Module WEB 4.1. Support de cours
Formation Module WEB 4.1 Support de cours Rédacteur Date de rédaction F.CHEA 08/02/2012 Les informations contenues dans ce document pourront faire l'objet de modifications sans préavis Sauf mention contraire,
Manuel d utilisation de la plate-forme de gestion de parc UCOPIA. La mobilité à la hauteur des exigences professionnelles
Manuel d utilisation de la plate-forme de gestion de parc UCOPIA La mobilité à la hauteur des exigences professionnelles 2 Manuel d utilisation de la plate-forme de gestion de parc UCOPIA 1 Table des matières
Créer une base de données
Access Créer une base de données SOMMAIRE Généralités sur les bases de données... 3 Création de la base de données... 4 A) Lancement d'access... 4 B) Enregistrement de la base de données vide... 4 Création
TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile
TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile Dans ce TP, vous apprendrez à définir le type abstrait Pile, à le programmer en Java à l aide d une interface
Guide d'utilisation. OpenOffice Calc. AUTEUR INITIAL : VINCENT MEUNIER Publié sous licence Creative Commons
Guide d'utilisation OpenOffice Calc AUTEUR INITIAL : VINCENT MEUNIER Publié sous licence Creative Commons 1 Table des matières Fiche 1 : Présentation de l'interface...3 Fiche 2 : Créer un nouveau classeur...4
1 - Clients 2 - Devis 3 - Commandes 4 - Livraisons 5 - Factures 6 - Avoirs 7 - Modèles
1 - Clients 2 - Devis 3 - Commandes 4 - Livraisons 5 - Factures 6 - Avoirs 7 - Modèles Page 1/16 1 - Clients Un client est un tiers qui vous passe des commandes, où pour lequel vous faîtes des devis, des
Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP
Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP Au cours de ce TP, vous allez voir comment PHP permet aux utilisateurs, une interaction avec
Mise à jour de version
Mise à jour de version Cegid Business Version 2008 Service d'assistance Téléphonique 0 826 888 488 Sommaire 1. A lire avant installation... 3 2. Installer les nouvelles versions des logiciels... 4 Compte
Maintenance de son PC
AVEC XP et Vista : Quelques règles élémentaires permettent d assurer le bon fonctionnement de son ordinateur. Si vous les suivez vous pourrez déjà éviter un grand nombre de pannes. 1) Mettre à Jour son
1 Résolution de nom... 2 1.1 Introduction à la résolution de noms... 2. 1.2 Le système DNS... 2. 1.3 Les types de requêtes DNS...
Table des matières 1 Résolution de nom... 2 1.1 Introduction à la résolution de noms... 2 1.2 Le système DNS... 2 1.3 Les types de requêtes DNS... 4 1.4 Configuration des clients DNS... 8 1.4.1 Résolution
Portail de demande en ligne (PDL) de la SODIMO - Guide de démarrage
Portail de demande en ligne (PDL) de la SODIMO - Guide de démarrage 1. INTRODUCTION Ce guide présente la manière la plus rapide de débuter sur le Portail de demande en ligne (PDL) de la SODIMO. Avant de
Gérer une comptabilité dans Tiny
1 of 17 17.01.2007 01:46 Gérer une comptabilité dans Tiny Les Partenaires Qu'est-ce qu'un partenaire? Dans Tiny ERP, un partenaire est une entité avec laquelle on peut faire des affaires. Il y a plusieurs
Guide d'installation sous Windows
Guide d'installation sous Windows Le but de ce guide est de faciliter l'installation de Phpcompta sous Windows et vous guidera pas-àpas, étape par étape. L'installation se déroule sous Windows XP SP2 mais
Tutoriel - flux de facturation
1 of 12 17.01.2007 01:41 Tutoriel - flux de facturation Le schéma ci-dessous illustre le flux de facturation classique : Lors de la création d'une facture, elle possède l'état de brouillon, ce qui veut
Mise en service HORUS version HTTP
HTTP 1 / 8 Mise en service HORUS version HTTP Date Indice Nature des modifications Rédaction Nom/visa 03/05/06 A Première rédaction XI Vérification Nom/visa Approbation Nom/visa HTTP 2 / 8 SOMMAIRE 1)
RapidMiner. Data Mining. 1 Introduction. 2 Prise en main. Master Maths Finances 2010/2011. 1.1 Présentation. 1.2 Ressources
Master Maths Finances 2010/2011 Data Mining janvier 2011 RapidMiner 1 Introduction 1.1 Présentation RapidMiner est un logiciel open source et gratuit dédié au data mining. Il contient de nombreux outils
Guide d installation
Free Android Security Guide d installation Marques et copyright Marques commerciales Windows est une marque déposée de Microsoft Corporation aux États-Unis et dans d'autres pays. Tous les autres noms de
Note : Ce tutoriel a été réalisé sur GNU/Linux (Ubuntu) avec un serveur LAMP installé en local.
Tutoriel d'utilisation de Chamilo Chamilo 1.8.6.2-1.8.7 Version Administrateur Note : Ce tutoriel a été réalisé sur GNU/Linux (Ubuntu) avec un serveur LAMP installé en local. Table des matières Le serveur...2
Manuel d'utilisation
Manuel d'utilisation Version 1.0 Le 25/09/2014 par i-médias, service commun informatique et multimédia Pôle Services numériques Pôle Applications & Développements I-médias Manuel d'utilisation de l'application
BTS S.I.O. 2012-2013 PHP OBJET. Module SLAM4. Nom du fichier : PHPRévisionObjetV2.odt Auteur : Pierre Barais
BTS S.I.O. 2012-2013 PHP OBJET Module SLAM4 Nom du fichier : PHPRévisionObjetV2.odt Auteur : Pierre Barais Table des matières 1 But... 3 2 Les bases :... 3 3 Utilisation d'une classe : Instanciation...3
Service client LSC 1
Service client LSC 1 Sommaire SOMMAIRE...2 PREAMBULE...3 PARAMETRAGE LSC...4 1\ ACTIVER LE SERVICE CLIENT...5 Licence LSC...5 Nom de domaine...5 2\ DEFINIR LES MODALITES DE PUBLICATION...6 3\ LES MODELES
Guide d'utilisation de l'instrument électronique en ligne d'auto-évaluation du CAF
Guide de l'utilisateur_v12.doc Novembre 2010 Guide d'utilisation de l'instrument électronique en ligne d'auto-évaluation du CAF Introduction L'instrument électronique en ligne d'auto-évaluation du CAF,
Procédures Stockées WAVESOFT... 12 ws_sp_getidtable... 12. Exemple :... 12. ws_sp_getnextsouche... 12. Exemple :... 12
Table des matières Les Triggers... 2 Syntaxe... 2 Explications... 2 Les évènements déclencheurs des triggers... 3 Les modes de comportements des triggers... 4 Les pseudo tables... 5 Exemple... 6 Les procédures
Aide à l'utilisation de l'application 'base de données communales' intégrée à la plate-forme PEGASE. Interface 'Front-Office'
DREAL POITOU CHARENTE Aide à l'utilisation de l'application 'base de données communales' intégrée à la plate-forme PEGASE Interface 'Front-Office' Base de données communales Poitou- Charentes Alkante 2013
Programmation Objet - Cours II
Programmation Objet - Cours II - Exercices - Page 1 Programmation Objet - Cours II Exercices Auteur : E.Thirion - Dernière mise à jour : 05/07/2015 Les exercices suivants sont en majorité des projets à
Gestion des utilisateurs : Active Directory
Gestion des utilisateurs : Active Directory 1. Installation J'ai réalisé ce compte-rendu avec une machine tournant sous Windows 2008 server, cependant, les manipulations et les options restent plus ou
[Serveur de déploiement FOG]
2012 Yann VANDENBERGHE TAI @ AFPA Lomme [Serveur de déploiement FOG] Procédure d'installation d'un serveur FOG pour la création et le déploiement d'images disques. 1.1 Introduction : Malgré le développement
Enregistrer votre dispositif
Guide de Commencement Rapide: NotifyLink pour Symbian Series 60, 3 rd Edition Votre appareil aura besoin d un des suivants: Connection cellulaire capable de soutenir la transmission des données via votre
