Surveillance de Scripts LUA et de réception d EVENT. avec LoriotPro Extended & Broadcast Edition



Documents pareils
Instructions pour mettre à jour un HFFv2 v1.x.yy v2.0.00

White Paper - Livre Blanc

Manuel de l Administrateur

Thierry Déléris. BMC Mainview Data Server Synthèse & Mise en œuvre


WEB page builder and server for SCADA applications usable from a WEB navigator

3615 SELFIE. HOW-TO / GUIDE D'UTILISATION

NOTICE INSTALLATION. ARCHANGE Simplex Office N&B/Couleur KONICA MINOLTA BUSINESS SOLUTIONS FRANCE

Configurer la supervision pour une base MS SQL Server Viadéis Services

Tutoriel de formation SurveyMonkey

Installation et compilation de gnurbs sous Windows

Instructions Mozilla Thunderbird Page 1

Client windows Nagios Event Log

LoriotPro V5.00 «Extended Edition» System Expert et Scripts

Surveillance du réseau et de gestion Introduction à SNMP

TABLE DES MATIERES A OBJET PROCEDURE DE CONNEXION

Guide d'installation rapide TFM-560X YO.13

Guide de démarrage Intellipool Network Monitor

NOTICE INSTALLATION. ARCHANGE WebDAV Office N&B/Couleur KONICA MINOLTA BUSINESS SOLUTIONS FRANCE

Supervision et infrastructure - Accès aux applications JAVA. Document FAQ. Page: 1 / 9 Dernière mise à jour: 15/04/12 16:14

MANUEL DES CAMERAS IP V2.0

Practice Direction. Class Proceedings

Once the installation is complete, you can delete the temporary Zip files..

Logitech Tablet Keyboard for Windows 8, Windows RT and Android 3.0+ Setup Guide Guide d installation

Vanilla : Virtual Box

RULE 5 - SERVICE OF DOCUMENTS RÈGLE 5 SIGNIFICATION DE DOCUMENTS. Rule 5 / Règle 5

Sendmail milter/greylisting

Procédure d installation de la Sauvegarde de Windows Server

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée VMWare ESX Server 3, 3.5

MANUEL DES CAMERAS IP

Ed 03/95 PAQ 1530 NON URGENTE (INFO PRODUIT) TEMPORAIRE DEFINITIVE

Installer un domaine DNS

Planifier les rapports d

English Q&A #1 Braille Services Requirement PPTC Q1. Would you like our proposal to be shipped or do you prefer an electronic submission?

Contents Windows

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée VMWare ESX Server

XtremWeb-HEP Interconnecting jobs over DG. Virtualization over DG. Oleg Lodygensky Laboratoire de l Accélérateur Linéaire

IMS INTERNET /Paramétrage de l offre / Gateway Cisco IMS INTERNET. Paramétrage de l offre Gateway CISCO. Référence Edition Date de Diffusion Page

Exemple PLS avec SAS

DOCUMENTATION - FRANCAIS... 2

LOGICIEL D'ADMINISTRATION POUR E4000 & G4000 MANAGEMENT SOFTWARE FOR E4000 & G4000

AIDE FINANCIÈRE POUR ATHLÈTES FINANCIAL ASSISTANCE FOR ATHLETES

Exercices sur SQL server 2000

France SMS+ MT Premium Description

Compléter le formulaire «Demande de participation» et l envoyer aux bureaux de SGC* à l adresse suivante :

HAUTE DISPONIBILITÉ DE MACHINE VIRTUELLE AVEC HYPER-V 2012 R2 PARTIE CONFIGURATION OPENVPN SUR PFSENSE

Internet Group Management Protocol (IGMP) Multicast Listener Discovery ( MLD ) RFC 2710 (MLD version 1) RFC 3810 (MLD version 2)

VTP. LAN Switching and Wireless Chapitre 4

Cheque Holding Policy Disclosure (Banks) Regulations. Règlement sur la communication de la politique de retenue de chèques (banques) CONSOLIDATION

Thank you for choosing the Mobile Broadband USB Stick. With your USB Stick, you can access a wireless network at high speed.

