Centinel: Streaming Data Handler September 07th, 2015 1 An Overview 2 Centinel: Streaming Data Handler The Centinel project aims at providing a distributed, reliable framework for efficiently collecting, aggregating and sinking streaming data across Persistence DB and stream analyzers (example: Graylog, Elastic search, Spark, Hive etc.). This framework enables SDN applications/services to receive events from multiple streaming sources (example: Syslog, Thrift, Avro, AMQP, Log4j, HTTP/REST etc) and execute actions like network configuration/batch processing/real-time analytics. Core features of Centinel framework are: Stream collector - Collecting, aggregating and sinking streaming data Log Service - Listen log stream events coming from log analyzer Log Service - Enables user to configure rules (example: alerts, diagnostic, health, dashboard etc.) Log Service - Performs event processing/analytics User Interface - Enable set-rule, search, visualize, alert, diagnostic, dashboard etc. Adaptor - Log analyzer plug-in to Graylog and a generic data-model to extend to other stream analyzers (Logstash etc.) REST Services - Northbound APIs for Log Service and Steam collector framework Leverages - TSDR persistence service, data query, purging and elastic search 3 Centinel: High Level Architecture 4 Centinel: Functional Overview Feature Details Streams Mechanism to route messages into categories in real time while they are processed like stream for audit logs( install bundle etc.) Rule configuration includes message, level, source etc. Streams are generated by GrayLog server as per user-defined rules. Event-handler module handles streams from GrayLog server and persist it into Centinel Alerts Log alerts : Alerts get generated based on specific event matching in real-time Alert condition types : Message count condition, Field value condition, Field string value condition Alerts get cleared if specified condition does not persist. Alert check interval time is configurable, default is 60 seconds. Common alert operations like manual acknowledge , delete, filter , sort etc. will be supported Search and Analyze Support for search query language. Time range for search can be specified Visualization includes histogram 5 Centinel: Functional Overview (continued) Feature Details Dashboard Build pre-defined views on data by adding widgets. Domain expert can define search query and save results on dashboard. Search result type : Search result counts, Search result histogram charts, Field value charts,Quick value results Diagnostics Enables , user to specify/configure group of log messages (events or specific conditions ) as single rule. Order of messages and condition for each messages can also be configured. Notification will be persisted on db if log messages are coming out of order/sequence On clicking notification on UI, popup window will open which displays expected order and received order of log messages. User will be able to scroll popup window to see individual received log message. Event processor has intelligence to verify sequencing of messages and generate diagnostic reports Success notification is displayed when all specified conditions are true. Health User specify list of messages with conditions for feature. Feature health will be changed to Critical, Major, Warn on reception of all messages specified 6 Centinel: Project links Project Main page Project Proposal Release plan Project Email archives Email Repository https://wiki.opendaylight.org/view/Centinel:Main https://wiki.opendaylight.org/view/Project_Proposals:Centinel https://wiki.opendaylight.org/view/Centinel:Beryllium_Release_Plan https://lists.opendaylight.org/pipermail/centinel-dev/ [email protected] https://git.opendaylight.org/gerrit/centinel 7 Design Approach 8 Incremental updates on design document Legend DOCSIS: Data Over Cable Service Interface Specification AAA: Authentication, Authorization & Accounting FRM: Forwarding Rules Manager ALTO: Application Layer Traffic Optimization GBP: Group Based Policy AuthN: Authentication IoTDM: Internet of Things Data Broker BGP: Border Gateway Protocol LACP: Link Aggregation Control Protocol CAPWAP: Control and Provisioning of Wireless LISP: Locator/Identifier Separation Protocol Access Points MAPLE: Maple Programming COPS: Common Open Policy Service DIDM: Device Identification and Driver management NIC: Network Intent Proposal OVSDB: Open vSwitch DataBase Protocol DLUX: OpenDaylight User Experience OPFLEX: Extensible Policy Protocol DDoS: Distributed Denial Of Service “LITHIUM” DLUX DDoS Protection OpenStack Neutron PCEP: Path Computation Element Protocol PCMM: Packet Cable MultiMedia Plugin2OC: Plugin To OpenContrail SDNI: SDN Interface (Cross-Controller Federation) SFC: Service Function Chaining SNBI: Secure Network Bootstrapping Infrastructure SNMP: Simple Network Management Protocol SXP: Source-Group Tag eXchange Protocol TSDR: Time Series Data Repository TTP: Table Type Patterns USC: Unified Secure Channel VTN: Virtual Tenant Network Network Applications Orchestrations and Services VTN Coordinator SDNI Wrapper AAA- AuthN Filter NB APIs OpenDaylight APIs (REST) Topology ALTO Inventory FRM DIDM GBP Service SFC SDNI Aggregator L2 Switch VTN Manager Neutron Service NIC DOCSIS Abstraction BGP PCEP Plugin20C TCPMD5 OVSDB LISP Service IoTDM VPN Service Reservation Applications MAPLE Topology Processing Discovery NETCONF OpenFlow Enabled Devices SNBI PCMM/C OPS BGP PCEP Plugin20C Open vSwitches LACP Centinel Persistence MD-SAL / Yangtools OpenFlow USC Manager SNMP OVSDB LISP IoT USC CAPWA P SXP TSDR OPFLEX Plugin Services Controller platform SB interfaces & protocols plugins Additional Virtual & Physical Devices 9 Introduction and Data Models Centinel framework enables SDN applications/services to receive events from multiple streaming sources (example: Syslog, Thrift, Avro, AMQP, Log4j, HTTP/REST etc) and execute actions like network configuration/batch processing/real-time analytics. The entire architecture can be divided into the following modules: User interface Centinel NB APIs Stream Analyzer Service (LAAS and Plugin) Log Service (“Configure Rules” and “Event handler” Modules) Stream Collector Service (Flume and Sqoop based) Leverage persistence database service This design document depicts the subset of functionality (Alert) and the same is subject to follow-up add-on updates. Incremental updates on design document The stream data handler is a framework for collecting, aggregating stream data across Persistent DB and stream analyzer. To achieve the same, the entire model could be broken up into two parts: Rules – Configurable from Northbound Notifications/Events – Output from stream analyzer 10 Rules The Northbound of Centinel will allow operators to set Rules for collecting, aggregating and analysis of streaming data. The following diagram explains the Centinel data model for log services where in the BaseRule is the basic model object that is imported by BaseAlert which is further used by different types of rules. BaseRules model object is the basic data model that will be shared/imported by all the other “Log service” features like Alerts, Streams, Health, Dashboard and any other feature that Centinel framework may want to support in future. 11 Incremental updates on design document Events When a user configures a rule successfully, notifications/Events corresponding to the rule will be supplied by the stream analyzer. The diagram below shows the data model for events (notifications and alert) received from stream analyzer. The base model for notifications/events is “BaseEvent” that contains event type and stream and is further extended by alarm that provides detailed information about the event that has occurred for example the stream which raised the alarm, alert condition, feature or module from which alert was raised etc. 12 Alerts The diagram below shows the class diagram for RPCs and listeners. It defines the following interfaces and java classes for handling the Alerts: LAAS interface and its implementation that provides log analyzer abstraction layer and also publish notifications. Plugin class that provides alarm call backs from the analyzer (grey log server). AlertService interface and its configuration Implementation that defines and implements CRUD on Alert Rules and also write it in md-sal data-store. AlertServiceListener class that listens to any data change in md-sal database. ServiceAggregator and ServiceEventHandler classes that registers for notification and receive notification published by the LAAS as DTO ServicePersistData class that stores the DTO from event handler into the persistent database 13 Incremental updates on design document North Bound APIs Feature Details NotifyAlarm() RPC exposed by LAAS. Plugin use it to notify alarms SetAlertRule() Set rules for alerts RemoveAlertRule() Remove rules for alerts GetAlertRule() Get all alert rules getAlarms() Retrieve recent 300 alarm. 14 Incremental updates on design document Sequence diagram for Rule Handling Following is the sequence diagram for the Rule handling part. It describes the flow for “How is a rule for Alert getting configured”. 15 Incremental updates on design document Sequence diagram for Event Handling Below is the sequence diagram for the Rule handling part. It describes the flow for processing an Event (Alarm in this case) before it get stored in the persistent data store. 16 Incremental updates on design document Thank You 17
© Copyright 2026 Paperzz