La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Manager/Agent: architetture software

Presentazioni simili


Presentazione sul tema: "Manager/Agent: architetture software"— Transcript della presentazione:

1 Manager/Agent: architetture software
Gestione di Reti Manager/Agent: architetture software Gestione di Reti Philippe Macaire

2 Obiettivi Dettagliare l’architettura software tipica di un Agent e di un Manager Esempio: studio dell’architettura di OpenNMS Gestione di Reti Philippe Macaire

3 Agent: requisiti funzionali
realizzazione protocollo SNMP (engine) definizione interfaccia di gestione (MIB) mapping tra MIB e risorse gestite (e.g. accesso alle risorse, adattamento di protocollo -- proxy) persistenza di alcuni dati (se serve) controllo sugli accessi (ACL) controllo processo (start, stop, restart, test, reload) logging Gestione di Reti Philippe Macaire

4 Agent: implementazione MIB
Problematica principale nella realizzazione di un Agent La soluzione più pregiata è quella del compilatore di MIB (MIB Compiler): il punto di partenza è la definizione in ASN.1 della struttura dell’informazione gestita la compilazione può produrre dei sorgenti (in C, in C++, in Java) da completare poi compilare per ottenere un oggetto eseguibile la compilazione può anche produrre altre informazioni utili, come una documentazione HTML della MIB, dei test script per testare l’agent, un simulatore di agent per testare il manager, ecc. Gestione di Reti Philippe Macaire

5 Agent: compilazione MIB
Problema della generazione del codice: va specificato il modo in cui si interagisce con le risorse, quindi intervenire nei sorgenti prodotti dalla compilazione dell’ASN.1 Una buona soluzione è offerta della tecnologia OO: produrre delle classi astratte che vengono estese per fornire la funzionalità  un file viene generato, per l’altro viene opzionalmente prodotto un template che viene completato Tutta la logica SNMP (parsing messaggi, interpretazione operazioni e OID) rimane all’interno della libreria di engine Gestione di Reti Philippe Macaire