esms Desktop Guide de l utilisateur

LOI SUR LA RECONNAISSANCE DE L'ADOPTION SELON LES COUTUMES AUTOCHTONES ABORIGINAL CUSTOM ADOPTION RECOGNITION ACT

Mode d emploi. PJ Network Manager pour Windows. Logiciel SNMP Manager

Notice Technique / Technical Manual

Micro-ordinateurs, informations, idées, trucs et astuces utiliser le Bureau à distance

Administration du WG302 en SSH par Magicsam

Module 10 : Supplément 2

Quick Start Guide This guide is intended to get you started with Rational ClearCase or Rational ClearCase MultiSite.

How to Login to Career Page

CLIM/GTP/27/8 ANNEX III/ANNEXE III. Category 1 New indications/ 1 re catégorie Nouvelles indications

SAP SNC Portal. User Guide for Suppliers. M1, M2b Modules - Edition 3. Direction des Achats/Ph.Longuet Date: 4/11/11

Acronymes et abréviations. Acronymes / Abbréviations. Signification

Formulaire de candidature pour les bourses de mobilité internationale niveau Master/ Application Form for International Master Scholarship Programme

Application Form/ Formulaire de demande

Les Triggers SQL. Didier DONSEZ. Université de Valenciennes Institut des Sciences et Techniques de Valenciennes

Présentation des composants WhatsUp Companion & WhatsUp Companion Extended. Version Mars Orsenna

WDpStats Procédure d installation

GAME CONTENTS CONTENU DU JEU OBJECT OF THE GAME BUT DU JEU

Direction des Systèmes d'information

Extended Communication Server release 4: Service pack 2

Contrôle d'accès Access control. Notice technique / Technical Manual

WiFi Security Camera Quick Start Guide. Guide de départ rapide Caméra de surveillance Wi-Fi (P5)

DOCUMENTATION MODULE BLOCKCATEGORIESCUSTOM Module crée par Prestacrea - Version : 2.0

Nouveautés printemps 2013

Outils d'analyse de la sécurité des réseaux. HADJALI Anis VESA Vlad

Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS

Pharmed. gestion de pharmacie hospitalière. Installation / déploiement

Form of Deeds Relating to Certain Successions of Cree and Naskapi Beneficiaries Regulations

Ocs Inventory et GLPI s appuie sur un serveur LAMP. Je vais donc commencer par installer les paquets nécessaires.

ONTARIO Court File Number. Form 17E: Trial Management Conference Brief. Date of trial management conference. Name of party filing this brief

Extended communication server 4.1 : VoIP SIP service- Administration

Guide d'installation et de configuration de Pervasive.SQL 7 dans un environnement réseau Microsoft Windows NT

Logiciel : GLPI Version : SYNCRHONISATION DE GLPI AVEC ACTIVE DIRECTORY. Auteur : Claude SANTERO Config. : Windows 2003.

Note d Application. Bascule d ALOHA via injection de route en BGP

Open Source Job Scheduler

MANUEL D UTILISATION PRO-FACE

Guide Installation Serveur Extensive Testing

D-ViewCam V3.0 Video Management System

EmonCMS sur EWATTCH Cloud

SAP SNC (Supply Network Collaboration) Web Package. (Français / English) language. Edition 2013 Mars

IDENTITÉ DE L ÉTUDIANT / APPLICANT INFORMATION

calls.paris-neuroscience.fr Tutoriel pour Candidatures en ligne *** Online Applications Tutorial

Sécurité des applications web. Daniel Boteanu

Academic Project. B2- Web Development. Resit Project. Version 1.0 Last update: 24/05/2013 Use: Students Author: Samuel CUELLA

Thank you for choosing the Mobile Broadband USB Stick. With your USB Stick, you can access a wireless network at high speed.

Support Orders and Support Provisions (Banks and Authorized Foreign Banks) Regulations

Utiliser une WebCam. Micro-ordinateurs, informations, idées, trucs et astuces

VoD ( Video on Demand ) avec VLC

Ships Elevator Regulations. Règlement sur les ascenseurs de navires CODIFICATION CONSOLIDATION. C.R.C., c C.R.C., ch. 1482

