# Presentation: 855643

## NGOP

*J.Fromm*
*K.Genser *
*T.Levshina** *
*M.Mengel*
*V.Podstavkov*

## What is NGOP and who is using it?

- What:
- A Distributed Monitoring System that scales to the anticipated requirements for Run II (up to 10,000 nodes during next 5 years)
- Provides active monitoring of software and hardware
- Provides customizable service-level reporting
- Facilitates early error detection and problem prevention
- Provides persistent storage of collected data
- Executes corrective actions and sending notifications
- Offers a framework to create Monitoring Agents for monitoring the overall state of computers and software that are running on them.
- Who:
- System administrators
- Software administrators
- Help Desk and computer center personnel
- Management
- Developers (the most curious ones)
- End users

- NGOP CHEP'03

- 3/27/2003

## NGOP Architecture

- NGOP CHEP'03

- 3/27/2003

## NGOP Central Services

- NGOP Central Server (NCS):
- collects messages from multiple monitoring agents
- provides clients with requested information
- forwards requests to Action Server to perform action
- forwards all events to Archive Service
- Configuration Files Management Service (CFMS)
- provides a central repository for all configuration files.
- performs configuration sanity check
- provides clients with component subscription list
- allows dynamic reconfiguration
- notifies clients about new configuration
- Action Server:
- gets configuration information from the CFMS
- gets action requests from the NCS
- verifies user authorization to request the actions
- verifies that monitored object associated with an action is not marked as “known bad”
- performs actions
- notifies the NCS about success/failure of performed actions

- NGOP CHEP'03

- 3/27/2003

## Configuration Language

- The NGOP configuration language provides a framework for
- creating monitoring tools.
- NGOP configuration language
- written in XML
- allows the creation of hierarchies of monitored objects
- describes rules to determine the status of the object
- defines when and what kind of actions should be performed
- uses expansion mechanism that allows the replication of a particular fragment of an XML document
- uses conditions simplified handling of various fragments of XML that are relevant for a particular “role”

- NGOP CHEP'03

- 3/27/2003

## Monitoring Agents (I)

- Monitoring Agent (MA) is process that monitors  the characteristics of a particular monitored object  and report a status to the NCS.
- MA  can monitor multiple objects.
- MA can perform local actions or request NCS to perform  centralized actions.
- NGOP provides a framework for creation of the MAs**: **either by using** **the** **MA API or the  PlugIns Agent.
- PlugIns Agent:
- runs on the local node
- allows the monitoring of software or hardware components  utilizing existing scripts or executables (plug-ins)
- plug-ins should be able to  measure and print some quantitative characteristics of the monitored objects.
- uses template configuration file

- NGOP CHEP'03

- 3/27/2003

## Monitoring Agents (II)

- Ping Agent:
- runs on the central node, pinging remote nodes
- sends ICMP packets to nodes listed in its configuration file.
- performs route discovery and has an ability to distinguish failure to ping the node from the failure to ping the switch, as well as discovery of simultaneous multiple failures.
- determines the boot time of a node as well as it’s cpu load if rstatd daemon is running on remote node
- Swatch Agent
- runs on the local node
-  watches a log file for lines matching a regular expression
- URL Agent
- runs on the central node
- scans given URL’s for reachability and content

- NGOP CHEP'03

- 3/27/2003

## Status Engine, Rules and Roles

- The Status Engine is the component that collects selected information from the NCS and processes it according to the specific rules.
- Multiple  Status Engines can be running simultaneously  each  configured  in such a way that reflects the interests of  one particular group of people (role).
- Rules define the status of the monitored object
- A Generic Rule sets the monitored object status based on the event received from the NCS.
- A Dependent Rule  sets the monitored element status  based on the event received from the NCS and the status of each dependent monitored object in some group.
- Roles define what subset of the configuration will be seen by a particular group of users and what rules will be used to define the status of the monitored objects
- A full python API  is provided allowing users to retrieve information about a particular monitored object. Web and Java Monitors are using API as well.