6 Agent: esempio Java ASN.1 Java Questi si chiamano Stub
public abstract class SystemGroup { public Object invoke(OID o) { ... } public abstract long getSysUpTime(); } sysUpTime OBJECT-TYPE SYNTAX TimeTicks ACCESS read-only STATUS mandatory ::= { system 3 } Compilatore Java public class SystemGroupImpl extends SystemGroup { private long upTime_; public void init() upTime_ = time(NULL); // ... } public long getSysUpTime() return upTime_; Questi si chiamano Stub Gestione di Reti Philippe Macaire

7 Agent: architettura Resource Manager Persistence Manager Helper
facilities (logging, process control) Skeleton Stub Skeleton Stub Skeleton Stub Skeleton Stub Method Handler SNMP Engine Message encoder/decoder PDU dispatcher SNMP Library Messaggi SNMP Gestione di Reti Philippe Macaire

8 Agent monolitico Singolo processo che contiene l’engine SNMP e la strumentazione (implementazione degli stub) I moduli di MIB supportati sono definiti al momento della compilazione Può essere molto efficiente, in particolare perché l’accesso alla strumentazione si fa per chiamata interna al processo (poi tutto dipende dalla qualità della strumentazione) Possibilità di implementare a livello di engine politiche di ottimizzazione, parallelizzazione e caching Gestione di Reti Philippe Macaire

9 Estensible Agents Spingendo ancora di più l’architettura è possibile separare la “macchina” SNMP dalla strumentazione dei moduli di MIB implementati La macchina SNMP viene chiamata Master Agent I moduli di MIB strumentati vengono chiamati Subagents Master e subagent comunicano attraverso un protocollo ad hoc Diventa possibile intervenire sui moduli di MIB supportati in maniera separata, nonché aggiungere/togliere moduli a runtime E’ del tutto trasparente alle applicazioni di gestione Gestione di Reti Philippe Macaire

10 AgentX La RFC 2257 definisce il protocollo AgentX per la realizzazione di agent estendibili Il Master Agent possono essere processi separati e comunicare via IPC (e.g. TCP su porta 705, ma anche Unix-domain sockets, ecc.) Subagent AgentX Master Agent Manager SNMP Entity AgentX Dispatcher Subagent Subagent Gestione di Reti Philippe Macaire

11 Protocollo AgentX (1) Primitive di amministrazione per la registrazione del Subagent Master Subagent Response Open Apertura sessione Response IndexAllocate Allocazione indici Registrazione MIB (singole istanze o range di OID) Response Register Response AddAgentCaps Aggiunta capabilities Gestione di Reti Philippe Macaire

12 Protocollo AgentX (2) Primitive per il funzionamento di SNMP: data retrieval Master Subagent Get Il protocollo AgentX mappa il protocollo SNMP. Una singola PDU SNMP può coinvolgere più subagent. Response GetNext Response GetBulk Response Notify Trap Gestione di Reti Philippe Macaire

13 Protocollo AgentX (3) Primitive per il funzionamento di SNMP: operazione di set Master Subagent TestSet Il protocollo AgentX è più complesso per la gestione della SetRequest, per poter gestire l’atomicità dell’operazione (o ha successo, o fallisce in toto) Response CommitSet Response UndoSet Response CleaupSet Response Gestione di Reti Philippe Macaire

14 Protocollo AgentX (4) Primitive di amministrazione per la de-registrazione del Subagent Master Subagent Response RemoveAgentCaps Rimozione Capabilities Response Unregister De-registrazione MIB Response IndexDeallocate De-allocazione indici Response Close Chiusura sessione Gestione di Reti Philippe Macaire

15 NMS: contesto Help Desk Reporting Assurance Network Network Repair
reclamo Help Desk Trouble ticket Reporting Assurance Inventory Event handling Device polling Data collection Device config. Topology discovery Network Network Repair Gestione di Reti Philippe Macaire

16 NMS: requisiti funzionali
interface with trouble-ticketing system performance monitoring user interface (GUI, Web) workflow management reporting administration logging network discovery network inventory network topology browsing network monitoring ricezione/correlazione trap polling periodico data collection alarm tracking fault root cause analysis fault resolution Gestione di Reti Philippe Macaire

17 NMS: architettura (1) Un’architettura tipica consiste nella separazione di tre livelli fondamentali: persistenza dei dati (database -- RDBMS) logica di gestione (a volte anche chiamata business logic) interfaccia con il mondo esterno (utenti, sistemi, apparati) Idealmente questi aspetti sono ortogonali, in quanto possono evolvere indipendentemente Vengono rappresentati a strati logici chiamati tiers: persistence tier (back-end) business logic tier front tier (presentation, interfaces) Gestione di Reti Philippe Macaire

18 NMS: architettura (2) RDBMS Gestione di Reti Philippe Macaire
Monitoring, administration, control Management logic To/from managed devices, and/or distributed agents Discovery management Polling management Users and roles management Persistent entities and relationships, collected data, assets and inventory, configuration info., provisioning info., administrative info., etc. Configuration and provisioning Event management Inventory/assets management Client to remote agents Data collector Workflow management User interfaces GUI Reporting To/from NMS users Web UI Events or tickets escalation logic RDBMS Data consolidation and analysis To/from external services External interfaces Other domain-specific business logic Notifications management APIs and extensions Installation-specific custom logic Gestione di Reti Philippe Macaire

19 Il modello dati Il database contiene delle strutture dati (tabelle) che devono poter catturare realtà molto diverse: apparati con funzioni e caratteristiche diverse linee e collegamenti entità fisiche e logiche Per poter gestire una realtà eterogenea è necessario avere un modello generico (ma non troppo), in grado di rappresentare tutte le entità da gestire Un modello non è mai congelato, e può evolvere o essere esteso continuamente Gestione di Reti Philippe Macaire

20 Qualità architetturali richieste
Estendibilità (possibilità di aggiungere funzionalità) Flessibilità (possibilità di estendere il dominio gestito) Robustezza (capacità a resistere agli imprevisti) Scalabilità (capacità a reggere l’aumento del numero di oggetti da gestire e il carico) Gestione di Reti Philippe Macaire

21 Soluzione OpenNMS Open Source -- free (http://www.opennms.org)
Nato nel 1999 A primavera del 2002, versione 1.0 Presto uscirà la versione 1.2 Orientato non solo alle risorse di rete, ma anche ai servizi di rete (DNS, DHCP, pagine web, accesso database) IP-centric Supporto multi-piattaforma (Java) Gestione di Reti Philippe Macaire

22 Monitoraggio dei servizi
Open Socket to port 25 Þ Ü Receive "220" banner Send "HELO" Þ Ü Receive "250 pleased to meet you" Send "QUIT" and Exit Gracefully Þ Protocolli supportati: FTP, HTTP, SMTP, DNS, ICMP, TCP, SNMP... Gestione di Reti Philippe Macaire

23 Architettura OpenNMS (1)
Monitoring, administration, control Management logic discovery pollerd capsd collectd eventd actiond trapd dhcpd User interfaces rtcd PostgreSQL RDBMS Perl GUI Reporting threshd JSP Web UI outaged External interfaces notifd APIs and plugins Servlet-based application logic Gestione di Reti Philippe Macaire

24 Architettura OpenNMS (2)
Tecnologie usate: RDBMS: PostgreSQL (open source) JSP/Servlet: Apache Jakarta Tomcat (disponibili anche Perl-script) Scritto in Java, processi concorrenti JMS (Java Message Service) con JBossMQ Alcune utilities scritte in Unix shell e Perl Daemons: processi concorrenti per i task di gestione (monitoring, control, data collections) File di configurazione in XML Estendibile tramite plug-in generazione reports in PDF con SVG e XSLT Gestione di Reti Philippe Macaire

25 Architettura OpenNMS (3)
Distributed poller Distributed poller Distributed poller Network Network Network Gestione di Reti Philippe Macaire

26 Demoni OpenNMS discovery: discovery continuo dei nuovi nodi
capsd: capability check sui nodi (verifica sulle porte conosciute) pollerd: polling sui nodi per determinare lo stato dei nodi trapd: gestione trap SNMP threshd: monitoraggio nodi e servizi basati sul raggiungimento di soglie collectd: data collection daemon eventd: salvataggio nel DB gli eventi generati dagli altri demoni outaged: gestione della perdità di raggiungibilità dei nodi e servizi actiond: workflow; esecuzione di attività automatiche su eventi notifd: gestione di notifiche verso gli utenti (e.g. via ) Gestione di Reti Philippe Macaire

27 Estendibilità OpenNMS
E’ possibile estendere OpenNMS tramite plug-in Solitamente un plug-in è una classe Java che implementa una interfaccia ben definita per fornire una funzionalità nuova Il nome della classe viene scritto in un file di configurazione, con i parametri associati al plug-in Il sistema carica dinamicamente la classe Java (Class.forName(…)) ed è in grado di attivarla/chiamarla su richiesta Gestione di Reti Philippe Macaire

28 Esempio di plug-in public class MyPlugin
implements org.opennms.netmgt.capsd.Plugin { public String getProtocolName() { return “SMTP”; } public boolean isProtocolSupported(InetAddress address) { try { // open socket on port 25 // … return true; } catch (Exception e) { return false; } Gestione di Reti Philippe Macaire

29 Limitazioni OpenNMS Java non supporta ICMP (ping), quindi la misura richiede l’attivazione di un programma esterno  tempi misurati troppo elevati Mancano alcuni tool amministrativi (configurazione utenti, sistema) grafici Non c’è una rappresentazione grafica delle reti e degli apparati Impossibilità di fare report sull’aggregazione di dati raccolti da più NMS Ancora alcuni bachi, non critici Gestione di Reti Philippe Macaire

30 OpenNMS Screenshot (1) Gestione di Reti Philippe Macaire

31 OpenNMS Screenshot (2) Gestione di Reti Philippe Macaire

32 OpenNMS Screenshot (3) Gestione di Reti Philippe Macaire

33 OpenNMS Screenshot (4) Gestione di Reti Philippe Macaire

34 SNMP: soluzioni free CMU: NET-SNMP: Scotty: OpenNMS: Advent: JMX:
NET-SNMP: Scotty: OpenNMS: Advent: JMX: Gestione di Reti Philippe Macaire

35 SNMP: soluzioni commerciali
HP OpenView Market leader, many third providers from management applications. IBM/Tivoli Derived from HP OpenView, with many improvements and error corrections. Cabletron Spectrum Innovative technology (Inductive Modelling Technique). Sun Solstice Enterprise Manager Follow-up version of the quite successful Sun Net Manager (partially Java based). Computer Associates Unicenter TNG Huge, graphical management console (too complex, made up of several untighten applications). Gestione di Reti Philippe Macaire


Scaricare ppt "Manager/Agent: architetture software"

Presentazioni simili


Annunci Google