SAP SNC Portal. User Guide for Suppliers. M1, M2b Modules - Edition 1. Direction des Achats/Ph.Longuet Date: 5/08/10

Transcription:

Surveillance de Scripts LUA et de réception d EVENT avec LoriotPro Extended & Broadcast Edition L objectif de ce document est de présenter une solution de surveillance de processus LUA au sein de la solution LoriotPro. Les scripts présentés peuvent aussi être utilisé comme outil de «KeepAlive» pour vérifier la réception régulière d EVENT dans des intervalles de temps contrôlés. Cela peut aussi s appliquer au Trap SNMP ou au syslog après conversion en EVENT. Cette option apporte une réponse à la surveillance d équipements SNMP capables d émettre des TRAP de KEEP ALIVE par exemple. Par ailleurs le cas de figure est assez courant ou des processus de surveillance basés sur des scripts LUA doivent remplir à intervalle régulier des fonctions de surveillance. Ces scripts peuvent être non opérationnels pour des raisons techniques, défaut de programmation ou bug. Il est donc utile de pouvoir contrôler leur bonne exécution régulièrement. Le principe consiste donc à faire surveiller ceux-ci par un troisième processus basé sur un script LUA qui s exécutera localement sur le LoriotPro ou sur un LoriotPro distant pour avoir une meilleure garantie de contrôle. Pour démontrer le concept un jeu de quatre scripts a été créé. Script WhoMonitor.lua (Script de surveillance de scripts) ScriptToMonitor30000.lua (Script de traitement, génère l Event 30000 avant de terminer) ScriptToMonitor30001.lua (Script de traitement, génère l Event 30001 avant de terminer) ScriptToMonitor30002.lua (Script de traitement, génère l Event 30002 avant de terminer) Télécharger ces scripts Les exemples ci-dessus sont écrits pour fonctionner sur un seul LoriotPro ou des LoriotPro distincts.

Le script de monitoring des autres scripts est basé sur l algorithme suivant : En début de script une table est initialisée avec les numéros des événements (EVENT) associés aux scripts à surveiller et les seuils de temps maximums tolérable entre chaque exécution. Ensuite pour chacun des événements de la table on collecte les informations courantes de l événement. Un paramètre plus particulier nous intéresse dans cette table, c est la date de réception du dernier événement reçu (variable Array.last). Nous collectons ensuite la variable de temps (horloge du système) pour faire une différence entre ces deux variables. Cette valeur correspond au temps en seconde écoulé depuis la dernière fois que le script s est terminé. Une comparaison est ensuite faite avec leur seuil tolérable défini aussi dans la table des EVENT initialisé en debut de script. En fonction du résultat de cette comparaison un événement est envoyé à LoritoPro pour informer ou alerter l administrateur d un défaut. L événement 50000 informe d une anomalie (En rouge) tandis que le 5001 est une notification de bon résultat (En vert dans les log)

Start at interval Create Table of event to monitor Event to test? No Exit Script Collecte Event counters Get the current time Make difference between current time and last event received time = Delta Time Compare Delta Time with Threshold Greater Lower Send Event INFO Script running Send Event ALARM Script not running Exemple de fonctionnement permanent On constate que les scripts «ScriptToMonitor30001» et «ScriptToMonitor30002» fonctionnent bien par la présence des EVENT 30001 et 30002 par contre l absence de 30000 est détecté par le monitor de script «ScriptWhoMonitor.lua» qui génère alors un EVENT 50000 en rouge.

Mise œuvre La mise en œuvre consiste à mettre en place le script de surveillance «ScriptWhoMonitor.lua» et le faire s exécuter à intervalle régulier. Il faut copier le script «ScriptWhoMonitor.lua» dans le répertoire /config/script de LoriotPro Il faut ensuite modifier la table ScriptList des événements en fonction des événements générés par les scripts à surveiller. Exemple de table dans notre cas : ScriptList = event_number = 30000, -- The event number that uniqueley identify this message MaxInterval = 60 -- Interval de temp maximum en secondes supporté pour la réception de cet event }, event_number = 30001, MaxInterval = 120 -- 2 mn }, event_number = 30002, MaxInterval = 180 -- 3 mn } } -- Un tableau contenant la liste des events surveillées ATTENTION à bien respecter la présence des virgules. Avant d utiliser un EVENT il faut impérativement le déclarer. Cela peut se faire en sélectionnant à partir du menu de LoriotPro l option : Configure -> Register New Event Number