- NGOP CHEP'03

- 3/27/2003

## Snapshots (Web GUI)

- NGOP CHEP'03

- 3/27/2003

## Snapshots (Java Gui)

- NGOP CHEP'03

- 3/27/2003

## NGOP Archiver

- Responsible for storing/retrieving messages generated by NGOP.
- Data stored in Oracle database
- Cleanup process runs daily – 14 days of data is available.
- Archive server caches messages from the NGOP Central Server.  A separate process (Database Interface) periodically reads cached messages and puts them in Oracle.
- “Best effort” used to store messages.  Some messages may be dropped.
-  Web based interface

- NGOP CHEP'03

- 3/27/2003

## Snapshots (Archiver)

- NGOP CHEP'03

- 3/27/2003

## WEB Admin tool, Remedy

- Web Admin Tool can mark any monitored object as known to be out of service, so this object will be excluded from determination of the status of the dependent monitored objects
- Schedules maintenance in advance
- Provides multiple maintenance intervals
- Provides “cron” like maintenance intervals
- Shows hierarchy of clusters/nodes, and system/elements
- Provides search for particular host/clusters
- Provides secure access for authorized users
- Keeps change log
- NGOP is interfacing Remedy Help Desk  using Remedy API to generate help desk tickets.

- NGOP CHEP'03

- 3/27/2003

## Snapshots (Web Admin Tool)

- NGOP CHEP'03

- 3/27/2003

## Scope of deployment

- Monitoring a total of 1420 nodes
- Number of Monitored Objects ~ 32,000
- Number of  agents ~ 2,500
- Number of Status Engines 6
- Average rate of events per day ~ 3,000
- Two dedicated computers:
- ngopsrv
- Central Server
- CFMS
- Action Server
- Ping Agents
- URL Agents
- ngopcli
- Status Engines
- Web Admin Tool
- Web Service

- NGOP CHEP'03

- 3/27/2003

## Implementation Details

- Written primarily in Python (some modules in C, NGOP Monitor in Java)
- Compatible with python 2.1
- Java 1.4.0 and higher
- Python code ( ~18,000 lines), C code (~ 350 lines), Java (~ 3,000 lines)
- Uses XML (and partially MATHML) for all configuration files. DTD files are provided with distribution.
- Central configuration ( ~ 8,000 lines)
- Central Agents (URL, Ping) configuration ( ~ 8,000 lines)
- Uses Oracle Database for event logging
- Product availability:
- Monitoring Agents are available on Linux, Irix, Solaris
- “PlugIns” Agent  was ported to Windows
- NGOP Central Services, Web Admin Tool run on Linux
- NGOP Web GUI is available via any Web Browser, NGOP Java Monitor runs on Linux, Windows and Sun

- NGOP CHEP'03

- 3/27/2003

## Who else is using it and how you can use it too?

- Working installation (beta – release) in IN2P3 Lyon (P. Olivero)
- 779 hosts
- 7 roles
- 40 Applications
- 9  Printers queues
- 42 drives-status
- NGOP version v2_1 is in Fermi Tools, could be download via anonymous ftp
- More info:
- _[http://www-isd.fnal.gov/ngop](http://www-isd.fnal.gov/ngop)_
- Documentations
- Tutorials
- Email: ngop-team@fnal.gov

- NGOP CHEP'03

- 3/27/2003

## Summary

- A comprehensive framework was created to fulfill monitoring needs of system administrators, operators and end users.
- A structured framework was provided to collect events, alarms and actions.
- NGOP Service has already proven itself in helping to increase the systems uptime and efficiency.
- NGOP interface to the Fermilab Remedy Help Desk system provides means for possible future complete automation of the notification process.
- Comprehensive documentation is provided.
- Creating configuration and rules is quite complicated and time consuming procedure. It requires knowledge of XML and NGOP configuration language. The tools that shield end users from these do not exist.

- NGOP CHEP'03

- 3/27/2003