Le «ScriptWhoMonitor.lua» peut être placé dans un plugin «ReportSCheduler» pour être exécuté à intervalle régulier. ATTENTION il faut que la fréquence d exécution soit inférieure au seuil maximum choisi (MaxInterval ) pour l envoi des événements. Exemple avec le plugin Report Scheduler configuré à 1 mn. Pour ajouter un plugin Report SCheduler choisir un host de l annuaire puis par click droit sélectionner «Insert Task (plugin)» puis sélectionner «ReportSCheduler». Pour insérer un script LUA dans «ReportSCheduler»., il faut naviguer vers le répertoire des scripts LUA dans /bin/config/script et sélectionner le type.lua.

Exemple de configuration de test avec les quatre «ReportSCheduler» exécutant les quatre scripts à intervalle programmé.

Il serait idéal de fonctionner sur deux LoriotPro différent, les scripts de traitement sur une premier système et le script de monitoring des EVENT sur une deuxième système. Dans ce cas il faut modifier dans les scripts l adresse IP destination utilisé dans notre exemple dans les scripts de Traitement «ScriptToMonitor3000x» Script de monitoring type KeepALive «Script WhoMonitor.lua» -- LoriotPro V6.00 -- To run correctly this file is located to bin/config/script -- Input values -- lp_index index for this script ".1" -- lp_oid SNMP OID for this script "ifnumber" -- lp_host default ip address for this script "127.0.0.1" -- Output Values lp_value = 0; lp_buffer ="error"; -- dofile(lp.getpath().."/config/script/loriotinit.lua"); -- to support define -- lp.initluapath(); -- to support luaforwindows librairies and hook print function CR="\n" ScriptList = event_number = 30000, -- The event number that uniqueley identify this message MaxInterval = 60 -- Interval de temp maximum en secondes supporté pour la réception de cet event }, event_number = 30001, MaxInterval = 120 -- 2 mn }, event_number = 30002, MaxInterval = 180 -- 3 mn } } -- Un tableau contenant la liste des events surveillées

for k,v in ipairs(scriptlist) do event_number = ScriptList[k].event_number MaxInterval = ScriptList[k].MaxInterval lp.trace("the event Number: "..event_number..cr) OkNok = lp.geteventinformation(event_number,"array") if OkNok then lp.trace("the event description: "..Array.description..CR) -- The event description lp.trace("the timestamp of the last event received: "..Array.last..CR) -- The timestamp of the last event received lp.trace("the timestamp of the first event received: "..Array.first..CR) -- The timestamp of the first event received lp.trace("the timestamp of the first event received since the last global acknowledgment: "..Array.first_since..CR) -- The timestamp of the first event received since the last global acknowledgment. lp.trace("the total number of events received: "..Array.number_total..CR) -- The total number of events received lp.trace("the number of events acknowledged: "..Array.number_ack..CR) -- The number of events acknowledged lp.trace("the number of events cleared: "..Array.number_delete..CR) -- The number of events cleared lp.trace("the number of events that was automatically cleared when the listbox is full: "..Array.number_auto_delete..CR) -- The number of events that was automatically cleared when the listbox is full lp.trace("the number of events received since a global acknowledgment: "..Array.number_since_clear..CR) -- The number of events received since a global acknowledgment. lp.trace("the number of event not display in the workspace event viewer: "..Array.number_not_displayed..CR) -- The number of event not display in the workspace event viewer. lp.trace("the total number of events displayed in the workspace event viewer: "..Array.number_displayed..CR) -- The total number of events displayed in the workspace event viewer. lp.trace("the maximum number of event to display in the event viewer listbox: "..Array.max_display..CR) -- The maximum number of event to displkay in the event viwer listbox (-1 equal no limit) lp.trace(array.number_between_action..cr) -- Reserved lp.trace("state of the filter: "..Array.disable..CR) -- State of the filter 1 - The filter is enable (actions also)0 The filter is disable else lp.trace("error in lp.geteventinformation for event: "..event_number..cr) lp.trace("event probably not defined in LoriotPro"..CR) end CurrentTime = os.time() lp.trace("the current timestamp "..CurrentTime..CR) lp.trace("the timestamp of the last event received: "..Array.last..CR) ElapsedTime = os.difftime(currenttime, Array.last) lp.trace("elapsed time since last event: "..ElapsedTime..CR) if ElapsedTime > MaxInterval then -- If no event received during this interval of time ipdest = "127.0.0.1" -- The ip adresse of the LoriotPro where to send the event port = 5001 -- The server port of the LoriotPro (by default alway 5001) eventnumber = 50000 -- The event number that uniqueley identify this message level = 4 -- The severity of the event, 2 is green, 4 is red ipref = "127.0.0.1" -- the IP adresse of the host that is concerned by this event ipmask = "255.255.255.255" -- the mask that select the useful bits of the previous address buffer = "ALARM: Monitored Script is not running - for event number: "..event_number.." Max Interval: "..MaxInterval.." s - current interval: "..ElapsedTime-- the event message text lp.sendexternevent(ipdest,port,eventnumber,level,ipref,ipmask,buffer) else ipdest = "127.0.0.1"-- The ip adresse of the LoriotPro where to send the event port = 5001 -- The server port of the LoriotPro (by default alway 5001) eventnumber = 50001 -- The event number that uniqueley identify this message level = 2 -- The severity of the event, 2 is green, 4 is red ipref = "127.0.0.1"-- the IP adresse of the host that is concerned by this event ipmask = "255.255.255.255"-- the mask that select the useful bits of the previous address buffer = "INFO: Script source of event is running- for event number: "..event_number.." Max Interval: "..MaxInterval.." s - current interval: "..ElapsedTime-- the event message text end lp.sendexternevent(ipdest,port,eventnumber,level,ipref,ipmask,buffer) lp.trace("-------------------------------------------------------"..cr) end Ce script nécessite des modifications en fonction des numéros d événement choisis sur les scripts surveillés. Les valeurs doivent être saisies dans la table en début «ScriptList»

Script de traitement dans notre exemple -- This si the script that should be Monitored -- Ceci est le script qui doit être surveillé --Le code du script (pour l'exemple, il ne fait rien sauf attendre 1 minute avant de quitter --The script code, it deos nothing for this exemple except waiting n seconde delai= 10 --en secondes for i=1,delai do lp.trace(i) lp.sleep(1000) lp.trace("-") end --En fin de script on envoi un Event --We send an event at the end ipdest = "127.0.0.1" -- The ip adresse of the LoriotPro where to send the event port = 5001 -- The server port of the LoriotPro (by default alway 5001) eventnumber = 30002 -- The event number that uniqueley identify this message level = 2 -- The severity of the event, 2 is green, 4 is red ipref = "127.0.0.1" -- the IP adresse of the host that is concerned by this event ipmask = "255.255.255.255" -- the mask that select the useful bits of the previous address buffer = "Script "..eventnumber.." to monitor, executed succesfully" -- the event message text lp.sendexternevent(ipdest,port,eventnumber,level,ipref,ipmask,buffer) En fin de script on trouve un exemple de code à insérer dans les scripts LUA à surveiller. L adresse «ipdest» doit être modifiée en fonction du LoriotPro de réception des EVENT. Si c est en local conserver l adresse loopback. Chaque script à surveiller doit générer une événement EVENT avec un numéro distinct (Variable eventnumber). Ipref et ipmask sont facultatif et ne change pas le fonctionnement de l ensemble. Nous terminons ainsi notre How To de surveillance de Scripts LUA et de réception d EVENT au sein de LoriotPro. Un exemple très utile pour vérifier que des événements réguliers ont bien lieu dans les contraintes attendues. Bon courage pour votre intégration et n hésitez pas ou nous faire part de vos remarques et améliorations, merci. Auteur : F.Brisson Société LUTEUS